@opcua/for-node-red 2.0.6 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/all.js +21030 -20460
  2. package/examples/coffe-machine.json +261 -0
  3. package/examples/events.json +0 -0
  4. package/examples/explore_coffee_machine.json +115 -0
  5. package/examples/extension-object.json +0 -0
  6. package/examples/read_extension-object.json +0 -0
  7. package/examples/read_subree_with_various_output_types.json +173 -0
  8. package/examples/read_subtree.json +132 -0
  9. package/examples/read_value_of_a_many_ua-variables_injected_node-id.json +229 -0
  10. package/examples/read_value_of_a_single_ua-variable_injected_node-id.json +153 -0
  11. package/package.json +5 -2
  12. package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.css +2 -0
  13. package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +101 -0
  14. package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.js +2 -0
  15. package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.css +1 -1
  16. package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +3 -3
  17. package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.css +2 -0
  18. package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +45 -0
  19. package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.js +2 -0
  20. package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.css +1 -1
  21. package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +8 -40
  22. package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.css +1 -1
  23. package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +12 -8
  24. package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.css +1 -1
  25. package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +102 -7
  26. package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.css +1 -1
  27. package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +3 -3
  28. package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
@@ -1,11 +1,11 @@
1
1
  <style>
2
- .sterfve-combo-box{position:relative;width:100%}.sterfve-combo-box .sterfve-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfve-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-left:15px}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfve-combo-box .sterfve-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
2
+ .sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-left:15px}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfive-combo-box .sterfive-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
3
3
  /*# sourceMappingURL=OpcUa-Client2-MonitorEvent.css.map */
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- (function(_0x381ac3,_0x425602){const _0x1e1990=_0xd13c,_0x1e8588=_0x381ac3();while(!![]){try{const _0x214bca=-parseInt(_0x1e1990(0xf9))/0x1+-parseInt(_0x1e1990(0x7a))/0x2+parseInt(_0x1e1990(0x69))/0x3+-parseInt(_0x1e1990(0xe1))/0x4*(-parseInt(_0x1e1990(0xce))/0x5)+-parseInt(_0x1e1990(0x10d))/0x6+-parseInt(_0x1e1990(0x10f))/0x7+-parseInt(_0x1e1990(0x87))/0x8*(-parseInt(_0x1e1990(0x94))/0x9);if(_0x214bca===_0x425602)break;else _0x1e8588['push'](_0x1e8588['shift']());}catch(_0x1be94b){_0x1e8588['push'](_0x1e8588['shift']());}}}(_0x41f6,0x46048),(function(){'use strict';const _0x4d0003=_0xd13c;function _0x35d5c5(_0x2b4754,_0x54280a){const _0x1482ed=_0xd13c,_0x3405a9=$(_0x1482ed(0x130)),_0x2d8987=$(_0x1482ed(0x70)),_0x2a4e16=()=>{const _0x15d65f=_0x1482ed,_0x342a29=_0x2b4754['nodes']['node'](_0x3405a9['val']());_0x2d8987[_0x15d65f(0x114)]();if(!_0x342a29||!_0x342a29[_0x15d65f(0x119)])return;if(_0x342a29[_0x15d65f(0x119)])for(const _0xe3127d of _0x342a29[_0x15d65f(0x119)]){const _0x5c70ce=_0xe3127d['name']||_0xe3127d['id'];$(_0x15d65f(0xe3),{'value':_0xe3127d['id'],'label':_0x5c70ce,'selected':_0xe3127d['id']===_0x54280a[_0x15d65f(0xf0)]})[_0x15d65f(0x118)](_0x5c70ce)['appendTo'](_0x2d8987);}};_0x2a4e16(),_0x2d8987['on'](_0x1482ed(0xec),()=>{_0x2a4e16();}),_0x3405a9['on'](_0x1482ed(0x72),()=>{_0x2a4e16();});}function _0x1e5e51(_0x1b2556,_0x5f2171,_0x201762,_0x1a327d){function _0x5b1ee9(_0x3ef556){return _0x3ef556 instanceof _0x201762?_0x3ef556:new _0x201762(function(_0x4b23d7){_0x4b23d7(_0x3ef556);});}return new(_0x201762||(_0x201762=Promise))(function(_0x335c5f,_0x241a4c){const _0x3e282b=_0xd13c;function _0x5139e2(_0x459267){const _0x18bd06=_0xd13c;try{_0xa6cf00(_0x1a327d[_0x18bd06(0x99)](_0x459267));}catch(_0x3a68c9){_0x241a4c(_0x3a68c9);}}function _0x58f9ef(_0x46c821){const _0x53c042=_0xd13c;try{_0xa6cf00(_0x1a327d[_0x53c042(0x122)](_0x46c821));}catch(_0x4acccf){_0x241a4c(_0x4acccf);}}function _0xa6cf00(_0x3c38b7){const _0x3006eb=_0xd13c;_0x3c38b7[_0x3006eb(0xb0)]?_0x335c5f(_0x3c38b7[_0x3006eb(0xc0)]):_0x5b1ee9(_0x3c38b7[_0x3006eb(0xc0)])[_0x3006eb(0xb4)](_0x5139e2,_0x58f9ef);}_0xa6cf00((_0x1a327d=_0x1a327d['apply'](_0x1b2556,_0x5f2171||[]))[_0x3e282b(0x99)]());});}typeof SuppressedError===_0x4d0003(0xa2)?SuppressedError:function(_0x817069,_0x37a6c5,_0x1b20e5){const _0x449c0e=_0x4d0003;var _0x96d3d5=new Error(_0x1b20e5);return _0x96d3d5[_0x449c0e(0x67)]='SuppressedError',_0x96d3d5[_0x449c0e(0xf2)]=_0x817069,_0x96d3d5['suppressed']=_0x37a6c5,_0x96d3d5;};var _0x34bce9;(function(_0x4bb54b){const _0x166d8e=_0x4d0003;_0x4bb54b[_0x4bb54b['Forward']=0x0]=_0x166d8e(0xc9),_0x4bb54b[_0x4bb54b[_0x166d8e(0xaa)]=0x1]=_0x166d8e(0xaa),_0x4bb54b[_0x4bb54b[_0x166d8e(0x6b)]=0x2]='Both',_0x4bb54b[_0x4bb54b[_0x166d8e(0x12b)]=0x3]=_0x166d8e(0x12b);}(_0x34bce9||(_0x34bce9={})));var _0x4623d5;(function(_0x2b24b0){const _0x56b33c=_0x4d0003;_0x2b24b0[_0x2b24b0[_0x56b33c(0xfa)]=0x0]='Unspecified',_0x2b24b0[_0x2b24b0['Object']=0x1]=_0x56b33c(0xf6),_0x2b24b0[_0x2b24b0['Variable']=0x2]='Variable',_0x2b24b0[_0x2b24b0[_0x56b33c(0x13c)]=0x4]=_0x56b33c(0x13c),_0x2b24b0[_0x2b24b0[_0x56b33c(0xd4)]=0x8]='ObjectType',_0x2b24b0[_0x2b24b0[_0x56b33c(0xbc)]=0x10]=_0x56b33c(0xbc),_0x2b24b0[_0x2b24b0[_0x56b33c(0x96)]=0x20]='ReferenceType',_0x2b24b0[_0x2b24b0[_0x56b33c(0x11a)]=0x40]=_0x56b33c(0x11a),_0x2b24b0[_0x2b24b0[_0x56b33c(0x128)]=0x80]=_0x56b33c(0x128);}(_0x4623d5||(_0x4623d5={})));function _0x129d2c(_0x3eb0e1){const _0x3b2e2e=_0x4d0003;switch(_0x3eb0e1){case _0x3b2e2e(0x113):return'i=35';case _0x3b2e2e(0x82):return _0x3b2e2e(0xfe);case'HasChild':return _0x3b2e2e(0x11d);}}const _0x55354a=_0x4d0003(0x138),_0x538072=_0x4d0003(0x105),_0x523b73=_0x4d0003(0xcb),_0x4f4925=_0x4d0003(0x116),_0x28de9e=_0x46b7f1=>{const _0x3ba2a8=_0x4d0003;switch(_0x46b7f1['nodeClass']){case _0x3ba2a8(0xf6):if(_0x46b7f1[_0x3ba2a8(0x107)]===_0x55354a);if(_0x46b7f1[_0x3ba2a8(0x127)]===_0x538072||_0x46b7f1[_0x3ba2a8(0x107)]==='i=61')return{'icon':_0x3ba2a8(0xac),'color':_0x3ba2a8(0xb7)};return{'icon':_0x3ba2a8(0x9e),'color':_0x3ba2a8(0x112)};case _0x3ba2a8(0xaf):if(_0x46b7f1['referenceTypeId']===_0x523b73)return{'icon':_0x3ba2a8(0x123),'color':_0x3ba2a8(0xd6)};else return _0x46b7f1[_0x3ba2a8(0x107)]===_0x4f4925?{'icon':_0x3ba2a8(0x123),'color':_0x3ba2a8(0x6c)}:{'icon':_0x3ba2a8(0x123),'color':_0x3ba2a8(0x76)};case _0x3ba2a8(0x13c):return{'icon':_0x3ba2a8(0x109),'color':_0x3ba2a8(0x80)};case _0x3ba2a8(0xd4):return{'icon':_0x3ba2a8(0x9e),'color':_0x3ba2a8(0x97)};case _0x3ba2a8(0xbc):return{'icon':_0x3ba2a8(0x71),'color':_0x3ba2a8(0x97)};}return{'icon':'fa-question','color':_0x3ba2a8(0x101)};},_0x2a987d=({endpointNode:_0x445a06,endpoint:_0x2e844e,baseUrl:_0x460064},_0x9302f4,_0x4e699e)=>_0x1e5e51(void 0x0,void 0x0,void 0x0,function*(){const _0x1707d0=_0x4d0003,_0x55a20c=_0x460064+_0x1707d0(0x9d),_0x42e1e7=_0x55a20c+'/browse',_0x4cd804=Object[_0x1707d0(0x7b)](Object['assign']({},_0x4e699e),{'nodeId':_0x9302f4,'resultMask':0x3f}),_0x50bf1e=yield fetch(_0x42e1e7,{'method':_0x1707d0(0x75),'body':JSON[_0x1707d0(0xca)]({'endpointNode':_0x445a06,'endpoint':_0x2e844e,'browseDescription':_0x4cd804}),'headers':{'Content-Type':'application/json'}});if(_0x50bf1e[_0x1707d0(0xba)]!==0xc8)return console[_0x1707d0(0xd5)]('fechting\x20failed\x20with\x20error',_0x50bf1e[_0x1707d0(0xba)],_0x50bf1e['statusText']),{'references':[]};console[_0x1707d0(0xd5)]('fetched\x20:\x20',_0x50bf1e[_0x1707d0(0xba)],_0x50bf1e[_0x1707d0(0xb3)]);const _0x34cb79=yield _0x50bf1e[_0x1707d0(0x7f)](),_0x48df16=_0x34cb79[_0x1707d0(0x8b)][_0x1707d0(0x6f)]||[];return{'references':_0x48df16};}),_0x1ebf6d={'referenceTypeId':_0x129d2c('HasChild'),'includeSubtypes':!![],'browseDirection':_0x34bce9['Forward'],'nodeClassMask':_0x4623d5[_0x4d0003(0xaf)]|_0x4623d5[_0x4d0003(0xf6)]|_0x4623d5[_0x4d0003(0x13c)],'resultMask':0x3f},_0x2e178f={'referenceTypeId':_0x129d2c(_0x4d0003(0x113)),'includeSubtypes':!![],'browseDirection':_0x34bce9[_0x4d0003(0xc9)],'nodeClassMask':_0x4623d5[_0x4d0003(0xaf)]|_0x4623d5['Object']|_0x4623d5[_0x4d0003(0x13c)],'resultMask':0x3f},_0x11e039=({endpointNode:_0x5a3370,endpoint:_0x211c51,baseUrl:_0x11a4bb},_0x332e9a,_0x37b738)=>_0x1e5e51(void 0x0,void 0x0,void 0x0,function*(){const _0x5383f8=_0x4d0003,_0x299a4e=_0x11a4bb+_0x5383f8(0x9d),_0x3d3459=_0x332e9a[_0x5383f8(0x8a)](),_0x874722=yield fetch(_0x299a4e+'/checkNodeId',{'method':_0x5383f8(0x75),'body':JSON['stringify']({'endpointNode':_0x5a3370,'endpoint':_0x211c51,'nodeId':_0x3d3459}),'headers':{'Content-Type':_0x5383f8(0x12d)}}),_0x176742=(_0x355343,_0x1a95a0)=>{const _0x2e56a0=_0x5383f8;_0x37b738[_0x2e56a0(0x118)](_0x355343)[_0x2e56a0(0x10a)]('sterfive-info')[_0x2e56a0(0x10a)](_0x1a95a0),_0x37b738['show'](),setTimeout(()=>{const _0x29af07=_0x2e56a0;_0x37b738[_0x29af07(0x73)](_0x1a95a0),_0x37b738[_0x29af07(0x10b)]();},0xbb8);},_0x2a534a=yield _0x874722[_0x5383f8(0x7f)]();_0x874722[_0x5383f8(0xba)]!==0xc8?_0x176742(_0x5383f8(0x129)+_0x3d3459,'failure'):_0x2a534a[_0x5383f8(0xe6)][_0x5383f8(0xa8)](/Good/)?(_0x332e9a['val'](_0x2a534a['nodeAddressString']),_0x332e9a[_0x5383f8(0x8e)](_0x5383f8(0x72)),_0x176742('Good','ok')):(_0x332e9a[_0x5383f8(0x8a)](''+_0x3d3459),_0x176742(_0x2a534a[_0x5383f8(0xe6)]+'\x20'+_0x874722[_0x5383f8(0xb3)],'failure'));});function _0x684065(_0x451402,_0x56d4ad){return _0x1e5e51(this,void 0x0,void 0x0,function*(){const _0x423b12=_0xd13c,_0x55c85c=_0x451402['data'](_0x423b12(0xc0)),_0x5cc1ac=yield _0x2a987d(_0x56d4ad,_0x55c85c,_0x1ebf6d),_0x115bf2=yield _0x2a987d(_0x56d4ad,_0x55c85c,_0x2e178f);return{'references':[..._0x5cc1ac[_0x423b12(0x6f)],..._0x115bf2[_0x423b12(0x6f)]]};});}const _0x3fb959=_0x405527=>{const _0x21c5d7=_0x4d0003;var _0x1a35a7,_0x519939;if(!_0x405527){const _0x3ad8d8=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x3ad8d8;}const _0x4db8c9=_0x405527[_0x21c5d7(0x6a)][_0x21c5d7(0x74)](),_0x30afa3=((_0x1a35a7=_0x405527[_0x21c5d7(0x9f)])===null||_0x1a35a7===void 0x0?void 0x0:_0x1a35a7['text'])||((_0x519939=_0x405527[_0x21c5d7(0x11e)])===null||_0x519939===void 0x0?void 0x0:_0x519939[_0x21c5d7(0x67)])||_0x405527[_0x21c5d7(0x6a)][_0x21c5d7(0x74)](),{icon:_0x2124e3,color:_0x2aa021}=_0x28de9e(_0x405527),_0x2ab4a5=$('<li><i\x20class=\x22fa\x20'+_0x2124e3+'\x22\x20style=\x22color:'+_0x2aa021+_0x21c5d7(0x102)+_0x30afa3+_0x21c5d7(0x12f));return _0x2ab4a5['addClass']('expandable'),_0x2ab4a5[_0x21c5d7(0xe0)](_0x21c5d7(0xc0),_0x4db8c9),_0x2ab4a5[_0x21c5d7(0xe0)](_0x21c5d7(0x81),_0x405527),_0x2ab4a5;},_0x2f4257=()=>{const _0x2360af=_0x4d0003;$[_0x2360af(0x108)](_0x2360af(0xbf),{'options':{'endpointNode':()=>({'endpoint':_0x2360af(0xee)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x2360af(0xa4)},'nodeClass':_0x2360af(0xf6),'nodeId':_0x2360af(0xb9),'displayName':{'text':_0x2360af(0xa4)},'typeDefinition':_0x538072}),'filter':()=>!![],'baseUrl':''},'resolveParentNode'(){return _0x1e5e51(this,void 0x0,void 0x0,function*(){const _0x26bbdb=_0xd13c,_0x472673=this,_0x18e4eb=typeof _0x472673[_0x26bbdb(0x89)]['parentNode']===_0x26bbdb(0xa2)?_0x472673[_0x26bbdb(0x89)][_0x26bbdb(0xd2)]():_0x472673[_0x26bbdb(0x89)]['parentNode'];if(_0x18e4eb instanceof Promise)return yield _0x18e4eb;return _0x18e4eb;});},'reset'(){const _0x2b3017=_0x2360af,_0x90f396=this;_0x90f396[_0x2b3017(0x98)][_0x2b3017(0x114)](),this[_0x2b3017(0xe5)]()[_0x2b3017(0xb4)](_0x113567=>{const _0xf348b0=_0x2b3017,_0x2eee84=_0x3fb959(_0x113567);_0x90f396[_0xf348b0(0x98)][_0xf348b0(0x95)](_0x2eee84),_0x90f396[_0xf348b0(0xc5)]=_0x113567;});},'verify'(){const _0x536b3f=_0x2360af,_0xdd4c60=this,_0x31e55b={'baseUrl':_0xdd4c60[_0x536b3f(0x89)]['baseUrl'],'endpointNode':typeof _0xdd4c60[_0x536b3f(0x89)]['endpointNode']==='function'?_0xdd4c60[_0x536b3f(0x89)][_0x536b3f(0x79)]():_0xdd4c60[_0x536b3f(0x89)][_0x536b3f(0x79)],'endpoint':typeof _0xdd4c60[_0x536b3f(0x89)][_0x536b3f(0x124)]===_0x536b3f(0xa2)?_0xdd4c60[_0x536b3f(0x89)][_0x536b3f(0x124)]():_0xdd4c60[_0x536b3f(0x89)][_0x536b3f(0x124)]};_0x11e039(_0x31e55b,_0xdd4c60[_0x536b3f(0xc2)],_0xdd4c60[_0x536b3f(0xe9)]);},'_create'(){const _0x14166c=_0x2360af,_0x3379d=this;function _0x119d38(_0x3097b8,_0x149eaa,_0x274b85){return _0x1e5e51(this,void 0x0,void 0x0,function*(){const _0x4ca644=_0xd13c;if(_0x3097b8[_0x4ca644(0xb8)](_0x4ca644(0x120))){console[_0x4ca644(0xd5)]('already\x20fetched');return;}if(_0x3097b8[_0x4ca644(0xb8)](_0x4ca644(0x83))){console[_0x4ca644(0xd5)]('already\x20loading');return;}_0x3097b8[_0x4ca644(0x10a)](_0x4ca644(0x83)),_0x3097b8[_0x4ca644(0x95)](_0x4ca644(0xe7));try{_0x3097b8[_0x4ca644(0x93)]('ul')['empty']();const {references:_0x3c1f32}=yield _0x149eaa(_0x3097b8,_0x274b85);for(const _0x1cf84a of _0x3c1f32){if(_0x3379d[_0x4ca644(0x89)][_0x4ca644(0x12a)]&&!_0x3379d[_0x4ca644(0x89)][_0x4ca644(0x12a)](_0x1cf84a))continue;const _0x4e0cdd=_0x3fb959(_0x1cf84a);_0x3097b8[_0x4ca644(0x93)]('ul')['append'](_0x4e0cdd);}_0x3097b8[_0x4ca644(0x10a)](_0x4ca644(0x120));}catch(_0x39bd57){_0x3097b8['children']('ul')[_0x4ca644(0x95)](_0x4ca644(0x104)+_0x39bd57[_0x4ca644(0xdc)]+_0x4ca644(0x6d)),console[_0x4ca644(0xd5)](_0x4ca644(0x115),_0x39bd57);}_0x3097b8['find']('.spinner')[_0x4ca644(0xde)](),_0x3097b8[_0x4ca644(0x73)]('loading');});}_0x3379d[_0x14166c(0xc2)]=this[_0x14166c(0xfb)],_0x3379d[_0x14166c(0x7c)]=$(_0x14166c(0x10e)),_0x3379d['$combo'][_0x14166c(0x10a)]('sterfve-combo-box'),this[_0x14166c(0xfb)][_0x14166c(0x9a)](_0x3379d['$combo']),_0x3379d[_0x14166c(0x133)]=$('<div/>')[_0x14166c(0x10a)]('input-group'),_0x3379d[_0x14166c(0x7c)][_0x14166c(0x95)](_0x3379d[_0x14166c(0x133)]),_0x3379d[_0x14166c(0x133)][_0x14166c(0x95)](_0x3379d[_0x14166c(0xc2)]),_0x3379d[_0x14166c(0x12e)]=$(_0x14166c(0x8d)),_0x3379d[_0x14166c(0x133)][_0x14166c(0x95)](_0x3379d[_0x14166c(0x12e)]),_0x3379d[_0x14166c(0x12e)]['on'](_0x14166c(0xe2),function(){const _0xcd0ac4=_0x14166c;!_0x3379d['$dropdown']['is'](_0xcd0ac4(0x10c))&&(_0x3379d['resolveParentNode']()['then'](_0x24032a=>{const _0x30aef7=_0xcd0ac4;var _0x5b0cc0;(_0x24032a!==_0x3379d[_0x30aef7(0xc5)]||((_0x5b0cc0=_0x3379d[_0x30aef7(0xc5)])===null||_0x5b0cc0===void 0x0?void 0x0:_0x5b0cc0['nodeId'])!==_0x24032a['nodeId'])&&_0x3379d[_0x30aef7(0xcd)]();}),_0x3379d['$info'][_0xcd0ac4(0x10b)]()),_0x3379d['$dropdown'][_0xcd0ac4(0xae)]();}),_0x3379d['$verifyBtn']=$(_0x14166c(0xd1)),_0x3379d[_0x14166c(0x133)][_0x14166c(0x95)](_0x3379d[_0x14166c(0xb2)]),_0x3379d[_0x14166c(0xb2)]['on'](_0x14166c(0xe2),()=>{const _0x46e4c4=_0x14166c;this[_0x46e4c4(0xad)]();}),!_0x3379d[_0x14166c(0xc2)]['attr'](_0x14166c(0x131))&&_0x3379d[_0x14166c(0xc2)][_0x14166c(0x106)](_0x14166c(0x131),_0x14166c(0x84)),_0x3379d[_0x14166c(0xe9)]=$(_0x14166c(0x11c)),_0x3379d[_0x14166c(0xe9)][_0x14166c(0x10b)](),{'baseUrl':_0x3379d[_0x14166c(0x89)][_0x14166c(0xf7)],'endpointNode':typeof _0x3379d[_0x14166c(0x89)][_0x14166c(0x79)]===_0x14166c(0xa2)?_0x3379d[_0x14166c(0x89)]['endpointNode']():_0x3379d[_0x14166c(0x89)][_0x14166c(0x79)],'endpoint':typeof _0x3379d[_0x14166c(0x89)][_0x14166c(0x124)]==='function'?_0x3379d['options']['endpoint']():_0x3379d[_0x14166c(0x89)][_0x14166c(0x124)]},_0x3379d[_0x14166c(0xed)]=$(_0x14166c(0x10e))[_0x14166c(0x10a)]('sterfve-dropdown')[_0x14166c(0x10b)](),_0x3379d[_0x14166c(0x7c)][_0x14166c(0x95)](_0x3379d[_0x14166c(0xe9)]),_0x3379d[_0x14166c(0x7c)][_0x14166c(0x95)](_0x3379d[_0x14166c(0xed)]),_0x3379d[_0x14166c(0x98)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')['appendTo'](_0x3379d[_0x14166c(0xed)]),this[_0x14166c(0xcd)](),_0x3379d[_0x14166c(0x98)]['on'](_0x14166c(0xe2),'li',function(_0x374c54){const _0x3c778b=_0x14166c;var _0x5061ef,_0x406e3f;_0x374c54[_0x3c778b(0xd9)]();let _0x120eda=$(this);const _0x2b6503=0x14,_0x5471c6=0x14,_0x1a993a=$(this)['offset'](),_0x4398ff=_0x374c54;if(_0x4398ff[_0x3c778b(0x117)]>=_0x1a993a[_0x3c778b(0x68)]&&_0x4398ff[_0x3c778b(0x117)]<=_0x1a993a[_0x3c778b(0x68)]+_0x2b6503&&_0x4398ff[_0x3c778b(0xf1)]>=_0x1a993a[_0x3c778b(0x134)]&&_0x4398ff['pageY']<=_0x1a993a[_0x3c778b(0x134)]+_0x5471c6){if(_0x120eda['hasClass']('expandable')){if(_0x120eda[_0x3c778b(0xb8)](_0x3c778b(0x120))){_0x120eda[_0x3c778b(0x73)](_0x3c778b(0xb5))['addClass'](_0x3c778b(0xff)),_0x120eda[_0x3c778b(0x93)]('ul')['toggle']();return;}const _0x5c75b3={'baseUrl':_0x3379d[_0x3c778b(0x89)][_0x3c778b(0xf7)],'endpointNode':typeof _0x3379d['options'][_0x3c778b(0x79)]===_0x3c778b(0xa2)?_0x3379d['options'][_0x3c778b(0x79)]():_0x3379d[_0x3c778b(0x89)][_0x3c778b(0x79)],'endpoint':typeof _0x3379d[_0x3c778b(0x89)]['endpoint']===_0x3c778b(0xa2)?_0x3379d[_0x3c778b(0x89)][_0x3c778b(0x124)]():_0x3379d[_0x3c778b(0x89)][_0x3c778b(0x124)]};_0x119d38(_0x120eda,_0x684065,_0x5c75b3)[_0x3c778b(0xb4)](()=>{const _0x1edf0d=_0x3c778b;console[_0x1edf0d(0xd5)](_0x1edf0d(0xbe)),console[_0x1edf0d(0xd5)](_0x1edf0d(0x120)),_0x120eda['removeClass'](_0x1edf0d(0xb5))[_0x1edf0d(0x10a)](_0x1edf0d(0xff));})[_0x3c778b(0xe4)](_0x1ce8c7=>{const _0x2731af=_0x3c778b;_0x120eda[_0x2731af(0x73)](_0x2731af(0xb5))[_0x2731af(0x10a)](_0x2731af(0xff)),console[_0x2731af(0xd5)](_0x2731af(0xf2),_0x1ce8c7);});}else{if(_0x120eda['hasClass'](_0x3c778b(0xff)))_0x120eda['children']('ul')[_0x3c778b(0xae)](),_0x120eda['toggleClass'](_0x3c778b(0xf4));else{if(_0x120eda[_0x3c778b(0x93)]('ul')[_0x3c778b(0x93)]()[_0x3c778b(0xcc)]>0x0)_0x120eda[_0x3c778b(0x93)]('ul')[_0x3c778b(0xae)](),_0x120eda[_0x3c778b(0xe8)](_0x3c778b(0xf4));else;}}}else{const _0x4d48d5=_0x120eda[_0x3c778b(0xe0)](_0x3c778b(0xc0)),_0x42252d=_0x120eda[_0x3c778b(0xe0)](_0x3c778b(0x81));if(_0x3379d[_0x3c778b(0x89)]['isSelectable']&&!_0x3379d[_0x3c778b(0x89)][_0x3c778b(0x136)](_0x42252d))return;_0x3379d[_0x3c778b(0xc2)][_0x3c778b(0xe0)]('reference',_0x42252d);const _0x5de8ab=((_0x5061ef=_0x42252d['displayName'])===null||_0x5061ef===void 0x0?void 0x0:_0x5061ef[_0x3c778b(0x118)])||((_0x406e3f=_0x42252d[_0x3c778b(0x11e)])===null||_0x406e3f===void 0x0?void 0x0:_0x406e3f['name'])||_0x42252d[_0x3c778b(0x6a)][_0x3c778b(0x74)](),_0x2794c8='['+_0x5de8ab+']('+_0x4d48d5+')';_0x3379d[_0x3c778b(0xc2)][_0x3c778b(0x8a)](_0x2794c8),_0x3379d[_0x3c778b(0xc2)]['trigger']('change'),_0x3379d[_0x3c778b(0xed)][_0x3c778b(0x10b)]();}}),$(document)['on']('click',function(_0x2d35a6){const _0x21dfb9=_0x14166c;!$(_0x2d35a6['target'])[_0x21dfb9(0xf3)](_0x3379d[_0x21dfb9(0x7c)])['length']&&_0x3379d['$dropdown'][_0x21dfb9(0x10b)]();});}});},_0x284ab1=_0x3419bf=>{const _0x2d7b64=_0x4d0003;var _0x524d5f,_0x33813e,_0x423420;if(!_0x3419bf){const _0x5058ac=$(_0x2d7b64(0x137));return _0x5058ac;}const _0x5e5748=_0x3419bf[_0x2d7b64(0x6a)][_0x2d7b64(0x74)]();let _0x3524d6=((_0x524d5f=_0x3419bf[_0x2d7b64(0x9f)])===null||_0x524d5f===void 0x0?void 0x0:_0x524d5f[_0x2d7b64(0x118)])||((_0x33813e=_0x3419bf[_0x2d7b64(0x11e)])===null||_0x33813e===void 0x0?void 0x0:_0x33813e[_0x2d7b64(0x67)])||_0x3419bf[_0x2d7b64(0x6a)]['toString'](),_0x104361=(_0x423420=_0x3419bf[_0x2d7b64(0x11e)])===null||_0x423420===void 0x0?void 0x0:_0x423420['namespaceIndex'];_0x3524d6+=_0x104361!==undefined&&_0x3419bf[_0x2d7b64(0xdb)][_0x2d7b64(0xa8)](/Type/)?'\x20(ns='+_0x104361+')':'';const {icon:_0x78ea9e,color:_0x2bf05d}=_0x28de9e(_0x3419bf),_0x16d4d1=$(_0x2d7b64(0xdd));if(_0x3419bf[_0x2d7b64(0xdb)]==='Variable'){const _0x5edd6a=$(_0x2d7b64(0xb6));_0x16d4d1['append'](_0x5edd6a),_0x5edd6a['on'](_0x2d7b64(0xe2),function(){const _0x3d2c5d=_0x2d7b64;_0x5edd6a[_0x3d2c5d(0xb8)](_0x3d2c5d(0x11b))?_0x5edd6a[_0x3d2c5d(0x73)](_0x3d2c5d(0x11b))[_0x3d2c5d(0x10a)]('checked'):_0x5edd6a['removeClass'](_0x3d2c5d(0x13b))['addClass']('unchecked');});}return _0x16d4d1['append']($(_0x2d7b64(0xab)+_0x78ea9e+_0x2d7b64(0x86)+_0x2bf05d+_0x2d7b64(0x111)+_0x3524d6+_0x2d7b64(0xa3))),_0x16d4d1[_0x2d7b64(0x10a)](_0x2d7b64(0xb5)),_0x16d4d1[_0x2d7b64(0xe0)](_0x2d7b64(0xc0),_0x5e5748),_0x16d4d1[_0x2d7b64(0xe0)](_0x2d7b64(0x81),_0x3419bf),_0x16d4d1;},_0x3e8324=()=>{const _0x524262=_0x4d0003;$[_0x524262(0x108)](_0x524262(0xa9),{'options':{'endpointNode':()=>({'endpoint':_0x524262(0xee)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x45b923;return _0x1e5e51(this,void 0x0,void 0x0,function*(){const _0x496160=_0xd13c,_0x539176=this,_0x5a949b=new Set((_0x45b923=_0x539176[_0x496160(0xc2)][_0x496160(0x8a)]())===null||_0x45b923===void 0x0?void 0x0:_0x45b923['toString']()[_0x496160(0x103)](';')),_0xc7c056={'baseUrl':_0x539176[_0x496160(0x89)][_0x496160(0xf7)],'endpointNode':typeof _0x539176[_0x496160(0x89)][_0x496160(0x79)]==='function'?_0x539176[_0x496160(0x89)][_0x496160(0x79)]():_0x539176[_0x496160(0x89)][_0x496160(0x79)],'endpoint':typeof _0x539176[_0x496160(0x89)][_0x496160(0x124)]===_0x496160(0xa2)?_0x539176['options']['endpoint']():_0x539176[_0x496160(0x89)][_0x496160(0x124)]},_0x1f8a91=yield _0x5eaad2(_0xc7c056);this['_installTree'](_0x1f8a91,_0x5a949b);});},'_installTree'(_0x333911,_0x46f445){const _0x14e9c6=_0x524262,_0x2aa034=this;_0x2aa034[_0x14e9c6(0x98)][_0x14e9c6(0x114)]();if(!_0x333911[_0x14e9c6(0x7e)])return;const _0x2a861f=_0x333911[_0x14e9c6(0x7e)],_0x3979ef=_0x284ab1(_0x2a861f);_0x2aa034['$tree'][_0x14e9c6(0x95)](_0x3979ef);const _0x1019ca='';this['_installChildren'](_0x3979ef[_0x14e9c6(0x93)]('ul'),_0x2a861f,_0x1019ca,_0x46f445),_0x3979ef[_0x14e9c6(0x73)](_0x14e9c6(0xb5))[_0x14e9c6(0x10a)](_0x14e9c6(0xff)),this[_0x14e9c6(0xf5)](_0x46f445);},'_installChildren'(_0x4e7986,_0x521581,_0x124009,_0x4daeea){const _0x185078=_0x524262,_0x33db21=({name:_0x2fcb1d,namespaceIndex:_0x52e75d})=>{if(_0x52e75d===0x0)return _0x2fcb1d;return _0x52e75d+':'+_0x2fcb1d;},_0x5a270c=_0x521581[_0x185078(0x93)]||[],_0xf05ac8=_0x521581[_0x185078(0xd0)]||[],_0x363d42=[..._0x5a270c,..._0xf05ac8];for(const _0x30b78a of _0x363d42){const _0x5c29c9=_0x284ab1(_0x30b78a);_0x4e7986[_0x185078(0x95)](_0x5c29c9);let _0x147e46='';_0x30b78a[_0x185078(0xdb)]===_0x185078(0xaf)&&(_0x124009?_0x147e46=_0x124009+'.'+_0x33db21(_0x30b78a[_0x185078(0x11e)]):_0x147e46=_0x33db21(_0x30b78a[_0x185078(0x11e)]),_0x5c29c9[_0x185078(0x106)](_0x185078(0xbb),_0x147e46));const _0xcc999=_0x30b78a['children']&&_0x30b78a[_0x185078(0x93)][_0x185078(0xcc)],_0x2060b5=_0x30b78a[_0x185078(0xd0)]&&_0x30b78a[_0x185078(0xd0)][_0x185078(0xcc)];!_0xcc999&&!_0x2060b5?_0x5c29c9[_0x185078(0x73)](_0x185078(0xb5))[_0x185078(0x10a)](_0x185078(0xeb)):(this[_0x185078(0xc7)](_0x5c29c9['children']('ul'),_0x30b78a,_0x147e46,_0x4daeea),_0x5c29c9[_0x185078(0x73)](_0x185078(0xb5))[_0x185078(0x10a)](_0x185078(0xff)));}},'_updateSelectedFields'(){const _0x2a1dd8=_0x524262;var _0x555bea;const _0x2e10b9=this,_0x5dc3f1=new Set((_0x555bea=_0x2e10b9[_0x2a1dd8(0xc2)][_0x2a1dd8(0x8a)]())===null||_0x555bea===void 0x0?void 0x0:_0x555bea[_0x2a1dd8(0x74)]()['split'](';'));this[_0x2a1dd8(0xf5)](_0x5dc3f1);},'_updateValues'(_0x4e53dd){const _0x54229c=_0x524262;$(_0x54229c(0xc6))[_0x54229c(0xd7)](function(){const _0x1bb974=_0x54229c,_0x587a41=$(this),_0x266382=_0x587a41[_0x1bb974(0x106)](_0x1bb974(0xbb));_0x266382&&_0x4e53dd[_0x1bb974(0x85)](_0x266382)&&_0x587a41[_0x1bb974(0x93)](_0x1bb974(0x78))[_0x1bb974(0x73)](_0x1bb974(0x11b))[_0x1bb974(0x10a)](_0x1bb974(0x13b));});},'_setInputValue'(){const _0x107b4c=_0x524262,_0x5740b0=this,_0x263f02=[];$(_0x107b4c(0xc6))['each'](function(){const _0x5d0c2c=_0x107b4c,_0x4ffa1d=$(this);if(_0x4ffa1d[_0x5d0c2c(0x93)](_0x5d0c2c(0xda))[_0x5d0c2c(0xcc)]>0x0){const _0x12fac7=_0x4ffa1d[_0x5d0c2c(0x106)](_0x5d0c2c(0xbb));if(_0x12fac7)_0x263f02[_0x5d0c2c(0xa5)](_0x12fac7);}});const _0x49ae20=[...new Set(_0x263f02)][_0x107b4c(0xdf)]()['join'](';');_0x5740b0[_0x107b4c(0xc2)][_0x107b4c(0x8a)](_0x49ae20),_0x5740b0[_0x107b4c(0xc2)]['trigger'](_0x107b4c(0x72));},'_create'(){const _0x4aedbe=_0x524262,_0x201083=this;_0x201083[_0x4aedbe(0xc2)]=this[_0x4aedbe(0xfb)],_0x201083[_0x4aedbe(0x7c)]=$(_0x4aedbe(0x10e)),_0x201083[_0x4aedbe(0x7c)][_0x4aedbe(0x10a)](_0x4aedbe(0x12c)),this['element'][_0x4aedbe(0x9a)](_0x201083['$combo']),_0x201083[_0x4aedbe(0x133)]=$(_0x4aedbe(0x10e))[_0x4aedbe(0x10a)]('input-group'),_0x201083['$combo']['append'](_0x201083[_0x4aedbe(0x133)]),_0x201083[_0x4aedbe(0x133)][_0x4aedbe(0x95)](_0x201083[_0x4aedbe(0xc2)]),_0x201083[_0x4aedbe(0x12e)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x201083[_0x4aedbe(0x133)][_0x4aedbe(0x95)](_0x201083['$toggleTreeBtn']),_0x201083[_0x4aedbe(0x12e)]['on'](_0x4aedbe(0xe2),function(){const _0x5b276b=_0x4aedbe;_0x201083['$dropdown'][_0x5b276b(0xae)](),_0x201083[_0x5b276b(0xe9)][_0x5b276b(0xae)]();if(_0x201083[_0x5b276b(0xed)]['is'](':visible')){_0x453d2a['show']();const _0x870358=_0x201083[_0x5b276b(0xed)][_0x5b276b(0x88)]();_0x453d2a[_0x5b276b(0xc1)]({'top':_0x870358[_0x5b276b(0x134)]+'px','right':_0x5b276b(0x126)+(_0x870358[_0x5b276b(0x68)]+_0x201083[_0x5b276b(0xed)][_0x5b276b(0xa6)]())+_0x5b276b(0xa1)}),_0x201083[_0x5b276b(0xc3)]();}else _0x453d2a['hide']();});!_0x201083[_0x4aedbe(0xc2)][_0x4aedbe(0x106)](_0x4aedbe(0x131))&&_0x201083['$input'][_0x4aedbe(0x106)](_0x4aedbe(0x131),_0x4aedbe(0x84));_0x201083[_0x4aedbe(0xe9)]=$(_0x4aedbe(0x11c)),_0x201083[_0x4aedbe(0xe9)]['hide'](),_0x201083[_0x4aedbe(0xed)]=$(_0x4aedbe(0x10e))['addClass'](_0x4aedbe(0x121))[_0x4aedbe(0x10b)]();const _0x9374f8=$(_0x4aedbe(0xb1)),_0x3807c8=$(_0x4aedbe(0x8f)),_0x453d2a=$('<div\x20class=\x22floating-buttons\x22></div>')['append'](_0x9374f8,_0x3807c8);_0x453d2a[_0x4aedbe(0x10b)](),_0x9374f8['on']('click',()=>{const _0x1beb53=_0x4aedbe;_0x201083[_0x1beb53(0x11f)](),_0x201083[_0x1beb53(0xed)]['hide']();}),_0x3807c8['on']('click',()=>{const _0x216d43=_0x4aedbe;_0x201083['$dropdown'][_0x216d43(0x10b)]();}),_0x201083['$combo'][_0x4aedbe(0x95)](_0x201083[_0x4aedbe(0xe9)]),_0x201083[_0x4aedbe(0x7c)][_0x4aedbe(0x95)](_0x201083[_0x4aedbe(0xed)]),_0x201083[_0x4aedbe(0x98)]=$(_0x4aedbe(0x7d)),_0x201083[_0x4aedbe(0xed)]['empty']()[_0x4aedbe(0x95)](_0x201083['$tree'],_0x453d2a),_0x201083[_0x4aedbe(0x98)]['on'](_0x4aedbe(0xe2),'li',function(_0x119d59){const _0x105961=_0x4aedbe;_0x119d59['stopPropagation']();let _0x2fe291=$(this);const _0x367bba=0x14,_0x1f928c=0x14,_0x12b816=$(this)[_0x105961(0x88)](),_0x299814=_0x119d59;if(_0x299814[_0x105961(0x117)]>=_0x12b816['left']&&_0x299814[_0x105961(0x117)]<=_0x12b816[_0x105961(0x68)]+_0x367bba&&_0x299814[_0x105961(0xf1)]>=_0x12b816[_0x105961(0x134)]&&_0x299814[_0x105961(0xf1)]<=_0x12b816['top']+_0x1f928c){console[_0x105961(0xd5)](_0x105961(0x132)),console[_0x105961(0xd5)](_0x105961(0xf8),_0x2fe291[_0x105961(0xe0)]('value'),_0x2fe291[_0x105961(0x106)]('class'));if(_0x2fe291[_0x105961(0xb8)]('expandable'))_0x2fe291[_0x105961(0x73)](_0x105961(0xb5))['addClass']('expanded'),_0x2fe291[_0x105961(0x93)]('ul')[_0x105961(0xae)]();else{if(_0x2fe291[_0x105961(0xb8)](_0x105961(0xff)))_0x2fe291['children']('ul')['toggle'](),_0x2fe291[_0x105961(0xe8)](_0x105961(0xf4));else{if(_0x2fe291[_0x105961(0x93)]('ul')[_0x105961(0x93)]()['length']>0x0)_0x2fe291[_0x105961(0x93)]('ul')[_0x105961(0xae)](),_0x2fe291[_0x105961(0xe8)]('expandable\x20expanded');else;}}}}),$(document)['on'](_0x4aedbe(0xe2),function(_0x451f82){const _0x414cca=_0x4aedbe;!$(_0x451f82[_0x414cca(0x9c)])['closest'](_0x201083[_0x414cca(0x7c)])['length']&&_0x201083[_0x414cca(0xed)][_0x414cca(0x10b)]();}),this['_populate']();}});},_0x5eaad2=({endpointNode:_0x120f20,endpoint:_0x2212c4,baseUrl:_0x511c3d})=>_0x1e5e51(void 0x0,void 0x0,void 0x0,function*(){const _0x3be448=_0x4d0003,_0x42d1d3=_0x511c3d+_0x3be448(0x9d),_0x36ce8f=_0x42d1d3+_0x3be448(0x135),_0x5b3d6f=yield fetch(_0x36ce8f,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x120f20,'endpoint':_0x2212c4}),'headers':{'Content-Type':_0x3be448(0x12d)}});if(_0x5b3d6f[_0x3be448(0xba)]!==0xc8)return console[_0x3be448(0xd5)]('fechting\x20failed\x20with\x20error',_0x5b3d6f[_0x3be448(0xba)],_0x5b3d6f[_0x3be448(0xb3)]),{'events':null};console['log'](_0x3be448(0x92),_0x5b3d6f[_0x3be448(0xba)],_0x5b3d6f['statusText']);const _0x51e451=yield _0x5b3d6f[_0x3be448(0x7f)](),_0x137703=_0x51e451[_0x3be448(0x7e)];return{'events':_0x137703};}),_0x2cd872=()=>{const _0x4c27f7=_0x4d0003,_0x154316=$(_0x4c27f7(0x130)),_0x349af5=_0x154316[_0x4c27f7(0x8a)](),_0x42d212=RED[_0x4c27f7(0xa0)][_0x4c27f7(0xd8)](_0x349af5);if(!_0x42d212)return undefined;const {endpoint:_0x5b037e,securityMode:_0x1bc8d7,securityPolicy:_0x374e4c,userIdentityType:_0x49e060,userName:_0xcb5eed,password:_0x19a1e9,userCertificate:_0x1c7dc1,userPrivatekey:_0x5e4ee2}=_0x42d212;return{'endpoint':_0x5b037e,'securityMode':_0x1bc8d7,'securityPolicy':_0x374e4c,'userIdentityType':_0x49e060,'userName':_0xcb5eed,'password':_0x19a1e9,'userCertificate':_0x1c7dc1,'userPrivatekey':_0x5e4ee2};},_0x8010aa=()=>{return{'endpointNode':_0x4f4e3a};},_0x4f4e3a=()=>{const _0x11d607=_0x4d0003,_0x25a67f=$(_0x11d607(0x130)),_0x4c0437=_0x25a67f[_0x11d607(0x8a)](),_0x2e2ac9=_0x2cd872();if(!_0x2e2ac9)return undefined;return{'id':_0x4c0437,'endpoint':_0x2e2ac9[_0x11d607(0x124)],'securityMode':_0x2e2ac9[_0x11d607(0xfd)],'securityPolicy':_0x2e2ac9[_0x11d607(0x91)],'userIdentityType':_0x2e2ac9[_0x11d607(0xc8)],'userName':_0x2e2ac9[_0x11d607(0xc8)]===_0x11d607(0x77)?_0x2e2ac9[_0x11d607(0xbd)]:undefined,'password':_0x2e2ac9[_0x11d607(0xc8)]===_0x11d607(0x77)?_0x2e2ac9[_0x11d607(0x110)]:undefined,'userCertificate':_0x2e2ac9[_0x11d607(0xef)],'userPrivatekey':_0x2e2ac9[_0x11d607(0x90)]};};RED[_0x4d0003(0xa0)][_0x4d0003(0xcf)](_0x4d0003(0x13a),{'category':_0x4d0003(0xc4),'color':'#C0DEED','align':_0x4d0003(0x6e),'icon':_0x4d0003(0xea),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x4d0003(0x9b)},'subscription':{'value':'','required':!![],'validate':_0x2abca9=>{if(_0x2abca9==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]}},'outputs':0x2,'label'(){const _0x4d2e31=_0x4d0003;return this[_0x4d2e31(0x67)]||_0x4d2e31(0xfc);},'labelStyle'(){const _0x2ae971=_0x4d0003;return this[_0x2ae971(0x67)]?'node_label_italic':'';},'oneditprepare'(){const _0x2fe132=_0x4d0003;_0x2f4257(),_0x3e8324(),_0x35d5c5(RED,this),$(_0x2fe132(0x8c))['on'](_0x2fe132(0x72),()=>{const _0x6cd356=_0x2fe132,_0x2d9663=$(_0x6cd356(0x139))[_0x6cd356(0x100)](_0x6cd356(0x13b));_0x2d9663?$(_0x6cd356(0xd3))[_0x6cd356(0x8a)](0x0):$('#node-input-inputs')['val'](0x1);});const _0xd92fb4=$('#node-input-nodeId');_0xd92fb4[_0x2fe132(0x125)](Object[_0x2fe132(0x7b)](Object[_0x2fe132(0x7b)]({},_0x8010aa()),{'filter'(_0x4e9c13){const _0xc0afa8=_0x2fe132;return _0x4e9c13['nodeClass']===_0xc0afa8(0xaf)||_0x4e9c13['nodeClass']===_0xc0afa8(0xf6);},'isSelectable'(_0x5a06f0){const _0x1d1d75=_0x2fe132;return _0x5a06f0[_0x1d1d75(0xdb)]===_0x1d1d75(0xaf);}}));},'oneditsave'(){const _0x22d047=_0x4d0003,_0x320c82=$(_0x22d047(0x139))[_0x22d047(0x100)](_0x22d047(0x13b));_0x320c82?($(_0x22d047(0x139))[_0x22d047(0x8a)](_0x320c82?0x0:0x1),this['inputs']=_0x320c82?0x0:0x1):($(_0x22d047(0x139))['val'](0x1),this[_0x22d047(0xa7)]=0x1);}});}()));function _0xd13c(_0x55cf08,_0x54ed2a){const _0x41f664=_0x41f6();return _0xd13c=function(_0xd13c24,_0x4ab9ab){_0xd13c24=_0xd13c24-0x67;let _0x1e1e44=_0x41f664[_0xd13c24];return _0x1e1e44;},_0xd13c(_0x55cf08,_0x54ed2a);}function _0x41f6(){const _0x58f755=['unchecked','<div\x20class=\x22info-text\x22></div>','i=34','browseName','_setInputValue','fetched','sterfve-dropdown','throw','fa-list-alt','endpoint','nodeBrowser','calc(100%\x20-\x20','typeDefinition','View','!!failure!!','filter','Invalid','sterfve-combo-box','application/json','$toggleTreeBtn','<ul></ul></li>','#node-input-endpoint','placeholder','clicked\x20on\x20icon','$inputGroup','top','/extractEventTypes','isSelectable','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','ns=0;i=35','#node-input-startImmediately','OpcUa-Client2-MonitorEvent','checked','Method','name','left','1352319GxlOuQ','nodeId','Both','DodgerBlue','</li>','right','references','#node-input-subscription','fa-sliders','change','removeClass','toString','POST','CadetBlue','UserName','span.custom-checkbox','endpointNode','504200Uclotj','assign','$combo','<ul\x20class=\x22sterfive-tree\x22></ul>','events','json','SandyBrown','reference','HasComponent','loading','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','has','\x22\x20style=\x22color:','5244424iEjQPY','offset','options','val','browseResult','node-input-startImmediately','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','trigger','<span\x20class=\x22cancel-button\x22>✖</span>','userPrivatekey','securityPolicy','fetched\x20:\x20','children','18pYikNp','append','ReferenceType','DarkOrange','$tree','next','replaceWith','OpcUa-Endpoint2','target','/opcua-endpoint2','fa-object-group','displayName','nodes','px)','function','<ul></ul>','Objects','push','width','inputs','match','sterfive.eventFieldSelector','Inverse','<i\x20class=\x22fa\x20','fa-folder','verify','toggle','Variable','done','<span\x20class=\x22validate-button\x22>✔</span>','$verifyBtn','statusText','then','expandable','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','rgba(61,\x2060,\x204,\x200.525)','hasClass','ns=0;i=85','status','data-value','VariableType','userName','\x20Fetching\x20done','sterfive.nodeBrowser','value','css','$input','_updateSelectedFields','opcua','currentParent','.sterfive-tree\x20li','_installChildren','userIdentityType','Forward','stringify','ns=0;i=47','length','reset','66230txRPtw','registerType','subTypes','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','parentNode','#node-input-inputs','ObjectType','log','SteelBlue','each','node','stopPropagation','span.custom-checkbox.checked','nodeClass','message','<li>','remove','sort','data','60goXziq','click','<option/>','catch','resolveParentNode','statusCode','<div\x20class=\x22spinner\x22></div>','toggleClass','$info','opcualogobig.png','no-expandable','focus\x20click','$dropdown','opc.tcp://opcuademo.sterfive.com:26543','userCertificate','subscription','pageY','error','closest','expandable\x20expanded','_updateValues','Object','baseUrl','clicked\x20on\x20','566293BvClCx','Unspecified','element','OPCUA\x20Monitor','securityMode','i=47','expanded','prop','grey',';\x22></i>\x20','split','<li>error\x20','ns=0;i=61','attr','referenceTypeId','widget','fa-cog','addClass','hide',':visible','2754192ezoAlz','<div/>','2774464ZqrOJS','password',';\x22></i>','SeaGreen','Organizes','empty','err','ns=0;i=46','pageX','text','subscriptions','DataType'];_0x41f6=function(){return _0x58f755;};return _0x41f6();}
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzNWQ1YzUiLCJfMHgyYjQ3NTQiLCJfMHg1NDI4MGEiLCJfMHgzNDA1YTkiLCIkIiwiXzB4MmQ4OTg3IiwiXzB4MmE0ZTE2IiwiXzB4MzQyYTI5IiwiXzB4ZTMxMjdkIiwiXzB4NWM3MGNlIiwiXzB4MWU1ZTUxIiwiXzB4MWIyNTU2IiwiXzB4NWYyMTcxIiwiXzB4MjAxNzYyIiwiXzB4MWEzMjdkIiwiXzB4NWIxZWU5IiwiXzB4M2VmNTU2IiwiXzB4NGIyM2Q3IiwiUHJvbWlzZSIsIl8weDMzNWM1ZiIsIl8weDI0MWE0YyIsIl8weDUxMzllMiIsIl8weDQ1OTI2NyIsIl8weGE2Y2YwMCIsIl8weDNhNjhjOSIsIl8weDU4ZjllZiIsIl8weDQ2YzgyMSIsIl8weDRhY2NjZiIsIl8weDNjMzhiNyIsIlN1cHByZXNzZWRFcnJvciIsIl8weDgxNzA2OSIsIl8weDM3YTZjNSIsIl8weDFiMjBlNSIsIl8weDk2ZDNkNSIsIkVycm9yIiwiXzB4MzRiY2U5IiwiXzB4NGJiNTRiIiwiXzB4NDYyM2Q1IiwiXzB4MmIyNGIwIiwiXzB4MTI5ZDJjIiwiXzB4M2ViMGUxIiwiXzB4NTUzNTRhIiwiXzB4NTM4MDcyIiwiXzB4NTIzYjczIiwiXzB4NGY0OTI1IiwiXzB4MjhkZTllIiwiXzB4NDZiN2YxIiwiXzB4MmE5ODdkIiwiZW5kcG9pbnROb2RlIiwiXzB4NDQ1YTA2IiwiZW5kcG9pbnQiLCJfMHgyZTg0NGUiLCJiYXNlVXJsIiwiXzB4NDYwMDY0IiwiXzB4OTMwMmY0IiwiXzB4NGU2OTllIiwiXzB4NTVhMjBjIiwiXzB4NDJlMWU3IiwiXzB4NGNkODA0IiwiT2JqZWN0IiwiXzB4NTBiZjFlIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDM0Y2I3OSIsIl8weDQ4ZGYxNiIsIl8weDFlYmY2ZCIsIl8weDJlMTc4ZiIsIl8weDExZTAzOSIsIl8weDVhMzM3MCIsIl8weDIxMWM1MSIsIl8weDExYTRiYiIsIl8weDMzMmU5YSIsIl8weDM3YjczOCIsIl8weDI5OWE0ZSIsIl8weDNkMzQ1OSIsIl8weDg3NDcyMiIsIl8weDE3Njc0MiIsIl8weDM1NTM0MyIsIl8weDFhOTVhMCIsInNldFRpbWVvdXQiLCJfMHgyYTUzNGEiLCJfMHg2ODQwNjUiLCJfMHg0NTE0MDIiLCJfMHg1NmQ0YWQiLCJfMHg1NWM4NWMiLCJfMHg1Y2MxYWMiLCJfMHgxMTViZjIiLCJfMHgzZmI5NTkiLCJfMHg0MDU1MjciLCJfMHgxYTM1YTciLCJfMHg1MTk5MzkiLCJfMHgzYWQ4ZDgiLCJfMHg0ZGI4YzkiLCJfMHgzMGFmYTMiLCJpY29uIiwiXzB4MjEyNGUzIiwiY29sb3IiLCJfMHgyYWEwMjEiLCJfMHgyYWI0YTUiLCJfMHgyZjQyNTciLCJ1bmRlZmluZWQiLCJfMHg0NzI2NzMiLCJfMHgxOGU0ZWIiLCJfMHg5MGYzOTYiLCJfMHgxMTM1NjciLCJfMHgyZWVlODQiLCJfMHhkZDRjNjAiLCJfMHgzMWU1NWIiLCJfMHgzMzc5ZCIsIl8weDExOWQzOCIsIl8weDMwOTdiOCIsIl8weDE0OWVhYSIsIl8weDI3NGI4NSIsInJlZmVyZW5jZXMiLCJfMHgzYzFmMzIiLCJfMHgxY2Y4NGEiLCJfMHg0ZTBjZGQiLCJfMHgzOWJkNTciLCJfMHgyNDAzMmEiLCJfMHg1YjBjYzAiLCJfMHgzNzRjNTQiLCJfMHg1MDYxZWYiLCJfMHg0MDZlM2YiLCJfMHgxMjBlZGEiLCJfMHgyYjY1MDMiLCJfMHg1NDcxYzYiLCJfMHgxYTk5M2EiLCJfMHg0Mzk4ZmYiLCJfMHg1Yzc1YjMiLCJfMHgxY2U4YzciLCJfMHg0ZDQ4ZDUiLCJfMHg0MjI1MmQiLCJfMHg1ZGU4YWIiLCJfMHgyNzk0YzgiLCJkb2N1bWVudCIsIl8weDJkMzVhNiIsIl8weDI4NGFiMSIsIl8weDM0MTliZiIsIl8weDUyNGQ1ZiIsIl8weDMzODEzZSIsIl8weDQyMzQyMCIsIl8weDUwNThhYyIsIl8weDVlNTc0OCIsIl8weDM1MjRkNiIsIl8weDEwNDM2MSIsIl8weDc4ZWE5ZSIsIl8weDJiZjA1ZCIsIl8weDE2ZDRkMSIsIl8weDVlZGQ2YSIsIl8weDNlODMyNCIsIl8weDQ1YjkyMyIsIl8weDUzOTE3NiIsIl8weDVhOTQ5YiIsIlNldCIsIl8weGM3YzA1NiIsIl8weDFmOGE5MSIsIl8weDVlYWFkMiIsIl8weDMzMzkxMSIsIl8weDQ2ZjQ0NSIsIl8weDJhYTAzNCIsIl8weDJhODYxZiIsIl8weDM5NzllZiIsIl8weDEwMTljYSIsIl8weDRlNzk4NiIsIl8weDUyMTU4MSIsIl8weDEyNDAwOSIsIl8weDRkYWVlYSIsIl8weDMzZGIyMSIsIm5hbWUiLCJfMHgyZmNiMWQiLCJuYW1lc3BhY2VJbmRleCIsIl8weDUyZTc1ZCIsIl8weDVhMjcwYyIsIl8weGYwNWFjOCIsIl8weDM2M2Q0MiIsIl8weDMwYjc4YSIsIl8weDVjMjljOSIsIl8weDE0N2U0NiIsIl8weGNjOTk5IiwiXzB4MjA2MGI1IiwiXzB4NTU1YmVhIiwiXzB4MmUxMGI5IiwiXzB4NWRjM2YxIiwiXzB4NGU1M2RkIiwiXzB4NTg3YTQxIiwiXzB4MjY2MzgyIiwiXzB4NTc0MGIwIiwiXzB4MjYzZjAyIiwiXzB4NGZmYTFkIiwiXzB4MTJmYWM3IiwiXzB4NDlhZTIwIiwiXzB4MjAxMDgzIiwiXzB4NDUzZDJhIiwiXzB4ODcwMzU4IiwiXzB4OTM3NGY4IiwiXzB4MzgwN2M4IiwiXzB4MTE5ZDU5IiwiXzB4MmZlMjkxIiwiXzB4MzY3YmJhIiwiXzB4MWY5MjhjIiwiXzB4MTJiODE2IiwiXzB4Mjk5ODE0IiwiXzB4NDUxZjgyIiwiXzB4MTIwZjIwIiwiXzB4MjIxMmM0IiwiXzB4NTExYzNkIiwiXzB4NDJkMWQzIiwiXzB4MzZjZThmIiwiXzB4NWIzZDZmIiwiXzB4NTFlNDUxIiwiXzB4MTM3NzAzIiwiXzB4MmNkODcyIiwiXzB4MTU0MzE2IiwiXzB4MzQ5YWY1IiwiXzB4NDJkMjEyIiwiUkVEIiwiXzB4NWIwMzdlIiwic2VjdXJpdHlNb2RlIiwiXzB4MWJjOGQ3Iiwic2VjdXJpdHlQb2xpY3kiLCJfMHgzNzRlNGMiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NDllMDYwIiwidXNlck5hbWUiLCJfMHhjYjVlZWQiLCJwYXNzd29yZCIsIl8weDE5YTFlOSIsInVzZXJDZXJ0aWZpY2F0ZSIsIl8weDFjN2RjMSIsInVzZXJQcml2YXRla2V5IiwiXzB4NWU0ZWUyIiwiXzB4ODAxMGFhIiwiXzB4NGY0ZTNhIiwiXzB4MjVhNjdmIiwiXzB4NGMwNDM3IiwiXzB4MmUyYWM5IiwiXzB4MmFiY2E5IiwiXzB4MmQ5NjYzIiwiXzB4ZDkyZmI0IiwiXzB4NGU5YzEzIiwiXzB4NWEwNmYwIiwiXzB4MzIwYzgyIl0sIm1hcHBpbmdzIjoib2lCQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFvQ0MsU0FBcEMsQ0FBeUNDLFNBQXpDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLGdCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGVBQUEsQyxDQUNoQkUsU0FBQSxDQUE2QixJLDJCQUN6QkMsU0FBQSxDQUFXTixTQUFBLEMsT0FBQSxFLE1BQUEsRUFBZUUsU0FBQSxDLEtBQUEsR0FBZixDLENBQ2pCRSxTQUFBLEMsZ0JBQUEsSSxHQUNJLENBQUNFLFNBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZ0JBQUEsQyxDQUNkLE8sR0FFQUEsU0FBQSxDLGdCQUFBLEMsQ0FDQSxVQUFXQyxTQUFYLElBQWdCRCxTQUFBLEMsZ0JBQUEsQ0FBaEIsQyxDQUNJLE1BQU1FLFNBQUEsQ0FBUUQsU0FBQSxDLE1BQUEsR0FBVUEsU0FBQSxDLElBQUEsQ0FBeEIsQ0FDQUosQ0FBQSxDLGVBQUEsQ0FBZSxDLE9BQ1gsQ0FBT0ksU0FBQSxDLElBQUEsQ0FESSxDLE9BRVgsQ0FBT0MsU0FGSSxDLFVBR1gsQ0FBVUQsU0FBQSxDLElBQUEsSUFBU04sU0FBQSxDLGVBQUEsQ0FIUixDQUFmLEUsZ0JBQUEsRUFLVU8sU0FMVixFLFVBQUEsRUFNY0osU0FOZCxDLElBVVpDLFNBQUEsRSxDQU9BRCxTQUFBLEMsSUFBQSxFLGVBQUEsQ0FBZ0MsSSxDQUM1QkMsU0FBQSxFLEVBREosQyxDQUdBSCxT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IHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3ViY3JpcHRpb25TZWxlY3RvcihSRUQsIG5vZGUpIHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCAkc3Vic2NyaXB0aW9uID0gJChcIiNub2RlLWlucHV0LXN1YnNjcmlwdGlvblwiKTtcbiAgICAgICAgY29uc3QgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IFJFRC5ub2Rlcy5ub2RlKCRlbmRwb2ludC52YWwoKSk7XG4gICAgICAgICAgICAkc3Vic2NyaXB0aW9uLmVtcHR5KCk7XG4gICAgICAgICAgICBpZiAoIWVuZHBvaW50IHx8ICFlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHMgb2YgZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHMubmFtZSB8fCBzLmlkO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPG9wdGlvbi8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHMuaWQgPT09IG5vZGUuc3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQobGFiZWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oJHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyBoYWNrXG4gICAgICAgIC8vICRpbnB1dEFjdGlvbi5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vICAgICB9KTtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgICRzdWJzY3JpcHRpb24ub24oXCJmb2N1cyBjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImk9MzVcIjtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJpPTQ3XCI7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJpPTM0XCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZWNodGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goYCR7cm9vdH0vY2hlY2tOb2RlSWRgLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWYoXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWYoXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWYoYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudCQxKHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUoJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZnZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mZXRjaERhdGFGb3JOb2RlKCRsaSwgZmV0Y2hDaGlsZHJlbiwgZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIiBGZXRjaGluZyBkb25lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IG5zID0gKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lc3BhY2VJbmRleDtcbiAgICAgICAgdCArPSBucyAhPT0gdW5kZWZpbmVkICYmIHJlZmVyZW5jZS5ub2RlQ2xhc3MubWF0Y2goL1R5cGUvKSA/IGAgKG5zPSR7bnN9KWAgOiBcIlwiO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPmApO1xuICAgICAgICBpZiAocmVmZXJlbmNlLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICBjb25zdCBjaGVja0JveCA9ICQoJzxzcGFuIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94IHVuY2hlY2tlZFwiPjwvc3Bhbj4nKTtcbiAgICAgICAgICAgICRlbGVtZW50LmFwcGVuZChjaGVja0JveCk7XG4gICAgICAgICAgICAvLyBUb2dnbGUgY2hlY2tib3ggc3RhdGUgd2hlbiBjbGlja2VkXG4gICAgICAgICAgICBjaGVja0JveC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tCb3guaGFzQ2xhc3MoXCJ1bmNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJjaGVja2VkXCIpLmFkZENsYXNzKFwidW5jaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICRlbGVtZW50LmFwcGVuZCgkKGA8aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4ke3R9PHVsPjwvdWw+YCkpO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmV2ZW50RmllbGRTZWxlY3RvclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9wb3B1bGF0ZSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSBuZXcgU2V0KChfYSA9IHRoYXQuJGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCBleHRyYXRFdmVudEZpZWxkSW5mbyhkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbFRyZWUocmVzdWx0LCBzZWxlY3RlZEZpZWxkKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5zdGFsbFRyZWUocmVzdWx0LCBzZWxlY3RGaWVsZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5ldmVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByb290ID0gcmVzdWx0LmV2ZW50cztcbiAgICAgICAgICAgICAgICBjb25zdCAkcm9vdEVsZW1lbnQgPSBtYWtlRWxlbWVudChyb290KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkcm9vdEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZWZpeCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbENoaWxkcmVuKCRyb290RWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCByb290LCBwcmVmaXgsIHNlbGVjdEZpZWxkKTtcbiAgICAgICAgICAgICAgICAkcm9vdEVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVzKHNlbGVjdEZpZWxkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5zdGFsbENoaWxkcmVuKCRwYXJlbnQsIHBhcmVudCwgcHJlZml4LCBzZWxlY3RlZEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYiA9ICh7IG5hbWUsIG5hbWVzcGFjZUluZGV4IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVzcGFjZUluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZXNwYWNlSW5kZXh9OiR7bmFtZX1gO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnQuY2hpbGRyZW4gfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViVHlwZXMgPSBwYXJlbnQuc3ViVHlwZXMgfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW5BbmRTdWJUeXBlcyA9IFsuLi5jaGlsZHJlbiwgLi4uc3ViVHlwZXNdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW5BbmRTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgJHBhcmVudC5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJlZml4MiA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBwcmVmaXggKyBcIi5cIiArIGIoY2hpbGQuYnJvd3NlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgyID0gYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LmF0dHIoXCJkYXRhLXZhbHVlXCIsIHByZWZpeDIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gY2hpbGQuY2hpbGRyZW4gJiYgY2hpbGQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNTdWJUeXBlcyA9IGNoaWxkLnN1YlR5cGVzICYmIGNoaWxkLnN1YlR5cGVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNDaGlsZHJlbiAmJiAhaGFzU3ViVHlwZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcIm5vLWV4cGFuZGFibGVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJGVsZW1lbnQuY2hpbGRyZW4oXCJ1bFwiKSwgY2hpbGQsIHByZWZpeDIsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkcyA9IG5ldyBTZXQoKF9hID0gdGhhdC4kaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgLnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIiApKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0ZWRGaWVsZHMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF91cGRhdGVWYWx1ZXMoc2VsZWN0ZWRGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICAkKFwiLnN0ZXJmaXZlLXRyZWUgbGlcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodiAmJiBzZWxlY3RlZEZpZWxkcy5oYXModikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmNoaWxkcmVuKFwic3Bhbi5jdXN0b20tY2hlY2tib3hcIikucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3NldElucHV0VmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IFtdO1xuICAgICAgICAgICAgICAgIC8vIGNyYXdsIHRoZSB0cmVlIHRvIGZpbmQgc2VsZWN0ZWQgZWxlbWVudHMgYW5kIGNyZWF0ZSBhIGxpc3Qgb2YgQnJvd3NlUGF0aFxuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgZWxlbWVudCBpcyBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveC5jaGVja2VkXCIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSAkdGhpcy5hdHRyKFwiZGF0YS12YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaCh2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gWy4uLm5ldyBTZXQobGlzdCldLnNvcnQoKS5qb2luKFwiO1wiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwodmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZnZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoYXQuJGRyb3Bkb3duLm9mZnNldCgpOyAvLyBHZXQgdGhlIHRvcC1sZWZ0IGNvcm5lciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogYCR7b2Zmc2V0LnRvcH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGBjYWxjKDEwMCUgLSAke29mZnNldC5sZWZ0ICsgdGhhdC4kZHJvcGRvd24ud2lkdGgoKX1weClgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll91cGRhdGVTZWxlY3RlZEZpZWxkcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0ICRzY3JvbGxhYmxlQ29udGVudCA9ICQoJzxkaXYgY2xhc3M9XCJzdGVyZnZlLWRyb3Bkb3duLXNjcm9sbGFibGUtY29udGVudFwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwidmFsaWRhdGUtYnV0dG9uXCI+4pyUPC9zcGFuPicpOyAvLyBVc2UgYW55IGljb24gb3IgdGV4dCBoZXJlXG4gICAgICAgICAgICAgICAgY29uc3QgJGNhbmNlbEJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiPuKcljwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRmbG9hdGluZ0J1dHRvbnMgPSAkKCc8ZGl2IGNsYXNzPVwiZmxvYXRpbmctYnV0dG9uc1wiPjwvZGl2PicpLmFwcGVuZCgkdmFsaWRhdGVCdXR0b24sICRjYW5jZWxCdXR0b24pO1xuICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIERlZmluZSB5b3VyIHZhbGlkYXRpb24gYW5kIGNhbmNlbGxhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgICR2YWxpZGF0ZUJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJGNhbmNlbEJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5lbXB0eSgpLmFwcGVuZCh0aGF0LiR0cmVlLCAkZmxvYXRpbmdCdXR0b25zKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gaWNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2xpY2tlZCBvbiBcIiwgJGxpLmRhdGEoXCJ2YWx1ZVwiKSwgJGxpLmF0dHIoXCJjbGFzc1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgZXh0cmF0RXZlbnRGaWVsZEluZm8gPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsLCB9KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2V4dHJhY3RFdmVudFR5cGVzYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZlY2h0aW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZXZlbnRzOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCBldmVudHMgPSByZXNwb25zZS5ldmVudHM7XG4gICAgICAgIHJldHVybiB7IGV2ZW50cyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdHplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgaHRlIHJlZG5vZGUgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIHVzZXJOYW1lLCBwYXNzd29yZCwgdXNlckNlcnRpZmljYXRlLCB1c2VyUHJpdmF0ZWtleSB9ID0gcmVkTm9kZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgdXNlck5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItTW9uaXRvckV2ZW50XCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIm9wY3VhbG9nb2JpZy5wbmdcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhcnRJbW1lZGlhdGVseTogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIHdlIHVzZSBhIGRpZmZlcmVudCB3aWRnZXQgZm9yIGVkaXRpbmcgdGhlIG5vZGVJZCwgYmVjYXVzZSB0aGUgYmVoYXZpb3JcbiAgICAgICAgICAgIC8vIGlzIHNwZWN0aWZpYyB0byBtb25pdG9yLCBob3dldmVyIHByb3BlcnR5IHdpbGwgYmUgc3RvcmVkIGluIG5vZGVJZFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UsIHZhbGlkYXRlOiAoKSA9PiB0cnVlIH0sXG4gICAgICAgICAgICBzYW1wbGluZ0ludGVydmFsOiB7IHZhbHVlOiAxMDAwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgZGlzY2FyZE9sZGVzdDogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHF1ZXVlU2l6ZTogeyB2YWx1ZTogMTAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIE1vbml0b3JcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsU3ViY3JpcHRpb25TZWxlY3RvcihSRUQsIHRoaXMpO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBBY3Rpb24gTW9uaXRvciBDb21tb25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAtLSBpbnN0YWxsIHN1YnNjcmlwdGlvbiBzZWxlY3Rpb25cbiAgICAgICAgICAgICQoXCJub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrZWQgPSAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1pbnB1dHNcIikudmFsKDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBBY3Rpb24gTW9uaXRvclxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
7
+ function _0x3b97(_0x53dcaa,_0x4df1b8){const _0x11f162=_0x11f1();return _0x3b97=function(_0x3b9773,_0x3c9864){_0x3b9773=_0x3b9773-0x7c;let _0x35b109=_0x11f162[_0x3b9773];return _0x35b109;},_0x3b97(_0x53dcaa,_0x4df1b8);}function _0x11f1(){const _0x39514c=[';\x22></i>','HasSubtype','each','fa-cog','widget','err','browseName','#node-input-startImmediately','#node-input-inputs','<li><i\x20class=\x22fa\x20','error','top','opcualogobig.png','.sterfive-tree\x20li','message','<div/>','baseUrl','append','<div\x20class=\x22info-text\x22></div>','100334eQkzlN','apply','log','SandyBrown','ns=0;i=85','sterfive-combo-box','ns=0;i=46','done','stringify','calc(100%\x20-\x20','focus\x20click','/opcua-endpoint2','rgba(61,\x2060,\x204,\x200.525)','sterfive-info','sterfive.eventFieldSelector','1020548ziUilR','Invalid','pageY','userCertificate','closest','hide','browseResult','already\x20fetched','data','statusCode','subscriptions','Method','20oMJMLf','_populate','children','references','fa-folder','referenceTypeId','1210698jDlTfr','<div\x20class=\x22spinner\x22></div>','opc.tcp://opcuademo.sterfive.com:26543','OpcUa-Client2-MonitorEvent','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','6055424bPGUGZ','push','split','offset','_installChildren','opcua','fa-list-alt','placeholder','\x22\x20style=\x22color:','fetched','BrowseName','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','fa-question','endpointNode','ns=0;i=34','filter','ObjectType','target','!!failure!!','already\x20loading','catch','_installTree','typeDefinition','css','registerType','application/json','show','endpoint','CadetBlue','find','securityMode','checked','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','$input','trigger','$dropdown','sterfive-dropdown','val','removeClass','<ul></ul>','prop','NodeClass','#C0DEED','fa-object-group','resolveParentNode','subTypes','1645721UZNVrJ','remove','left','#node-input-endpoint','<span\x20class=\x22cancel-button\x22>✖</span>','isTypeRef','statusText','failure',':visible','8502KFMVNQ','$verifyBtn','length','Unspecified','namespaceIndex','userName','50NdXpJf','match','UserName','Organizes','empty','eventFieldSelector','$inputGroup','View','unchecked','HasComponent','change','then','ns=0;i=47','no-expandable','/checkNodeId','replaceChild','SuppressedError','fetching\x20failed\x20with\x20error','inputs','right','TypeDefinition','<div\x20class=\x22floating-buttons\x22></div>','function','span.custom-checkbox.checked','clicked\x20on\x20','HasProperty','Variable','ns=0;i=61','reset','\x20(ns=','DodgerBlue','POST','name','isSelectable','/extractEventTypes','click','toggleClass','class','ReferenceType','expanded','displayName','_updateSelectedFields','status','input-group','i=61','DarkOrange','IsForward','json','grey','2136eTBFwF','nodeId','subscription','OPCUA\x20Monitor','span.custom-checkbox','join','fetched\x20:\x20','parentElement','708QvPcuX','/browse','nodeClass','toggle','replaceWith','node-input-startImmediately','#node-input-subscription','data-value','$toggleTreeBtn','currentParent','pageX','parentNode','element','#node-input-whereClause','loading','\x20Fetching\x20done','#node-input-selectClauses','text','Objects','nodeBrowser','_setInputValue','<i\x20class=\x22fa\x20','verify','Both','DataType','DisplayName','VariableType','attr','$info','addClass','#node-input-nodeId','<ul\x20class=\x22sterfive-tree\x22></ul>','value','ns=0;i=45','expandable\x20expanded','Forward','options','<li>error\x20','reference','next','SteelBlue','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','$combo','Good','expandable','toString','nodes','clicked\x20on\x20icon','Object','throw','monitor\x20events','events','stopPropagation','userIdentityType','assign','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','$tree','hasClass'];_0x11f1=function(){return _0x39514c;};return _0x11f1();}(function(_0x192590,_0x149cdf){const _0x1004d4=_0x3b97,_0x59e412=_0x192590();while(!![]){try{const _0x45a915=-parseInt(_0x1004d4(0x90))/0x1+-parseInt(_0x1004d4(0x9f))/0x2+parseInt(_0x1004d4(0x124))/0x3*(-parseInt(_0x1004d4(0x12c))/0x4)+parseInt(_0x1004d4(0xab))/0x5*(parseInt(_0x1004d4(0xed))/0x6)+parseInt(_0x1004d4(0xe4))/0x7+parseInt(_0x1004d4(0xb6))/0x8+-parseInt(_0x1004d4(0xb1))/0x9*(-parseInt(_0x1004d4(0xf3))/0xa);if(_0x45a915===_0x149cdf)break;else _0x59e412['push'](_0x59e412['shift']());}catch(_0x249bf6){_0x59e412['push'](_0x59e412['shift']());}}}(_0x11f1,0xe3f2d),(function(){'use strict';const _0x416216=_0x3b97;function _0x2b90dc(_0x400b7b,_0x40c66f){const _0x2d20e8=_0x3b97,_0x1a01d4=$('#node-input-endpoint'),_0x31e3d4=$(_0x2d20e8(0x132)),_0x8d2e64=()=>{const _0x495a29=_0x2d20e8,_0x524fd5=_0x400b7b['nodes']['node'](_0x1a01d4[_0x495a29(0xdb)]());_0x31e3d4[_0x495a29(0xf7)]();if(!_0x524fd5||!_0x524fd5[_0x495a29(0xa9)])return;if(_0x524fd5['subscriptions'])for(const _0x5ce94f of _0x524fd5[_0x495a29(0xa9)]){const _0x445746=_0x5ce94f[_0x495a29(0x113)]||_0x5ce94f['id'];$('<option/>',{'value':_0x5ce94f['id'],'label':_0x445746,'selected':_0x5ce94f['id']===_0x40c66f[_0x495a29(0x126)]})[_0x495a29(0x13d)](_0x445746)['appendTo'](_0x31e3d4);}};_0x8d2e64(),_0x31e3d4['on'](_0x2d20e8(0x9a),()=>{_0x8d2e64();}),_0x1a01d4['on'](_0x2d20e8(0xfd),()=>{_0x8d2e64();});}function _0x25a1b0(_0x3d2d29,_0x4c8673,_0x56a7a7,_0x5ccd00){function _0x463c35(_0x10e2eb){return _0x10e2eb instanceof _0x56a7a7?_0x10e2eb:new _0x56a7a7(function(_0x4445f2){_0x4445f2(_0x10e2eb);});}return new(_0x56a7a7||(_0x56a7a7=Promise))(function(_0x1190a0,_0x512676){const _0x104627=_0x3b97;function _0x37385f(_0x520ffe){const _0x554c4d=_0x3b97;try{_0x5d4641(_0x5ccd00[_0x554c4d(0x153)](_0x520ffe));}catch(_0x2cb98e){_0x512676(_0x2cb98e);}}function _0x3083da(_0x53a9c5){const _0x55f985=_0x3b97;try{_0x5d4641(_0x5ccd00[_0x55f985(0x15d)](_0x53a9c5));}catch(_0x9f501d){_0x512676(_0x9f501d);}}function _0x5d4641(_0x402db0){const _0x1034b=_0x3b97;_0x402db0[_0x1034b(0x97)]?_0x1190a0(_0x402db0[_0x1034b(0x14c)]):_0x463c35(_0x402db0['value'])[_0x1034b(0xfe)](_0x37385f,_0x3083da);}_0x5d4641((_0x5ccd00=_0x5ccd00[_0x104627(0x91)](_0x3d2d29,_0x4c8673||[]))[_0x104627(0x153)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x1d9a3c,_0x49d7c3,_0x4444a2){const _0x22e3c9=_0x3b97;var _0x388584=new Error(_0x4444a2);return _0x388584['name']=_0x22e3c9(0x103),_0x388584['error']=_0x1d9a3c,_0x388584['suppressed']=_0x49d7c3,_0x388584;};const _0x398f1b='ns=0;i=35',_0x214938=_0x416216(0x10e),_0x299bf6=_0x416216(0xff),_0x69df99=_0x416216(0x96),_0x274626=_0x416216(0xc4),_0x51f218=_0x416216(0x14d),_0xe06f13='ns=0;i=40';var _0x3e2948;(function(_0x34abb8){const _0x667dd7=_0x416216;_0x34abb8[_0x34abb8[_0x667dd7(0x14f)]=0x0]=_0x667dd7(0x14f),_0x34abb8[_0x34abb8['Inverse']=0x1]='Inverse',_0x34abb8[_0x34abb8[_0x667dd7(0x143)]=0x2]=_0x667dd7(0x143),_0x34abb8[_0x34abb8[_0x667dd7(0xa0)]=0x3]=_0x667dd7(0xa0);}(_0x3e2948||(_0x3e2948={})));var _0x506cb2;(function(_0x54d47c){const _0x1a888a=_0x416216;_0x54d47c[_0x54d47c[_0x1a888a(0xf0)]=0x0]=_0x1a888a(0xf0),_0x54d47c[_0x54d47c[_0x1a888a(0x15c)]=0x1]=_0x1a888a(0x15c),_0x54d47c[_0x54d47c[_0x1a888a(0x10d)]=0x2]=_0x1a888a(0x10d),_0x54d47c[_0x54d47c[_0x1a888a(0xaa)]=0x4]=_0x1a888a(0xaa),_0x54d47c[_0x54d47c[_0x1a888a(0xc6)]=0x8]=_0x1a888a(0xc6),_0x54d47c[_0x54d47c[_0x1a888a(0x146)]=0x10]=_0x1a888a(0x146),_0x54d47c[_0x54d47c[_0x1a888a(0x119)]=0x20]=_0x1a888a(0x119),_0x54d47c[_0x54d47c[_0x1a888a(0x144)]=0x40]='DataType',_0x54d47c[_0x54d47c['View']=0x80]=_0x1a888a(0xfa);}(_0x506cb2||(_0x506cb2={})));var _0x41d307;(function(_0x4e352c){const _0x3916db=_0x416216;_0x4e352c[_0x4e352c[_0x3916db(0x15c)]=0x1]=_0x3916db(0x15c),_0x4e352c[_0x4e352c['Variable']=0x2]='Variable',_0x4e352c[_0x4e352c['Method']=0x4]=_0x3916db(0xaa),_0x4e352c[_0x4e352c['ObjectType']=0x8]=_0x3916db(0xc6),_0x4e352c[_0x4e352c[_0x3916db(0x146)]=0x10]=_0x3916db(0x146),_0x4e352c[_0x4e352c[_0x3916db(0x119)]=0x20]=_0x3916db(0x119),_0x4e352c[_0x4e352c[_0x3916db(0x144)]=0x40]=_0x3916db(0x144),_0x4e352c[_0x4e352c[_0x3916db(0xfa)]=0x80]=_0x3916db(0xfa);}(_0x41d307||(_0x41d307={})));var _0x3f4006;(function(_0x4854b8){const _0x542d19=_0x416216;_0x4854b8[_0x4854b8[_0x542d19(0x119)]=0x1]='ReferenceType',_0x4854b8[_0x4854b8[_0x542d19(0x121)]=0x2]='IsForward',_0x4854b8[_0x4854b8['NodeClass']=0x4]=_0x542d19(0xdf),_0x4854b8[_0x4854b8['BrowseName']=0x8]=_0x542d19(0xc0),_0x4854b8[_0x4854b8['DisplayName']=0x10]=_0x542d19(0x145),_0x4854b8[_0x4854b8['TypeDefinition']=0x20]=_0x542d19(0x107);}(_0x3f4006||(_0x3f4006={})));function _0x1166c4(_0x199eea){const _0x2d84b0=_0x416216;switch(_0x199eea){case'Organizes':return _0x398f1b;case _0x2d84b0(0x10c):return _0x69df99;case _0x2d84b0(0xfc):return _0x299bf6;case'HasChild':return _0x274626;case _0x2d84b0(0x7e):return _0x51f218;case'HasTypeDefinition':return _0xe06f13;}}const _0x47f830=_0x197367=>{const _0x2faf7b=_0x416216;switch(_0x197367[_0x2faf7b(0x12e)]){case _0x2faf7b(0x15c):if(_0x197367[_0x2faf7b(0xb0)]===_0x398f1b);if(_0x197367[_0x2faf7b(0xcc)]===_0x214938||_0x197367[_0x2faf7b(0xb0)]===_0x2faf7b(0x11f))return{'icon':_0x2faf7b(0xaf),'color':_0x2faf7b(0x9c)};return{'icon':_0x2faf7b(0xe1),'color':'SeaGreen'};case _0x2faf7b(0x10d):if(_0x197367[_0x2faf7b(0xb0)]===_0x299bf6)return{'icon':_0x2faf7b(0xbc),'color':_0x2faf7b(0x154)};else return _0x197367[_0x2faf7b(0xb0)]===_0x69df99?{'icon':_0x2faf7b(0xbc),'color':_0x2faf7b(0x111)}:{'icon':_0x2faf7b(0xbc),'color':_0x2faf7b(0xd2)};case'Method':return{'icon':_0x2faf7b(0x80),'color':_0x2faf7b(0x93)};case _0x2faf7b(0xc6):return{'icon':_0x2faf7b(0xe1),'color':_0x2faf7b(0x120)};case _0x2faf7b(0x146):return{'icon':'fa-sliders','color':_0x2faf7b(0x120)};}return{'icon':_0x2faf7b(0xc2),'color':_0x2faf7b(0x123)};},_0x5d2eff=({endpointNode:_0x52f864,endpoint:_0x67b71a,baseUrl:_0x46a963},_0x3dc533,_0x1cd677)=>_0x25a1b0(void 0x0,void 0x0,void 0x0,function*(){const _0x836d98=_0x416216,_0x140c3c=_0x46a963+_0x836d98(0x9b),_0x2ec2db=_0x140c3c+_0x836d98(0x12d),_0x50db14=Object[_0x836d98(0x162)](Object[_0x836d98(0x162)]({},_0x1cd677),{'nodeId':_0x3dc533,'resultMask':0x3f}),_0x4827c5=yield fetch(_0x2ec2db,{'method':_0x836d98(0x112),'body':JSON[_0x836d98(0x98)]({'endpointNode':_0x52f864,'endpoint':_0x67b71a,'browseDescription':_0x50db14}),'headers':{'Content-Type':_0x836d98(0xcf)}});if(_0x4827c5[_0x836d98(0x11d)]!==0xc8)return console[_0x836d98(0x92)](_0x836d98(0x104),_0x4827c5[_0x836d98(0x11d)],_0x4827c5[_0x836d98(0xea)]),{'references':[]};console[_0x836d98(0x92)](_0x836d98(0x12a),_0x4827c5['status'],_0x4827c5[_0x836d98(0xea)]);const _0x178ec3=yield _0x4827c5['json'](),_0x4dace4=_0x178ec3[_0x836d98(0xa5)]['references']||[];return{'references':_0x4dace4};}),_0x2ebea8={'referenceTypeId':_0x1166c4('HasChild'),'includeSubtypes':!![],'browseDirection':_0x3e2948['Forward'],'nodeClassMask':_0x506cb2[_0x416216(0x10d)]|_0x506cb2[_0x416216(0x15c)]|_0x506cb2[_0x416216(0xaa)],'resultMask':0x3f},_0x5e395a={'referenceTypeId':_0x1166c4(_0x416216(0xf6)),'includeSubtypes':!![],'browseDirection':_0x3e2948[_0x416216(0x14f)],'nodeClassMask':_0x506cb2[_0x416216(0x10d)]|_0x506cb2['Object']|_0x506cb2[_0x416216(0xaa)],'resultMask':0x3f},_0x4d27a8=({endpointNode:_0x379d91,endpoint:_0xe41352,baseUrl:_0xd2dacf},_0x18fa60,_0x6d13a2)=>_0x25a1b0(void 0x0,void 0x0,void 0x0,function*(){const _0x180305=_0x416216,_0x41f5ff=_0xd2dacf+_0x180305(0x9b),_0x305933=_0x18fa60[_0x180305(0xdb)](),_0xdd9265=yield fetch(_0x41f5ff+_0x180305(0x101),{'method':_0x180305(0x112),'body':JSON[_0x180305(0x98)]({'endpointNode':_0x379d91,'endpoint':_0xe41352,'nodeId':_0x305933}),'headers':{'Content-Type':_0x180305(0xcf)}}),_0x59e76b=(_0x586d2b,_0x2e83c3)=>{const _0xd23dcb=_0x180305;_0x6d13a2[_0xd23dcb(0x13d)](_0x586d2b)[_0xd23dcb(0x149)](_0xd23dcb(0x9d))[_0xd23dcb(0x149)](_0x2e83c3),_0x6d13a2[_0xd23dcb(0xd0)](),setTimeout(()=>{const _0x50a36f=_0xd23dcb;_0x6d13a2['removeClass'](_0x2e83c3),_0x6d13a2[_0x50a36f(0xa4)]();},0xbb8);},_0x1cd2c7=yield _0xdd9265[_0x180305(0x122)]();_0xdd9265['status']!==0xc8?_0x59e76b(_0x180305(0xc8)+_0x305933,_0x180305(0xeb)):_0x1cd2c7[_0x180305(0xa8)][_0x180305(0xf4)](/Good/)?(_0x18fa60[_0x180305(0xdb)](_0x1cd2c7['nodeAddressString']),_0x18fa60[_0x180305(0xd8)](_0x180305(0xfd)),_0x59e76b(_0x180305(0x157),'ok')):(_0x18fa60[_0x180305(0xdb)](''+_0x305933),_0x59e76b(_0x1cd2c7[_0x180305(0xa8)]+'\x20'+_0xdd9265[_0x180305(0xea)],_0x180305(0xeb)));});function _0xccf6ac(_0xda14ba,_0x1244ba){return _0x25a1b0(this,void 0x0,void 0x0,function*(){const _0x4d1aa2=_0x3b97,_0x19a8ed=_0xda14ba['data'](_0x4d1aa2(0x14c)),_0xbedcb2=yield _0x5d2eff(_0x1244ba,_0x19a8ed,_0x2ebea8),_0x1a4142=yield _0x5d2eff(_0x1244ba,_0x19a8ed,_0x5e395a);return{'references':[..._0xbedcb2[_0x4d1aa2(0xae)],..._0x1a4142[_0x4d1aa2(0xae)]]};});}const _0x552193={'referenceTypeId':_0x1166c4('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x3e2948[_0x416216(0x14f)],'nodeClassMask':_0x506cb2[_0x416216(0x119)]|_0x506cb2['ObjectType']|_0x506cb2[_0x416216(0x144)]|_0x506cb2[_0x416216(0x146)],'resultMask':0x3f};function _0x1050de(_0x3019b7,_0x255ce3){return _0x25a1b0(this,void 0x0,void 0x0,function*(){const _0x21454d=_0x3b97,_0x12cc3f=_0x3019b7[_0x21454d(0xa7)]('value'),_0x35497c=yield _0x5d2eff(_0x255ce3,_0x12cc3f,_0x552193);return _0x35497c;});}const _0x335834=_0xb872dc=>{const _0x1b4dd2=_0x416216;var _0x29d0b3,_0x5e63cf;if(!_0xb872dc){const _0xbb5a14=$(_0x1b4dd2(0xd6));return _0xbb5a14;}const _0x2ba1b3=_0xb872dc['nodeId'][_0x1b4dd2(0x159)](),_0x5d7634=((_0x29d0b3=_0xb872dc[_0x1b4dd2(0x11b)])===null||_0x29d0b3===void 0x0?void 0x0:_0x29d0b3['text'])||((_0x5e63cf=_0xb872dc['browseName'])===null||_0x5e63cf===void 0x0?void 0x0:_0x5e63cf[_0x1b4dd2(0x113)])||_0xb872dc['nodeId'][_0x1b4dd2(0x159)](),{icon:_0x1394e8,color:_0x26ae35}=_0x47f830(_0xb872dc),_0x30b748=$(_0x1b4dd2(0x86)+_0x1394e8+_0x1b4dd2(0xbe)+_0x26ae35+';\x22></i>\x20'+_0x5d7634+'<ul></ul></li>');return _0x30b748[_0x1b4dd2(0x149)](_0x1b4dd2(0x158)),_0x30b748[_0x1b4dd2(0xa7)](_0x1b4dd2(0x14c),_0x2ba1b3),_0x30b748['data'](_0x1b4dd2(0x152),_0xb872dc),_0x30b748;},_0x1fad01=()=>{const _0x306efa=_0x416216;$[_0x306efa(0x81)]('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x306efa(0xb3)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x306efa(0x13e)},'nodeClass':_0x306efa(0x15c),'nodeId':_0x306efa(0x94),'displayName':{'text':'Objects'},'typeDefinition':_0x214938}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x25a1b0(this,void 0x0,void 0x0,function*(){const _0x4d0b74=_0x3b97,_0x5a76c3=this,_0x9b6952=typeof _0x5a76c3['options'][_0x4d0b74(0x137)]===_0x4d0b74(0x109)?_0x5a76c3[_0x4d0b74(0x150)][_0x4d0b74(0x137)]():_0x5a76c3[_0x4d0b74(0x150)][_0x4d0b74(0x137)];if(_0x9b6952 instanceof Promise)return yield _0x9b6952;return _0x9b6952;});},'reset'(){const _0x356891=_0x306efa,_0x42b4c2=this;_0x42b4c2['$tree'][_0x356891(0xf7)](),this[_0x356891(0xe2)]()['then'](_0x5b4891=>{const _0x11c58a=_0x356891,_0x41cde6=_0x335834(_0x5b4891);_0x42b4c2['$tree'][_0x11c58a(0x8e)](_0x41cde6),_0x42b4c2['currentParent']=_0x5b4891;});},'verify'(){const _0x4c0079=_0x306efa,_0x53b593=this,_0x4c4d72={'baseUrl':_0x53b593['options'][_0x4c0079(0x8d)],'endpointNode':typeof _0x53b593[_0x4c0079(0x150)][_0x4c0079(0xc3)]===_0x4c0079(0x109)?_0x53b593[_0x4c0079(0x150)][_0x4c0079(0xc3)]():_0x53b593[_0x4c0079(0x150)][_0x4c0079(0xc3)],'endpoint':typeof _0x53b593[_0x4c0079(0x150)][_0x4c0079(0xd1)]==='function'?_0x53b593['options'][_0x4c0079(0xd1)]():_0x53b593[_0x4c0079(0x150)][_0x4c0079(0xd1)]};_0x4d27a8(_0x4c4d72,_0x53b593[_0x4c0079(0xd7)],_0x53b593['$info']);},'_create'(){const _0x23adef=_0x306efa,_0x23e5c4=this;function _0x21d7da(_0x50e061,_0x3e25ee,_0x2d996a){return _0x25a1b0(this,void 0x0,void 0x0,function*(){const _0x5b4072=_0x3b97;if(_0x50e061[_0x5b4072(0x7c)](_0x5b4072(0xbf))){console['log'](_0x5b4072(0xa6));return;}if(_0x50e061['hasClass'](_0x5b4072(0x13a))){console[_0x5b4072(0x92)](_0x5b4072(0xc9));return;}_0x50e061[_0x5b4072(0x149)](_0x5b4072(0x13a)),_0x50e061[_0x5b4072(0x8e)](_0x5b4072(0xb2));try{_0x50e061[_0x5b4072(0xad)]('ul')['empty']();const {references:_0x33d36f}=yield _0x3e25ee(_0x50e061,_0x2d996a);for(const _0x1db52c of _0x33d36f){if(_0x23e5c4[_0x5b4072(0x150)][_0x5b4072(0xc5)]&&!_0x23e5c4[_0x5b4072(0x150)][_0x5b4072(0xc5)](_0x1db52c))continue;const _0x3b476a=_0x335834(_0x1db52c);_0x50e061[_0x5b4072(0xad)]('ul')[_0x5b4072(0x8e)](_0x3b476a);}_0x50e061[_0x5b4072(0x149)](_0x5b4072(0xbf));}catch(_0x1b687f){_0x50e061['children']('ul')[_0x5b4072(0x8e)](_0x5b4072(0x151)+_0x1b687f[_0x5b4072(0x8b)]+'</li>'),console[_0x5b4072(0x92)](_0x5b4072(0x82),_0x1b687f);}_0x50e061[_0x5b4072(0xd3)]('.spinner')[_0x5b4072(0xe5)](),_0x50e061[_0x5b4072(0xdc)](_0x5b4072(0x13a));});}_0x23e5c4[_0x23adef(0xd7)]=this[_0x23adef(0x138)],_0x23e5c4[_0x23adef(0x156)]=$(_0x23adef(0x8c)),_0x23e5c4[_0x23adef(0x156)]['addClass'](_0x23adef(0x95)),this['element'][_0x23adef(0x130)](_0x23e5c4[_0x23adef(0x156)]),_0x23e5c4[_0x23adef(0xf9)]=$(_0x23adef(0x8c))[_0x23adef(0x149)]('input-group'),_0x23e5c4[_0x23adef(0x156)][_0x23adef(0x8e)](_0x23e5c4['$inputGroup']),_0x23e5c4['$inputGroup'][_0x23adef(0x8e)](_0x23e5c4[_0x23adef(0xd7)]),_0x23e5c4[_0x23adef(0x134)]=$(_0x23adef(0xb5)),_0x23e5c4['$inputGroup'][_0x23adef(0x8e)](_0x23e5c4[_0x23adef(0x134)]),_0x23e5c4[_0x23adef(0x134)]['on']('click',function(){const _0x519165=_0x23adef;!_0x23e5c4[_0x519165(0xd9)]['is'](_0x519165(0xec))&&(_0x23e5c4[_0x519165(0xe2)]()[_0x519165(0xfe)](_0x1eeb2a=>{const _0x26e553=_0x519165;var _0x30b96e;(_0x1eeb2a!==_0x23e5c4[_0x26e553(0x135)]||((_0x30b96e=_0x23e5c4[_0x26e553(0x135)])===null||_0x30b96e===void 0x0?void 0x0:_0x30b96e['nodeId'])!==_0x1eeb2a[_0x26e553(0x125)])&&_0x23e5c4[_0x26e553(0x10f)]();}),_0x23e5c4[_0x519165(0x148)][_0x519165(0xa4)]()),_0x23e5c4[_0x519165(0xd9)]['toggle']();}),_0x23e5c4['$verifyBtn']=$(_0x23adef(0x163)),_0x23e5c4[_0x23adef(0xf9)][_0x23adef(0x8e)](_0x23e5c4[_0x23adef(0xee)]),_0x23e5c4[_0x23adef(0xee)]['on'](_0x23adef(0x116),()=>{const _0x5bf58f=_0x23adef;this[_0x5bf58f(0x142)]();}),!_0x23e5c4[_0x23adef(0xd7)][_0x23adef(0x147)](_0x23adef(0xbd))&&_0x23e5c4[_0x23adef(0xd7)][_0x23adef(0x147)](_0x23adef(0xbd),_0x23adef(0xc1)),_0x23e5c4[_0x23adef(0x148)]=$('<div\x20class=\x22info-text\x22></div>'),_0x23e5c4[_0x23adef(0x148)][_0x23adef(0xa4)](),{'baseUrl':_0x23e5c4['options']['baseUrl'],'endpointNode':typeof _0x23e5c4['options'][_0x23adef(0xc3)]===_0x23adef(0x109)?_0x23e5c4[_0x23adef(0x150)][_0x23adef(0xc3)]():_0x23e5c4[_0x23adef(0x150)][_0x23adef(0xc3)],'endpoint':typeof _0x23e5c4[_0x23adef(0x150)][_0x23adef(0xd1)]==='function'?_0x23e5c4[_0x23adef(0x150)][_0x23adef(0xd1)]():_0x23e5c4[_0x23adef(0x150)][_0x23adef(0xd1)]},_0x23e5c4['$dropdown']=$(_0x23adef(0x8c))[_0x23adef(0x149)](_0x23adef(0xda))[_0x23adef(0xa4)](),_0x23e5c4[_0x23adef(0x156)][_0x23adef(0x8e)](_0x23e5c4[_0x23adef(0x148)]),_0x23e5c4[_0x23adef(0x156)][_0x23adef(0x8e)](_0x23e5c4['$dropdown']),_0x23e5c4['$tree']=$(_0x23adef(0x14b))['appendTo'](_0x23e5c4[_0x23adef(0xd9)]),this[_0x23adef(0x10f)](),_0x23e5c4[_0x23adef(0x164)]['on'](_0x23adef(0x116),'li',function(_0xfe0b68){const _0x1fc46a=_0x23adef;var _0x5bfc7e,_0x26fc8e;_0xfe0b68[_0x1fc46a(0x160)]();let _0x316b77=$(this);const _0x406a9d=0x14,_0x477f1b=0x14,_0x136360=$(this)[_0x1fc46a(0xb9)](),_0xd7c2e4=_0xfe0b68;if(_0xd7c2e4[_0x1fc46a(0x136)]>=_0x136360[_0x1fc46a(0xe6)]&&_0xd7c2e4['pageX']<=_0x136360[_0x1fc46a(0xe6)]+_0x406a9d&&_0xd7c2e4[_0x1fc46a(0xa1)]>=_0x136360[_0x1fc46a(0x88)]&&_0xd7c2e4[_0x1fc46a(0xa1)]<=_0x136360[_0x1fc46a(0x88)]+_0x477f1b){if(_0x316b77[_0x1fc46a(0x7c)](_0x1fc46a(0x158))){if(_0x316b77[_0x1fc46a(0x7c)](_0x1fc46a(0xbf))){_0x316b77[_0x1fc46a(0xdc)](_0x1fc46a(0x158))[_0x1fc46a(0x149)](_0x1fc46a(0x11a)),_0x316b77[_0x1fc46a(0xad)]('ul')[_0x1fc46a(0x12f)]();return;}const _0x2702d0={'baseUrl':_0x23e5c4[_0x1fc46a(0x150)][_0x1fc46a(0x8d)],'endpointNode':typeof _0x23e5c4[_0x1fc46a(0x150)][_0x1fc46a(0xc3)]==='function'?_0x23e5c4['options']['endpointNode']():_0x23e5c4[_0x1fc46a(0x150)][_0x1fc46a(0xc3)],'endpoint':typeof _0x23e5c4[_0x1fc46a(0x150)]['endpoint']==='function'?_0x23e5c4[_0x1fc46a(0x150)][_0x1fc46a(0xd1)]():_0x23e5c4[_0x1fc46a(0x150)]['endpoint']},_0x165fa5=!_0x23e5c4[_0x1fc46a(0x150)][_0x1fc46a(0xe9)]?_0xccf6ac:_0x1050de;_0x21d7da(_0x316b77,_0x165fa5,_0x2702d0)[_0x1fc46a(0xfe)](()=>{const _0x1a14b7=_0x1fc46a;console[_0x1a14b7(0x92)](_0x1a14b7(0x13b)),console['log'](_0x1a14b7(0xbf)),_0x316b77[_0x1a14b7(0xdc)](_0x1a14b7(0x158))[_0x1a14b7(0x149)](_0x1a14b7(0x11a));})[_0x1fc46a(0xca)](_0x384662=>{const _0x53cc45=_0x1fc46a;_0x316b77['removeClass']('expandable')['addClass'](_0x53cc45(0x11a)),console['log'](_0x53cc45(0x87),_0x384662);});}else{if(_0x316b77['hasClass']('expanded'))_0x316b77[_0x1fc46a(0xad)]('ul')[_0x1fc46a(0x12f)](),_0x316b77[_0x1fc46a(0x117)]('expandable\x20expanded');else{if(_0x316b77[_0x1fc46a(0xad)]('ul')['children']()[_0x1fc46a(0xef)]>0x0)_0x316b77['children']('ul')['toggle'](),_0x316b77[_0x1fc46a(0x117)](_0x1fc46a(0x14e));else;}}}else{const _0x4d6b6e=_0x316b77[_0x1fc46a(0xa7)](_0x1fc46a(0x14c)),_0x5aa02f=_0x316b77[_0x1fc46a(0xa7)]('reference');if(_0x23e5c4[_0x1fc46a(0x150)][_0x1fc46a(0x114)]&&!_0x23e5c4['options'][_0x1fc46a(0x114)](_0x5aa02f))return;_0x23e5c4[_0x1fc46a(0xd7)][_0x1fc46a(0xa7)](_0x1fc46a(0x152),_0x5aa02f);const _0x562f2d=((_0x5bfc7e=_0x5aa02f['displayName'])===null||_0x5bfc7e===void 0x0?void 0x0:_0x5bfc7e[_0x1fc46a(0x13d)])||((_0x26fc8e=_0x5aa02f[_0x1fc46a(0x83)])===null||_0x26fc8e===void 0x0?void 0x0:_0x26fc8e[_0x1fc46a(0x113)])||_0x5aa02f['nodeId']['toString'](),_0xa28d64='['+_0x562f2d+']('+_0x4d6b6e+')';_0x23e5c4[_0x1fc46a(0xd7)][_0x1fc46a(0xdb)](_0xa28d64),_0x23e5c4[_0x1fc46a(0xd7)][_0x1fc46a(0xd8)](_0x1fc46a(0xfd)),_0x23e5c4[_0x1fc46a(0xd9)][_0x1fc46a(0xa4)]();}}),$(document)['on'](_0x23adef(0x116),function(_0x2519ee){const _0x2ffae3=_0x23adef;!$(_0x2519ee[_0x2ffae3(0xc7)])[_0x2ffae3(0xa3)](_0x23e5c4['$combo'])[_0x2ffae3(0xef)]&&_0x23e5c4['$dropdown'][_0x2ffae3(0xa4)]();});}});},_0x554085=_0x2fbd8e=>{const _0x2c20dc=_0x416216;var _0x335d95,_0x582b45,_0x5c9015;if(!_0x2fbd8e){const _0x2fed08=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x2fed08;}const _0xda4e5e=_0x2fbd8e['nodeId'][_0x2c20dc(0x159)]();let _0x2013b3=((_0x335d95=_0x2fbd8e[_0x2c20dc(0x11b)])===null||_0x335d95===void 0x0?void 0x0:_0x335d95[_0x2c20dc(0x13d)])||((_0x582b45=_0x2fbd8e[_0x2c20dc(0x83)])===null||_0x582b45===void 0x0?void 0x0:_0x582b45[_0x2c20dc(0x113)])||_0x2fbd8e[_0x2c20dc(0x125)][_0x2c20dc(0x159)](),_0x175c26=(_0x5c9015=_0x2fbd8e[_0x2c20dc(0x83)])===null||_0x5c9015===void 0x0?void 0x0:_0x5c9015[_0x2c20dc(0xf1)];_0x2013b3+=_0x175c26!==undefined&&_0x2fbd8e[_0x2c20dc(0x12e)]['match'](/Type/)?_0x2c20dc(0x110)+_0x175c26+')':'';const {icon:_0x1e52db,color:_0xfe5c22}=_0x47f830(_0x2fbd8e),_0x12dc2c=$('<li>');if(_0x2fbd8e['nodeClass']===_0x2c20dc(0x10d)){const _0x321e9f=$(_0x2c20dc(0x155));_0x12dc2c['append'](_0x321e9f),_0x321e9f['on'](_0x2c20dc(0x116),function(){const _0x2e6607=_0x2c20dc;_0x321e9f['hasClass'](_0x2e6607(0xfb))?_0x321e9f['removeClass']('unchecked')[_0x2e6607(0x149)](_0x2e6607(0xd5)):_0x321e9f['removeClass'](_0x2e6607(0xd5))[_0x2e6607(0x149)]('unchecked');});}return _0x12dc2c[_0x2c20dc(0x8e)]($(_0x2c20dc(0x141)+_0x1e52db+_0x2c20dc(0xbe)+_0xfe5c22+_0x2c20dc(0x7d)+_0x2013b3+_0x2c20dc(0xdd))),_0x12dc2c[_0x2c20dc(0x149)](_0x2c20dc(0x158)),_0x12dc2c[_0x2c20dc(0xa7)](_0x2c20dc(0x14c),_0xda4e5e),_0x12dc2c[_0x2c20dc(0xa7)](_0x2c20dc(0x152),_0x2fbd8e),_0x12dc2c;},_0x45447b=()=>{const _0x2230ff=_0x416216;$[_0x2230ff(0x81)](_0x2230ff(0x9e),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0xb94944;return _0x25a1b0(this,void 0x0,void 0x0,function*(){const _0x396b0a=_0x3b97,_0x118560=this,_0xfd594e=new Set((_0xb94944=_0x118560[_0x396b0a(0xd7)][_0x396b0a(0xdb)]())===null||_0xb94944===void 0x0?void 0x0:_0xb94944[_0x396b0a(0x159)]()[_0x396b0a(0xb8)](';')),_0x5ba3be={'baseUrl':_0x118560[_0x396b0a(0x150)][_0x396b0a(0x8d)],'endpointNode':typeof _0x118560['options'][_0x396b0a(0xc3)]===_0x396b0a(0x109)?_0x118560['options'][_0x396b0a(0xc3)]():_0x118560[_0x396b0a(0x150)][_0x396b0a(0xc3)],'endpoint':typeof _0x118560[_0x396b0a(0x150)][_0x396b0a(0xd1)]===_0x396b0a(0x109)?_0x118560[_0x396b0a(0x150)]['endpoint']():_0x118560[_0x396b0a(0x150)][_0x396b0a(0xd1)]},_0x5110c4=yield _0x3ea29f(_0x5ba3be);this[_0x396b0a(0xcb)](_0x5110c4,_0xfd594e);});},'_installTree'(_0x48e46c,_0x5ad631){const _0x252896=_0x2230ff,_0x150629=this;_0x150629['$tree']['empty']();if(!_0x48e46c[_0x252896(0x15f)])return;const _0x203926=_0x48e46c[_0x252896(0x15f)],_0x500a07=_0x554085(_0x203926);_0x150629['$tree']['append'](_0x500a07);const _0x530b1b='';this[_0x252896(0xba)](_0x500a07[_0x252896(0xad)]('ul'),_0x203926,_0x530b1b,_0x5ad631),_0x500a07[_0x252896(0xdc)](_0x252896(0x158))[_0x252896(0x149)]('expanded'),this['_updateValues'](_0x5ad631);},'_installChildren'(_0xde0049,_0x478ed0,_0x5ec747,_0x2d3d21){const _0x5b32cb=_0x2230ff,_0xcc2542=({name:_0x1e24a8,namespaceIndex:_0x23ec3f})=>{if(_0x23ec3f===0x0)return _0x1e24a8;return _0x23ec3f+':'+_0x1e24a8;},_0x2a412c=_0x478ed0[_0x5b32cb(0xad)]||[],_0x327957=_0x478ed0[_0x5b32cb(0xe3)]||[],_0x671a15=[..._0x2a412c,..._0x327957];for(const _0x4392fd of _0x671a15){const _0x1b232d=_0x554085(_0x4392fd);_0xde0049[_0x5b32cb(0x8e)](_0x1b232d);let _0x1aec32='';_0x4392fd[_0x5b32cb(0x12e)]==='Variable'&&(_0x5ec747?_0x1aec32=_0x5ec747+'.'+_0xcc2542(_0x4392fd[_0x5b32cb(0x83)]):_0x1aec32=_0xcc2542(_0x4392fd[_0x5b32cb(0x83)]),_0x1b232d[_0x5b32cb(0x147)](_0x5b32cb(0x133),_0x1aec32));const _0x2ed3cc=_0x4392fd[_0x5b32cb(0xad)]&&_0x4392fd['children'][_0x5b32cb(0xef)],_0x3e5b16=_0x4392fd[_0x5b32cb(0xe3)]&&_0x4392fd[_0x5b32cb(0xe3)]['length'];!_0x2ed3cc&&!_0x3e5b16?_0x1b232d[_0x5b32cb(0xdc)](_0x5b32cb(0x158))['addClass'](_0x5b32cb(0x100)):(this[_0x5b32cb(0xba)](_0x1b232d[_0x5b32cb(0xad)]('ul'),_0x4392fd,_0x1aec32,_0x2d3d21),_0x1b232d[_0x5b32cb(0xdc)](_0x5b32cb(0x158))['addClass']('expanded'));}},'_updateSelectedFields'(){const _0x1f9f43=_0x2230ff;var _0x346753;const _0x5f57ee=this,_0x2a2b08=new Set((_0x346753=_0x5f57ee['$input'][_0x1f9f43(0xdb)]())===null||_0x346753===void 0x0?void 0x0:_0x346753[_0x1f9f43(0x159)]()[_0x1f9f43(0xb8)](';'));this['_updateValues'](_0x2a2b08);},'_updateValues'(_0xcf5c4b){const _0x312cc9=_0x2230ff;$(_0x312cc9(0x8a))[_0x312cc9(0x7f)](function(){const _0x27d28f=_0x312cc9,_0x95479b=$(this),_0x512671=_0x95479b[_0x27d28f(0x147)](_0x27d28f(0x133));_0x512671&&_0xcf5c4b['has'](_0x512671)&&_0x95479b[_0x27d28f(0xad)](_0x27d28f(0x128))[_0x27d28f(0xdc)](_0x27d28f(0xfb))['addClass'](_0x27d28f(0xd5));});},'_setInputValue'(){const _0xb3e7e=_0x2230ff,_0xd226aa=this,_0x3072d7=[];$('.sterfive-tree\x20li')[_0xb3e7e(0x7f)](function(){const _0x383afd=_0xb3e7e,_0x165ac6=$(this);if(_0x165ac6[_0x383afd(0xad)](_0x383afd(0x10a))['length']>0x0){const _0x2f9ee1=_0x165ac6['attr'](_0x383afd(0x133));if(_0x2f9ee1)_0x3072d7[_0x383afd(0xb7)](_0x2f9ee1);}});const _0x13bf05=[...new Set(_0x3072d7)]['sort']()[_0xb3e7e(0x129)](';');_0xd226aa[_0xb3e7e(0xd7)][_0xb3e7e(0xdb)](_0x13bf05),_0xd226aa[_0xb3e7e(0xd7)][_0xb3e7e(0xd8)](_0xb3e7e(0xfd));},'_create'(){const _0x270399=_0x2230ff,_0x253a97=this;_0x253a97[_0x270399(0xd7)]=this[_0x270399(0x138)],_0x253a97[_0x270399(0x156)]=$(_0x270399(0x8c)),_0x253a97['$combo']['addClass']('sterfive-combo-box'),this[_0x270399(0x138)][0x0][_0x270399(0x12b)][_0x270399(0x102)](_0x253a97[_0x270399(0x156)][0x0],this[_0x270399(0x138)][0x0]),_0x253a97[_0x270399(0xf9)]=$('<div/>')[_0x270399(0x149)](_0x270399(0x11e)),_0x253a97[_0x270399(0x156)][_0x270399(0x8e)](_0x253a97[_0x270399(0xf9)]),_0x253a97['$inputGroup'][_0x270399(0x8e)](_0x253a97['$input']),_0x253a97['$toggleTreeBtn']=$(_0x270399(0xb5)),_0x253a97[_0x270399(0xf9)]['append'](_0x253a97['$toggleTreeBtn']),_0x253a97['$toggleTreeBtn']['on']('click',function(){const _0xcd2fc8=_0x270399;_0x253a97['$dropdown'][_0xcd2fc8(0x12f)](),_0x253a97['$info'][_0xcd2fc8(0x12f)]();if(_0x253a97[_0xcd2fc8(0xd9)]['is'](_0xcd2fc8(0xec))){_0x37fd5e[_0xcd2fc8(0xd0)]();const _0x4cbf35=_0x253a97['$dropdown']['offset']();_0x37fd5e[_0xcd2fc8(0xcd)]({'top':_0x4cbf35[_0xcd2fc8(0x88)]+'px','right':_0xcd2fc8(0x99)+(_0x4cbf35['left']+_0x253a97['$dropdown']['width']())+'px)'}),_0x253a97[_0xcd2fc8(0xac)](),_0x253a97[_0xcd2fc8(0x11c)]();}else _0x37fd5e[_0xcd2fc8(0xa4)]();});!_0x253a97[_0x270399(0xd7)][_0x270399(0x147)](_0x270399(0xbd))&&_0x253a97[_0x270399(0xd7)][_0x270399(0x147)](_0x270399(0xbd),_0x270399(0xc1));_0x253a97['$info']=$(_0x270399(0x8f)),_0x253a97[_0x270399(0x148)][_0x270399(0xa4)](),_0x253a97[_0x270399(0xd9)]=$(_0x270399(0x8c))[_0x270399(0x149)](_0x270399(0xda))[_0x270399(0xa4)]();const _0x236666=$('<span\x20class=\x22validate-button\x22>✔</span>'),_0x16789b=$(_0x270399(0xe8)),_0x37fd5e=$(_0x270399(0x108))[_0x270399(0x8e)](_0x236666,_0x16789b);_0x37fd5e['hide'](),_0x236666['on']('click',()=>{const _0x3e52ac=_0x270399;_0x253a97[_0x3e52ac(0x140)](),_0x253a97[_0x3e52ac(0xd9)][_0x3e52ac(0xa4)]();}),_0x16789b['on'](_0x270399(0x116),()=>{const _0x3a6117=_0x270399;_0x253a97[_0x3a6117(0xd9)][_0x3a6117(0xa4)]();}),_0x253a97[_0x270399(0x156)][_0x270399(0x8e)](_0x253a97['$info']),_0x253a97['$combo'][_0x270399(0x8e)](_0x253a97[_0x270399(0xd9)]),_0x253a97['$tree']=$('<ul\x20class=\x22sterfive-tree\x22></ul>'),_0x253a97[_0x270399(0xd9)][_0x270399(0xf7)]()[_0x270399(0x8e)](_0x253a97['$tree'],_0x37fd5e),_0x253a97[_0x270399(0x164)]['on'](_0x270399(0x116),'li',function(_0x5c189f){const _0x797c4d=_0x270399;_0x5c189f[_0x797c4d(0x160)]();let _0x1553eb=$(this);const _0x878d2e=0x14,_0x230edf=0x14,_0x284d9e=$(this)[_0x797c4d(0xb9)](),_0x2f7be9=_0x5c189f;if(_0x2f7be9[_0x797c4d(0x136)]>=_0x284d9e[_0x797c4d(0xe6)]&&_0x2f7be9[_0x797c4d(0x136)]<=_0x284d9e[_0x797c4d(0xe6)]+_0x878d2e&&_0x2f7be9[_0x797c4d(0xa1)]>=_0x284d9e[_0x797c4d(0x88)]&&_0x2f7be9['pageY']<=_0x284d9e[_0x797c4d(0x88)]+_0x230edf){console[_0x797c4d(0x92)](_0x797c4d(0x15b)),console[_0x797c4d(0x92)](_0x797c4d(0x10b),_0x1553eb[_0x797c4d(0xa7)](_0x797c4d(0x14c)),_0x1553eb[_0x797c4d(0x147)](_0x797c4d(0x118)));if(_0x1553eb[_0x797c4d(0x7c)](_0x797c4d(0x158)))_0x1553eb[_0x797c4d(0xdc)](_0x797c4d(0x158))[_0x797c4d(0x149)](_0x797c4d(0x11a)),_0x1553eb['children']('ul')['toggle']();else{if(_0x1553eb[_0x797c4d(0x7c)]('expanded'))_0x1553eb[_0x797c4d(0xad)]('ul')[_0x797c4d(0x12f)](),_0x1553eb['toggleClass'](_0x797c4d(0x14e));else{if(_0x1553eb[_0x797c4d(0xad)]('ul')[_0x797c4d(0xad)]()[_0x797c4d(0xef)]>0x0)_0x1553eb[_0x797c4d(0xad)]('ul')['toggle'](),_0x1553eb[_0x797c4d(0x117)](_0x797c4d(0x14e));else;}}}}),$(document)['on']('click',function(_0x1a79d5){const _0x2cdc73=_0x270399;!$(_0x1a79d5[_0x2cdc73(0xc7)])[_0x2cdc73(0xa3)](_0x253a97[_0x2cdc73(0x156)])[_0x2cdc73(0xef)]&&_0x253a97[_0x2cdc73(0xd9)][_0x2cdc73(0xa4)]();}),this[_0x270399(0xac)]();}});},_0x3ea29f=({endpointNode:_0xaf41ae,endpoint:_0x8c5af2,baseUrl:_0x3a4bd0})=>_0x25a1b0(void 0x0,void 0x0,void 0x0,function*(){const _0xc502f5=_0x416216,_0x29ade7=_0x3a4bd0+_0xc502f5(0x9b),_0x385cab=_0x29ade7+_0xc502f5(0x115),_0x3b8dd5=yield fetch(_0x385cab,{'method':_0xc502f5(0x112),'body':JSON[_0xc502f5(0x98)]({'endpointNode':_0xaf41ae,'endpoint':_0x8c5af2}),'headers':{'Content-Type':'application/json'}});if(_0x3b8dd5['status']!==0xc8)return console[_0xc502f5(0x92)](_0xc502f5(0x104),_0x3b8dd5[_0xc502f5(0x11d)],_0x3b8dd5[_0xc502f5(0xea)]),{'events':null};console[_0xc502f5(0x92)]('fetched\x20:\x20',_0x3b8dd5['status'],_0x3b8dd5[_0xc502f5(0xea)]);const _0x311437=yield _0x3b8dd5[_0xc502f5(0x122)](),_0xa223df=_0x311437[_0xc502f5(0x15f)];return{'events':_0xa223df};}),_0x1c5e4b=()=>{const _0x261db4=_0x416216,_0x264814=$(_0x261db4(0xe7)),_0x29d9a2=_0x264814[_0x261db4(0xdb)](),_0x394bd2=RED['nodes']['node'](_0x29d9a2);if(!_0x394bd2)return undefined;const {endpoint:_0x4aea77,securityMode:_0x690bf9,securityPolicy:_0x4ca99e,userIdentityType:_0x233bda,userName:_0x29b6ff,password:_0x256b91,userCertificate:_0xf1d02f,userPrivatekey:_0x549e62}=_0x394bd2;return{'endpoint':_0x4aea77,'securityMode':_0x690bf9,'securityPolicy':_0x4ca99e,'userIdentityType':_0x233bda,'userName':_0x29b6ff,'password':_0x256b91,'userCertificate':_0xf1d02f,'userPrivatekey':_0x549e62};},_0x3a54c5=()=>{return{'endpointNode':_0x426992};},_0x426992=()=>{const _0x35c13d=_0x416216,_0x31118b=$(_0x35c13d(0xe7)),_0x24df75=_0x31118b['val'](),_0x4822c0=_0x1c5e4b();if(!_0x4822c0)return undefined;return{'id':_0x24df75,'endpoint':_0x4822c0[_0x35c13d(0xd1)],'securityMode':_0x4822c0[_0x35c13d(0xd4)],'securityPolicy':_0x4822c0['securityPolicy'],'userIdentityType':_0x4822c0[_0x35c13d(0x161)],'userName':_0x4822c0[_0x35c13d(0x161)]===_0x35c13d(0xf5)?_0x4822c0[_0x35c13d(0xf2)]:undefined,'password':_0x4822c0[_0x35c13d(0x161)]===_0x35c13d(0xf5)?_0x4822c0['password']:undefined,'userCertificate':_0x4822c0[_0x35c13d(0xa2)],'userPrivatekey':_0x4822c0['userPrivatekey']};};RED[_0x416216(0x15a)][_0x416216(0xce)](_0x416216(0xb4),{'category':_0x416216(0xbb),'color':_0x416216(0xe0),'align':_0x416216(0x106),'icon':_0x416216(0x89),'paletteLabel':_0x416216(0x15e),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'subscription':{'value':'','required':!![],'validate':_0x2a0747=>{if(_0x2a0747==='')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 _0x1137f1=_0x416216;return this[_0x1137f1(0x113)]||_0x1137f1(0x127);},'labelStyle'(){const _0x3e821f=_0x416216;return this[_0x3e821f(0x113)]?'node_label_italic':'';},'oneditprepare'(){const _0x2f434d=_0x416216;_0x1fad01(),_0x45447b(),_0x2b90dc(RED,this),$(_0x2f434d(0x131))['on'](_0x2f434d(0xfd),()=>{const _0x323459=_0x2f434d,_0x4f7739=$('#node-input-startImmediately')[_0x323459(0xde)](_0x323459(0xd5));_0x4f7739?$(_0x323459(0x85))[_0x323459(0xdb)](0x0):$(_0x323459(0x85))[_0x323459(0xdb)](0x1);});const _0x404706=$(_0x2f434d(0x14a));_0x404706[_0x2f434d(0x13f)](Object[_0x2f434d(0x162)](Object[_0x2f434d(0x162)]({},_0x3a54c5()),{'filter'(_0x30586f){const _0x21ecb5=_0x2f434d;return _0x30586f[_0x21ecb5(0x12e)]===_0x21ecb5(0x15c);},'isSelectable'(_0x315a43){const _0x42bbd0=_0x2f434d;return _0x315a43[_0x42bbd0(0x12e)]===_0x42bbd0(0x15c);}})),$(_0x2f434d(0x139));const _0x4b7955=$(_0x2f434d(0x13c));_0x4b7955[_0x2f434d(0xf8)](Object[_0x2f434d(0x162)]({},_0x3a54c5()));},'oneditsave'(){const _0x3f37f2=_0x416216,_0x52443e=$('#node-input-startImmediately')['prop'](_0x3f37f2(0xd5));_0x52443e?($('#node-input-startImmediately')[_0x3f37f2(0xdb)](_0x52443e?0x0:0x1),this['inputs']=_0x52443e?0x0:0x1):($(_0x3f37f2(0x84))[_0x3f37f2(0xdb)](0x1),this[_0x3f37f2(0x105)]=0x1);}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyYjkwZGMiLCJfMHg0MDBiN2IiLCJfMHg0MGM2NmYiLCJfMHgxYTAxZDQiLCIkIiwiXzB4MzFlM2Q0IiwiXzB4OGQyZTY0IiwiXzB4NTI0ZmQ1IiwiXzB4NWNlOTRmIiwiXzB4NDQ1NzQ2IiwiXzB4MjVhMWIwIiwiXzB4M2QyZDI5IiwiXzB4NGM4NjczIiwiXzB4NTZhN2E3IiwiXzB4NWNjZDAwIiwiXzB4NDYzYzM1IiwiXzB4MTBlMmViIiwiXzB4NDQ0NWYyIiwiUHJvbWlzZSIsIl8weDExOTBhMCIsIl8weDUxMjY3NiIsIl8weDM3Mzg1ZiIsIl8weDUyMGZmZSIsIl8weDVkNDY0MSIsIl8weDJjYjk4ZSIsIl8weDMwODNkYSIsIl8weDUzYTljNSIsIl8weDlmNTAxZCIsIl8weDQwMmRiMCIsIlN1cHByZXNzZWRFcnJvciIsIl8weDFkOWEzYyIsIl8weDQ5ZDdjMyIsIl8weDQ0NDRhMiIsIl8weDM4ODU4NCIsIkVycm9yIiwiXzB4Mzk4ZjFiIiwiXzB4MjE0OTM4IiwiXzB4Mjk5YmY2IiwiXzB4NjlkZjk5IiwiXzB4Mjc0NjI2IiwiXzB4NTFmMjE4IiwiXzB4ZTA2ZjEzIiwiXzB4M2UyOTQ4IiwiXzB4MzRhYmI4IiwiXzB4NTA2Y2IyIiwiXzB4NTRkNDdjIiwiXzB4NDFkMzA3IiwiXzB4NGUzNTJjIiwiXzB4M2Y0MDA2IiwiXzB4NDg1NGI4IiwiXzB4MTE2NmM0IiwiXzB4MTk5ZWVhIiwiXzB4NDdmODMwIiwiXzB4MTk3MzY3IiwiXzB4NWQyZWZmIiwiZW5kcG9pbnROb2RlIiwiXzB4NTJmODY0IiwiZW5kcG9pbnQiLCJfMHg2N2I3MWEiLCJiYXNlVXJsIiwiXzB4NDZhOTYzIiwiXzB4M2RjNTMzIiwiXzB4MWNkNjc3IiwiXzB4MTQwYzNjIiwiXzB4MmVjMmRiIiwiXzB4NTBkYjE0IiwiT2JqZWN0IiwiXzB4NDgyN2M1IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDE3OGVjMyIsIl8weDRkYWNlNCIsIl8weDJlYmVhOCIsIl8weDVlMzk1YSIsIl8weDRkMjdhOCIsIl8weDM3OWQ5MSIsIl8weGU0MTM1MiIsIl8weGQyZGFjZiIsIl8weDE4ZmE2MCIsIl8weDZkMTNhMiIsIl8weDQxZjVmZiIsIl8weDMwNTkzMyIsIl8weGRkOTI2NSIsIl8weDU5ZTc2YiIsIl8weDU4NmQyYiIsIl8weDJlODNjMyIsInNldFRpbWVvdXQiLCJfMHgxY2QyYzciLCJfMHhjY2Y2YWMiLCJfMHhkYTE0YmEiLCJfMHgxMjQ0YmEiLCJfMHgxOWE4ZWQiLCJfMHhiZWRjYjIiLCJfMHgxYTQxNDIiLCJfMHg1NTIxOTMiLCJfMHgxMDUwZGUiLCJfMHgzMDE5YjciLCJfMHgyNTVjZTMiLCJfMHgxMmNjM2YiLCJfMHgzNTQ5N2MiLCJfMHgzMzU4MzQiLCJfMHhiODcyZGMiLCJfMHgyOWQwYjMiLCJfMHg1ZTYzY2YiLCJfMHhiYjVhMTQiLCJfMHgyYmExYjMiLCJfMHg1ZDc2MzQiLCJpY29uIiwiXzB4MTM5NGU4IiwiY29sb3IiLCJfMHgyNmFlMzUiLCJfMHgzMGI3NDgiLCJfMHgxZmFkMDEiLCJ1bmRlZmluZWQiLCJfMHg1YTc2YzMiLCJfMHg5YjY5NTIiLCJfMHg0MmI0YzIiLCJfMHg1YjQ4OTEiLCJfMHg0MWNkZTYiLCJfMHg1M2I1OTMiLCJfMHg0YzRkNzIiLCJfMHgyM2U1YzQiLCJfMHgyMWQ3ZGEiLCJfMHg1MGUwNjEiLCJfMHgzZTI1ZWUiLCJfMHgyZDk5NmEiLCJyZWZlcmVuY2VzIiwiXzB4MzNkMzZmIiwiXzB4MWRiNTJjIiwiXzB4M2I0NzZhIiwiXzB4MWI2ODdmIiwiXzB4MWVlYjJhIiwiXzB4MzBiOTZlIiwiXzB4ZmUwYjY4IiwiXzB4NWJmYzdlIiwiXzB4MjZmYzhlIiwiXzB4MzE2Yjc3IiwiXzB4NDA2YTlkIiwiXzB4NDc3ZjFiIiwiXzB4MTM2MzYwIiwiXzB4ZDdjMmU0IiwiXzB4MjcwMmQwIiwiXzB4MTY1ZmE1IiwiXzB4Mzg0NjYyIiwiXzB4NGQ2YjZlIiwiXzB4NWFhMDJmIiwiXzB4NTYyZjJkIiwiXzB4YTI4ZDY0IiwiZG9jdW1lbnQiLCJfMHgyNTE5ZWUiLCJfMHg1NTQwODUiLCJfMHgyZmJkOGUiLCJfMHgzMzVkOTUiLCJfMHg1ODJiNDUiLCJfMHg1YzkwMTUiLCJfMHgyZmVkMDgiLCJfMHhkYTRlNWUiLCJfMHgyMDEzYjMiLCJfMHgxNzVjMjYiLCJfMHgxZTUyZGIiLCJfMHhmZTVjMjIiLCJfMHgxMmRjMmMiLCJfMHgzMjFlOWYiLCJfMHg0NTQ0N2IiLCJfMHhiOTQ5NDQiLCJfMHgxMTg1NjAiLCJfMHhmZDU5NGUiLCJTZXQiLCJfMHg1YmEzYmUiLCJfMHg1MTEwYzQiLCJfMHgzZWEyOWYiLCJfMHg0OGU0NmMiLCJfMHg1YWQ2MzEiLCJfMHgxNTA2MjkiLCJfMHgyMDM5MjYiLCJfMHg1MDBhMDciLCJfMHg1MzBiMWIiLCJfMHhkZTAwNDkiLCJfMHg0NzhlZDAiLCJfMHg1ZWM3NDciLCJfMHgyZDNkMjEiLCJfMHhjYzI1NDIiLCJuYW1lIiwiXzB4MWUyNGE4IiwibmFtZXNwYWNlSW5kZXgiLCJfMHgyM2VjM2YiLCJfMHgyYTQxMmMiLCJfMHgzMjc5NTciLCJfMHg2NzFhMTUiLCJfMHg0MzkyZmQiLCJfMHgxYjIzMmQiLCJfMHgxYWVjMzIiLCJfMHgyZWQzY2MiLCJfMHgzZTViMTYiLCJfMHgzNDY3NTMiLCJfMHg1ZjU3ZWUiLCJfMHgyYTJiMDgiLCJfMHhjZjVjNGIiLCJfMHg5NTQ3OWIiLCJfMHg1MTI2NzEiLCJfMHhkMjI2YWEiLCJfMHgzMDcyZDciLCJfMHgxNjVhYzYiLCJfMHgyZjllZTEiLCJfMHgxM2JmMDUiLCJfMHgyNTNhOTciLCJfMHgzN2ZkNWUiLCJfMHg0Y2JmMzUiLCJfMHgyMzY2NjYiLCJfMHgxNjc4OWIiLCJfMHg1YzE4OWYiLCJfMHgxNTUzZWIiLCJfMHg4NzhkMmUiLCJfMHgyMzBlZGYiLCJfMHgyODRkOWUiLCJfMHgyZjdiZTkiLCJfMHgxYTc5ZDUiLCJfMHhhZjQxYWUiLCJfMHg4YzVhZjIiLCJfMHgzYTRiZDAiLCJfMHgyOWFkZTciLCJfMHgzODVjYWIiLCJfMHgzYjhkZDUiLCJfMHgzMTE0MzciLCJfMHhhMjIzZGYiLCJfMHgxYzVlNGIiLCJfMHgyNjQ4MTQiLCJfMHgyOWQ5YTIiLCJfMHgzOTRiZDIiLCJSRUQiLCJfMHg0YWVhNzciLCJzZWN1cml0eU1vZGUiLCJfMHg2OTBiZjkiLCJzZWN1cml0eVBvbGljeSIsIl8weDRjYTk5ZSIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgyMzNiZGEiLCJ1c2VyTmFtZSIsIl8weDI5YjZmZiIsInBhc3N3b3JkIiwiXzB4MjU2YjkxIiwidXNlckNlcnRpZmljYXRlIiwiXzB4ZjFkMDJmIiwidXNlclByaXZhdGVrZXkiLCJfMHg1NDllNjIiLCJfMHgzYTU0YzUiLCJfMHg0MjY5OTIiLCJfMHgzMTExOGIiLCJfMHgyNGRmNzUiLCJfMHg0ODIyYzAiLCJfMHgyYTA3NDciLCJfMHg0Zjc3MzkiLCJfMHg0MDQ3MDYiLCJfMHgzMDU4NmYiLCJfMHgzMTVhNDMiLCJfMHg0Yjc5NTUiLCJfMHg1MjQ0M2UiXSwibWFwcGluZ3MiOiJpNElBQUEsQ0FBQyxVLENBQ0csYSx3QkFFQSxTQUFTQSxTQUFULENBQXFDQyxTQUFyQyxDQUEwQ0MsU0FBMUMsQyx5QkFDVUMsU0FBQSxDQUFZQyxDQUFBLEMsc0JBQUEsQyxDQUNaQyxTQUFBLENBQWdCRCxDQUFBLEMsZ0JBQUEsQyxDQUNoQkUsU0FBQSxDQUE2QixJLDJCQUN6QkMsU0FBQSxDQUFXTixTQUFBLEMsT0FBQSxFLE1BQUEsRUFBZUUsU0FBQSxDLGVBQUEsR0FBZixDLENBQ2pCRSxTQUFBLEMsZUFBQSxJLEdBQ0ksQ0FBQ0UsU0FBRCxFQUFhLENBQUNBLFNBQUEsQyxlQUFBLEMsQ0FDZCxPLEdBRUFBLFNBQUEsQyxlQUFBLEMsQ0FDQSxVQUFXQyxTQUFYLElBQWdCRCxTQUFBLEMsZUFBQSxDQUFoQixDLENBQ0ksTUFBTUUsU0FBQSxDQUFRRCxTQUFBLEMsZ0JBQUEsR0FBVUEsU0FBQSxDLElBQUEsQ0FBeEIsQ0FDQUosQ0FBQSxDLFdBQUEsQ0FBZSxDLE9BQ1gsQ0FBT0ksU0FBQSxDLElBQUEsQ0FESSxDLE9B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RSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLFdBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLE1BQUEsRSxJQUFWLEUsaUJBVEosQ0FVR0QsU0FBQSxFQUFjLENBQUFBLFNBQUEsQ0FBWSxFQUFaLENBVmpCLEdBV0EsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsVUFBQSxFLEdBQWQsRSxXQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxRQUFBLEUsR0FBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxZQUFBLEUsR0FBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxlQUFBLEUsSUFBZCxFLGlCQVJKLENBU0dELFNBQUEsRUFBa0IsQ0FBQUEsU0FBQSxDQUFnQixFQUFoQixDQVRyQixHQVVBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLFlBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLFdBQUEsRSxHQUFYLEUsZ0JB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RUFDQTdQLENBQUEsQyw4QkFBQSxFLGVBQUEsRUFBc0M2UCxTQUFBLEMsR0FBQSxDLEdBQXRDLEMsQ0FDQSxLLFFBQUEsRUFBY0EsU0FBQSxDLEdBQUEsQyxNQUdkN1AsQ0FBQSxDLGVBQUEsRSxlQUFBLEUsR0FBQSxDLENBQ0EsSyxnQkFBQSxFLE1BOUV5QyxDQUFyRCxDLEVBN3hCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCBub2RlKSB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgJHN1YnNjcmlwdGlvbiA9ICQoXCIjbm9kZS1pbnB1dC1zdWJzY3JpcHRpb25cIik7XG4gICAgICAgIGNvbnN0IGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBSRUQubm9kZXMubm9kZSgkZW5kcG9pbnQudmFsKCkpO1xuICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi5lbXB0eSgpO1xuICAgICAgICAgICAgaWYgKCFlbmRwb2ludCB8fCAhZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBzLm5hbWUgfHwgcy5pZDtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxvcHRpb24vPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzLmlkID09PSBub2RlLnN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KGxhYmVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKCRzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gaGFja1xuICAgICAgICAvLyAkaW5wdXRBY3Rpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAkc3Vic2NyaXB0aW9uLm9uKFwiZm9jdXMgY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudCQxKHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mZXRjaERhdGFGb3JOb2RlKCRsaSwgZiwgZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIiBGZXRjaGluZyBkb25lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IG5zID0gKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lc3BhY2VJbmRleDtcbiAgICAgICAgdCArPSBucyAhPT0gdW5kZWZpbmVkICYmIHJlZmVyZW5jZS5ub2RlQ2xhc3MubWF0Y2goL1R5cGUvKSA/IGAgKG5zPSR7bnN9KWAgOiBcIlwiO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPmApO1xuICAgICAgICBpZiAocmVmZXJlbmNlLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICBjb25zdCBjaGVja0JveCA9ICQoJzxzcGFuIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94IHVuY2hlY2tlZFwiPjwvc3Bhbj4nKTtcbiAgICAgICAgICAgICRlbGVtZW50LmFwcGVuZChjaGVja0JveCk7XG4gICAgICAgICAgICAvLyBUb2dnbGUgY2hlY2tib3ggc3RhdGUgd2hlbiBjbGlja2VkXG4gICAgICAgICAgICBjaGVja0JveC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tCb3guaGFzQ2xhc3MoXCJ1bmNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJjaGVja2VkXCIpLmFkZENsYXNzKFwidW5jaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICRlbGVtZW50LmFwcGVuZCgkKGA8aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4ke3R9PHVsPjwvdWw+YCkpO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmV2ZW50RmllbGRTZWxlY3RvclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9wb3B1bGF0ZSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSBuZXcgU2V0KChfYSA9IHRoYXQuJGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCBleHRyYWN0RXZlbnRGaWVsZEluZm8oZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxUcmVlKHJlc3VsdCwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luc3RhbGxUcmVlKHJlc3VsdCwgc2VsZWN0RmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXZlbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9vdCA9IHJlc3VsdC5ldmVudHM7XG4gICAgICAgICAgICAgICAgY29uc3QgJHJvb3RFbGVtZW50ID0gbWFrZUVsZW1lbnQocm9vdCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJHJvb3RFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVmaXggPSBcIlwiO1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkcm9vdEVsZW1lbnQuY2hpbGRyZW4oXCJ1bFwiKSwgcm9vdCwgcHJlZml4LCBzZWxlY3RGaWVsZCk7XG4gICAgICAgICAgICAgICAgJHJvb3RFbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RGaWVsZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luc3RhbGxDaGlsZHJlbigkcGFyZW50LCBwYXJlbnQsIHByZWZpeCwgc2VsZWN0ZWRGaWVsZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGIgPSAoeyBuYW1lLCBuYW1lc3BhY2VJbmRleCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuYW1lc3BhY2VJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWVzcGFjZUluZGV4fToke25hbWV9YDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YlR5cGVzID0gcGFyZW50LnN1YlR5cGVzIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuQW5kU3ViVHlwZXMgPSBbLi4uY2hpbGRyZW4sIC4uLnN1YlR5cGVzXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuQW5kU3ViVHlwZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICRwYXJlbnQuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZWZpeDIgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgyID0gcHJlZml4ICsgXCIuXCIgKyBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IGIoY2hpbGQuYnJvd3NlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5hdHRyKFwiZGF0YS12YWx1ZVwiLCBwcmVmaXgyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNDaGlsZHJlbiA9IGNoaWxkLmNoaWxkcmVuICYmIGNoaWxkLmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzU3ViVHlwZXMgPSBjaGlsZC5zdWJUeXBlcyAmJiBjaGlsZC5zdWJUeXBlcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFzQ2hpbGRyZW4gJiYgIWhhc1N1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJuby1leHBhbmRhYmxlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbENoaWxkcmVuKCRlbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIGNoaWxkLCBwcmVmaXgyLCBzZWxlY3RlZEZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF91cGRhdGVTZWxlY3RlZEZpZWxkcygpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZHMgPSBuZXcgU2V0KChfYSA9IHRoYXQuJGlucHV0XG4gICAgICAgICAgICAgICAgICAgIC52YWwoKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvU3RyaW5nKCkuc3BsaXQoXCI7XCIgKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVzKHNlbGVjdGVkRmllbGRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlVmFsdWVzKHNlbGVjdGVkRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSAkdGhpcy5hdHRyKFwiZGF0YS12YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgJiYgc2VsZWN0ZWRGaWVsZHMuaGFzKHYpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94XCIpLnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9zZXRJbnB1dFZhbHVlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAvLyBjcmF3bCB0aGUgdHJlZSB0byBmaW5kIHNlbGVjdGVkIGVsZW1lbnRzIGFuZCBjcmVhdGUgYSBsaXN0IG9mIEJyb3dzZVBhdGhcbiAgICAgICAgICAgICAgICAkKFwiLnN0ZXJmaXZlLXRyZWUgbGlcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLmNoaWxkcmVuKFwic3Bhbi5jdXN0b20tY2hlY2tib3guY2hlY2tlZFwiKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2godik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IFsuLi5uZXcgU2V0KGxpc3QpXS5zb3J0KCkuam9pbihcIjtcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoYXQuJGRyb3Bkb3duLm9mZnNldCgpOyAvLyBHZXQgdGhlIHRvcC1sZWZ0IGNvcm5lciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogYCR7b2Zmc2V0LnRvcH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGBjYWxjKDEwMCUgLSAke29mZnNldC5sZWZ0ICsgdGhhdC4kZHJvcGRvd24ud2lkdGgoKX1weClgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9wb3B1bGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgJHNjcm9sbGFibGVDb250ZW50ID0gJCgnPGRpdiBjbGFzcz1cInN0ZXJmaXZlLWRyb3Bkb3duLXNjcm9sbGFibGUtY29udGVudFwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwidmFsaWRhdGUtYnV0dG9uXCI+4pyUPC9zcGFuPicpOyAvLyBVc2UgYW55IGljb24gb3IgdGV4dCBoZXJlXG4gICAgICAgICAgICAgICAgY29uc3QgJGNhbmNlbEJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiPuKcljwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRmbG9hdGluZ0J1dHRvbnMgPSAkKCc8ZGl2IGNsYXNzPVwiZmxvYXRpbmctYnV0dG9uc1wiPjwvZGl2PicpLmFwcGVuZCgkdmFsaWRhdGVCdXR0b24sICRjYW5jZWxCdXR0b24pO1xuICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIERlZmluZSB5b3VyIHZhbGlkYXRpb24gYW5kIGNhbmNlbGxhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgICR2YWxpZGF0ZUJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJGNhbmNlbEJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5lbXB0eSgpLmFwcGVuZCh0aGF0LiR0cmVlLCAkZmxvYXRpbmdCdXR0b25zKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gaWNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2xpY2tlZCBvbiBcIiwgJGxpLmRhdGEoXCJ2YWx1ZVwiKSwgJGxpLmF0dHIoXCJjbGFzc1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgZXh0cmFjdEV2ZW50RmllbGRJbmZvID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCwgfSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9leHRyYWN0RXZlbnRUeXBlc2A7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IGV2ZW50czogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgZXZlbnRzID0gcmVzcG9uc2UuZXZlbnRzO1xuICAgICAgICByZXR1cm4geyBldmVudHMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXR6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IGh0ZSByZWRub2RlIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCB1c2VyTmFtZSwgcGFzc3dvcmQsIHVzZXJDZXJ0aWZpY2F0ZSwgdXNlclByaXZhdGVrZXkgfSA9IHJlZE5vZGU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIHVzZXJOYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLU1vbml0b3JFdmVudFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCJvcGN1YWxvZ29iaWcucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJtb25pdG9yIGV2ZW50c1wiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydEltbWVkaWF0ZWx5OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gd2UgdXNlIGEgZGlmZmVyZW50IHdpZGdldCBmb3IgZWRpdGluZyB0aGUgbm9kZUlkLCBiZWNhdXNlIHRoZSBiZWhhdmlvclxuICAgICAgICAgICAgLy8gaXMgc3BlY2lmaWMgdG8gbW9uaXRvciwgaG93ZXZlciBwcm9wZXJ0eSB3aWxsIGJlIHN0b3JlZCBpbiBub2RlSWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlLCB2YWxpZGF0ZTogKCkgPT4gdHJ1ZSB9LFxuICAgICAgICAgICAgc2FtcGxpbmdJbnRlcnZhbDogeyB2YWx1ZTogMTAwMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGRpc2NhcmRPbGRlc3Q6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBxdWV1ZVNpemU6IHsgdmFsdWU6IDEwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgc2VsZWN0Q2xhdXNlczogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHdoZXJlQ2xhdXNlOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIE1vbml0b3JcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCB0aGlzKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3IgQ29tbW9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gLS0gaW5zdGFsbCBzdWJzY3JpcHRpb24gc2VsZWN0aW9uXG4gICAgICAgICAgICAkKFwibm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3JcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCIgLyogdG8gZG8gfHwgbm9kZURlc2MuZXZlbnROb3RpZmllciA9PT0gMSAqLztcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLSBpbnN0YWxsIGV2ZW50IGZpZWxkIHNlbGVjdG9yXG4gICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtd2hlcmVDbGF1c2VcIik7XG4gICAgICAgICAgICBjb25zdCAkc2VsZWN0Q2xhdXNlcyA9ICQoXCIjbm9kZS1pbnB1dC1zZWxlY3RDbGF1c2VzXCIpO1xuICAgICAgICAgICAgJHNlbGVjdENsYXVzZXMuZXZlbnRGaWVsZFNlbGVjdG9yKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-MonitorEvent">
11
11
  <style>
@@ -50,7 +50,7 @@
50
50
  </div>
51
51
  <!-- Start Immediately selector -->
52
52
  <div class="form-row">
53
- <label class="my-checkbox-label" for="node-input-startImmediately"><i class="fa fa-play"></i>Start Immediatly</label>
53
+ <label class="my-checkbox-label" for="node-input-startImmediately"><i class="fa fa-play"></i>Start Immediately</label>
54
54
  <label>
55
55
  <input type="checkbox" checked class="my-checkbox-input" id="node-input-startImmediately" />
56
56
  <span class="my-checkbox-mark"></span>
@@ -64,14 +64,14 @@
64
64
  <!-- Where Clause -->
65
65
  <div class="form-row">
66
66
  <label for="node-input-whereClause"><i class="fa fa-tag"></i>&nbsp;Where Clause</label>
67
- <input type="text" id="node-input-whereClause" placeholder="OfType(ConditionType) or " />
67
+ <input type="text" id="node-input-whereClause" placeholder="OfType(ConditionType) or Not(Or(OfType(1:A),OfType(2:B)))" />
68
68
  </div>
69
69
  <!-- Select Clause -->
70
70
  <div class="form-row">
71
71
  <label for="node-input-selectClauses"><i class="fa fa-tag"></i>&nbsp;Select Clauses</label>
72
72
  <input type="text" id="node-input-selectClauses" placeholder="comma separated property paths" />
73
73
  </div>
74
- <!-- Quuee Size-->
74
+ <!-- Queue Size-->
75
75
  <div class="form-row">
76
76
  <label for="node-input-queueSize"><i class="fa fa-tag"></i>&nbsp;Queue Size</label>
77
77
  <input type="number" step="1" min="0" max="65535" id="node-input-requestedQueueSize" placeholder="queue size" />
@@ -88,8 +88,12 @@
88
88
  </script>
89
89
 
90
90
  <script type="text/markdown" data-help-name="OpcUa-Client2-MonitorEvent">
91
- ### Monitor operation
91
+ ### Monitor Event operation
92
92
 
93
- <p>Monitor will ask additional parameters like Absolute or Percent and deadband value</p>
93
+ This node is used to monitor a Event or a collection of Event emitted from a OPCUA Object
94
+
95
+ WhereClause
96
+
97
+ SelectClause
94
98
 
95
99
  </script>