@opcua/for-node-red 3.2.0 → 3.3.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.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x26ee(_0x415051,_0x11f53b){const _0x4a88a2=_0x4a88();return _0x26ee=function(_0x26eee3,_0x428281){_0x26eee3=_0x26eee3-0x1d5;let _0x8dbd5a=_0x4a88a2[_0x26eee3];return _0x8dbd5a;},_0x26ee(_0x415051,_0x11f53b);}(function(_0x1b5551,_0x5ef540){const _0xe514c2=_0x26ee,_0x5eedf0=_0x1b5551();while(!![]){try{const _0x5d9f60=-parseInt(_0xe514c2(0x1f6))/0x1+parseInt(_0xe514c2(0x2bd))/0x2+-parseInt(_0xe514c2(0x1e9))/0x3*(parseInt(_0xe514c2(0x21d))/0x4)+parseInt(_0xe514c2(0x23f))/0x5*(-parseInt(_0xe514c2(0x1f7))/0x6)+parseInt(_0xe514c2(0x313))/0x7+parseInt(_0xe514c2(0x244))/0x8+-parseInt(_0xe514c2(0x301))/0x9;if(_0x5d9f60===_0x5ef540)break;else _0x5eedf0['push'](_0x5eedf0['shift']());}catch(_0x40acd0){_0x5eedf0['push'](_0x5eedf0['shift']());}}}(_0x4a88,0x51836),(function(){'use strict';const _0x1d4e22=_0x26ee;function _0x10dc95(_0x5503bc,_0x46f4f8,_0xa5b650,_0x56e489){function _0x367cac(_0x42bc34){return _0x42bc34 instanceof _0xa5b650?_0x42bc34:new _0xa5b650(function(_0xb23ee3){_0xb23ee3(_0x42bc34);});}return new(_0xa5b650||(_0xa5b650=Promise))(function(_0x3c7b7d,_0x4454e2){const _0xe1a14c=_0x26ee;function _0x34621e(_0x157ca9){const _0x5bc14f=_0x26ee;try{_0x2d181e(_0x56e489[_0x5bc14f(0x2e1)](_0x157ca9));}catch(_0x16a40e){_0x4454e2(_0x16a40e);}}function _0x4bad76(_0x106ad7){const _0x2ab120=_0x26ee;try{_0x2d181e(_0x56e489[_0x2ab120(0x261)](_0x106ad7));}catch(_0x2451d4){_0x4454e2(_0x2451d4);}}function _0x2d181e(_0x4eaf85){const _0x160c65=_0x26ee;_0x4eaf85[_0x160c65(0x1ef)]?_0x3c7b7d(_0x4eaf85[_0x160c65(0x2f6)]):_0x367cac(_0x4eaf85['value'])[_0x160c65(0x201)](_0x34621e,_0x4bad76);}_0x2d181e((_0x56e489=_0x56e489[_0xe1a14c(0x314)](_0x5503bc,_0x46f4f8||[]))['next']());});}typeof SuppressedError===_0x1d4e22(0x316)?SuppressedError:function(_0x320ab5,_0x33e100,_0x4eae72){const _0x107f94=_0x1d4e22;var _0xa6f52=new Error(_0x4eae72);return _0xa6f52[_0x107f94(0x212)]=_0x107f94(0x1e0),_0xa6f52[_0x107f94(0x2a7)]=_0x320ab5,_0xa6f52[_0x107f94(0x22b)]=_0x33e100,_0xa6f52;};const _0x255360=_0x1d4e22(0x1da),_0x5dc40f=_0x1d4e22(0x1e1),_0x2f7d25='ns=0;i=47',_0x5dd75b=_0x1d4e22(0x1fc),_0xa52027=_0x1d4e22(0x2f8),_0x57bf17='ns=0;i=45',_0x421c2d=_0x1d4e22(0x2d9);var _0x11ba90;(function(_0x31bd0b){const _0x1f1142=_0x1d4e22;_0x31bd0b[_0x31bd0b[_0x1f1142(0x1fa)]=0x0]=_0x1f1142(0x1fa),_0x31bd0b[_0x31bd0b[_0x1f1142(0x2dc)]=0x1]=_0x1f1142(0x2dc),_0x31bd0b[_0x31bd0b[_0x1f1142(0x2c1)]=0x2]=_0x1f1142(0x2c1),_0x31bd0b[_0x31bd0b[_0x1f1142(0x24c)]=0x3]=_0x1f1142(0x24c);}(_0x11ba90||(_0x11ba90={})));var _0x849b88;(function(_0x5ed90f){const _0x2db7ae=_0x1d4e22;_0x5ed90f[_0x5ed90f['Unspecified']=0x0]=_0x2db7ae(0x2e0),_0x5ed90f[_0x5ed90f[_0x2db7ae(0x2c8)]=0x1]=_0x2db7ae(0x2c8),_0x5ed90f[_0x5ed90f[_0x2db7ae(0x25c)]=0x2]=_0x2db7ae(0x25c),_0x5ed90f[_0x5ed90f[_0x2db7ae(0x1df)]=0x4]=_0x2db7ae(0x1df),_0x5ed90f[_0x5ed90f[_0x2db7ae(0x1f9)]=0x8]=_0x2db7ae(0x1f9),_0x5ed90f[_0x5ed90f[_0x2db7ae(0x25f)]=0x10]=_0x2db7ae(0x25f),_0x5ed90f[_0x5ed90f[_0x2db7ae(0x1de)]=0x20]=_0x2db7ae(0x1de),_0x5ed90f[_0x5ed90f['DataType']=0x40]=_0x2db7ae(0x281),_0x5ed90f[_0x5ed90f['View']=0x80]=_0x2db7ae(0x1e3);}(_0x849b88||(_0x849b88={})));var _0x332a9;(function(_0x1f9693){const _0xc95f61=_0x1d4e22;_0x1f9693[_0x1f9693[_0xc95f61(0x2c8)]=0x1]='Object',_0x1f9693[_0x1f9693[_0xc95f61(0x25c)]=0x2]='Variable',_0x1f9693[_0x1f9693[_0xc95f61(0x1df)]=0x4]=_0xc95f61(0x1df),_0x1f9693[_0x1f9693[_0xc95f61(0x1f9)]=0x8]='ObjectType',_0x1f9693[_0x1f9693[_0xc95f61(0x25f)]=0x10]='VariableType',_0x1f9693[_0x1f9693[_0xc95f61(0x1de)]=0x20]='ReferenceType',_0x1f9693[_0x1f9693[_0xc95f61(0x281)]=0x40]=_0xc95f61(0x281),_0x1f9693[_0x1f9693[_0xc95f61(0x1e3)]=0x80]=_0xc95f61(0x1e3);}(_0x332a9||(_0x332a9={})));var _0x736886;(function(_0xcc5f67){const _0x2d4b4d=_0x1d4e22;_0xcc5f67[_0xcc5f67[_0x2d4b4d(0x1de)]=0x1]='ReferenceType',_0xcc5f67[_0xcc5f67[_0x2d4b4d(0x2c4)]=0x2]=_0x2d4b4d(0x2c4),_0xcc5f67[_0xcc5f67['NodeClass']=0x4]=_0x2d4b4d(0x2e3),_0xcc5f67[_0xcc5f67['BrowseName']=0x8]='BrowseName',_0xcc5f67[_0xcc5f67[_0x2d4b4d(0x2c2)]=0x10]=_0x2d4b4d(0x2c2),_0xcc5f67[_0xcc5f67[_0x2d4b4d(0x206)]=0x20]=_0x2d4b4d(0x206);}(_0x736886||(_0x736886={})));function _0x5d0cdd(_0x53da54){const _0x10a90e=_0x1d4e22;switch(_0x53da54){case _0x10a90e(0x291):return _0x255360;case'HasProperty':return _0x5dd75b;case'HasComponent':return _0x2f7d25;case _0x10a90e(0x2d7):return _0xa52027;case _0x10a90e(0x226):return _0x57bf17;case _0x10a90e(0x220):return _0x421c2d;}}const _0x406550=_0x3a6607=>{const _0x25e888=_0x1d4e22;switch(_0x3a6607[_0x25e888(0x260)]){case _0x25e888(0x2c8):if(_0x3a6607[_0x25e888(0x224)]===_0x255360);if(_0x3a6607[_0x25e888(0x289)]===_0x5dc40f||_0x3a6607[_0x25e888(0x224)]==='i=61')return{'icon':_0x25e888(0x2b0),'color':_0x25e888(0x2b7)};return{'icon':'fa-object-group','color':_0x25e888(0x30c)};case _0x25e888(0x25c):if(_0x3a6607[_0x25e888(0x224)]===_0x2f7d25)return{'icon':_0x25e888(0x228),'color':'SteelBlue'};else return _0x3a6607[_0x25e888(0x224)]===_0x5dd75b?{'icon':_0x25e888(0x228),'color':_0x25e888(0x2c9)}:{'icon':'fa-list-alt','color':_0x25e888(0x1fd)};case _0x25e888(0x1df):return{'icon':_0x25e888(0x29b),'color':_0x25e888(0x2ae)};case _0x25e888(0x1f9):return{'icon':_0x25e888(0x1fb),'color':_0x25e888(0x214)};case _0x25e888(0x25f):return{'icon':_0x25e888(0x29f),'color':_0x25e888(0x214)};case'DataType':return{'icon':'fa-text-width','color':_0x25e888(0x1fd)};}return{'icon':'fa-question','color':_0x25e888(0x223)};},_0x39aff0=(_0x117a5d,_0x422866,_0x31e8f4)=>_0x10dc95(void 0x0,[_0x117a5d,_0x422866,_0x31e8f4],void 0x0,function*({endpointNode:_0x14790e,endpoint:_0x58fa50,baseUrl:_0x26f297},_0x17b160,_0x59c454){const _0x323ca2=_0x1d4e22,_0x29ce02=_0x26f297+'/opcua-for-node-red',_0xfc331e=_0x29ce02+_0x323ca2(0x1f8),_0x2a6edb=Object[_0x323ca2(0x241)](Object[_0x323ca2(0x241)]({},_0x59c454),{'nodeId':_0x17b160,'resultMask':0x3f}),_0x598ac6=yield fetch(_0xfc331e,{'method':_0x323ca2(0x278),'body':JSON[_0x323ca2(0x30f)]({'endpointNode':_0x14790e,'endpoint':_0x58fa50,'browseDescription':_0x2a6edb}),'headers':{'Content-Type':_0x323ca2(0x304)}});if(_0x598ac6[_0x323ca2(0x2a0)]!==0xc8)return console[_0x323ca2(0x1db)](_0x323ca2(0x302),_0x598ac6[_0x323ca2(0x2a0)],_0x598ac6[_0x323ca2(0x205)]),{'references':[]};const _0x1244e9=yield _0x598ac6[_0x323ca2(0x2b2)](),_0x396d4d=_0x1244e9['browseResult'][_0x323ca2(0x286)]||[];return{'references':_0x396d4d};}),_0x4778db={'referenceTypeId':_0x5d0cdd(_0x1d4e22(0x2d7)),'includeSubtypes':!![],'browseDirection':_0x11ba90['Forward'],'nodeClassMask':_0x849b88['Variable']|_0x849b88[_0x1d4e22(0x2c8)]|_0x849b88[_0x1d4e22(0x1df)],'resultMask':0x3f},_0x21c358={'referenceTypeId':_0x5d0cdd('Organizes'),'includeSubtypes':!![],'browseDirection':_0x11ba90[_0x1d4e22(0x1fa)],'nodeClassMask':_0x849b88[_0x1d4e22(0x25c)]|_0x849b88['Object']|_0x849b88['Method'],'resultMask':0x3f},_0x4c7cc5=(_0x4f2b0d,_0x54fba8)=>_0x10dc95(void 0x0,[_0x4f2b0d,_0x54fba8],void 0x0,function*({endpointNode:_0x344cb8,endpoint:_0x2f9ea1,baseUrl:_0x3670de},{nodeId:_0x1863f4,rootNodeId:_0x26bebf,isType:_0x42b327}){const _0x5604c3=_0x1d4e22,_0x1bcaf7=_0x3670de+_0x5604c3(0x2c3),_0x38631e=_0x1bcaf7+_0x5604c3(0x2dd),_0x502a18=yield fetch(_0x38631e,{'method':_0x5604c3(0x278),'body':JSON[_0x5604c3(0x30f)]({'endpointNode':_0x344cb8,'endpoint':_0x2f9ea1,'nodeId':_0x1863f4,'rootNodeId':_0x26bebf,'isType':_0x42b327}),'headers':{'Content-Type':'application/json'}});if(_0x502a18[_0x5604c3(0x2a0)]!==0xc8)return null;const _0x32f92a=yield _0x502a18[_0x5604c3(0x2b2)]();return _0x32f92a['browsePath'];}),_0x336d60=(_0x5b99be,_0x19bd0b)=>{const _0x26e348=_0x1d4e22;if(_0x5b99be[_0x26e348(0x298)]!==_0x26e348(0x225))return _0x5b99be['requestedNodeId'];switch(_0x19bd0b){case _0x26e348(0x222):return _0x5b99be[_0x26e348(0x21a)];case _0x26e348(0x264):return _0x5b99be['bp_aliased']||_0x5b99be[_0x26e348(0x21a)];case _0x26e348(0x2de):return _0x5b99be[_0x26e348(0x2f1)]||_0x5b99be['nodeId_nsu'];case _0x26e348(0x251):return _0x5b99be[_0x26e348(0x26c)];default:case _0x26e348(0x1ee):return _0x5b99be[_0x26e348(0x1ee)];}},_0x320942=_0x27d091=>{const _0x3e9051=_0x1d4e22;if(_0x27d091[_0x3e9051(0x298)]!=='Good')return _0x3e9051(0x2a4)+_0x27d091[_0x3e9051(0x298)];else{let _0xe758e8=[];return _0xe758e8[_0x3e9051(0x24f)](_0x3e9051(0x22a)+_0x27d091[_0x3e9051(0x1ee)]),_0xe758e8['push'](_0x3e9051(0x22f)+_0x27d091['bp_indexed']),_0xe758e8[_0x3e9051(0x24f)](_0x3e9051(0x21c)+_0x849b88[_0x27d091['nodeClass']]),_0x27d091[_0x3e9051(0x26c)]&&_0xe758e8[_0x3e9051(0x24f)](_0x3e9051(0x1eb)+_0x27d091[_0x3e9051(0x26c)]),_0x27d091[_0x3e9051(0x2f1)]&&_0xe758e8[_0x3e9051(0x24f)]('aliased\x20NodeId:\x20'+_0x27d091[_0x3e9051(0x2f1)]),_0x27d091[_0x3e9051(0x21a)]&&_0xe758e8[_0x3e9051(0x24f)]('aliased\x20browsePath:\x20'+_0x27d091[_0x3e9051(0x240)]),_0xe758e8['join']('\x0a');}};function _0x5b9ee1(_0x537c32){const _0x351f9a=_0x1d4e22;if(_0x537c32[_0x351f9a(0x1e2)](/^nsu=/))return'nsuNodeID';if(_0x537c32[_0x351f9a(0x1e2)](/^(ns=.*;)?(i|b|s|g)=/))return _0x351f9a(0x1ee);if(_0x537c32[_0x351f9a(0x1e2)](/^nsa=/))return'aliasedNodeId';if(_0x537c32[_0x351f9a(0x1e2)](/^(\/|\.)[0-9]+:/))return _0x351f9a(0x222);if(_0x537c32[_0x351f9a(0x1e2)](/^(\/|\.).*:/))return _0x351f9a(0x222);}function _0x621126(_0x4dd45c){const _0x42dcbe=_0x1d4e22,_0x43801a=_0x5b9ee1(_0x4dd45c);switch(_0x43801a){case'nodeId':return'n';case _0x42dcbe(0x2de):return'na';case _0x42dcbe(0x251):return'nsu';case'browsePath':return'b';case'aliasedBrowsePath':return'ab';default:return't';}}function _0x27efdb(_0x30b322){const _0x565e8a=_0x1d4e22;let _0x57dfc6;switch(_0x30b322){case'n':_0x57dfc6=_0x565e8a(0x1ee);break;case'na':_0x57dfc6=_0x565e8a(0x2de);break;case _0x565e8a(0x259):_0x57dfc6=_0x565e8a(0x251);break;case'b':_0x57dfc6=_0x565e8a(0x222);break;case'ab':_0x57dfc6=_0x565e8a(0x264);break;}return _0x57dfc6;}function _0x24a6f6(_0x51546a){const _0x5a7f2c=_0x1d4e22;switch(_0x51546a){case _0x5a7f2c(0x1ee):return'n';case _0x5a7f2c(0x2de):return'na';case _0x5a7f2c(0x251):return _0x5a7f2c(0x259);case _0x5a7f2c(0x222):return'b';case'aliasedBrowsePath':return'ab';default:return't';}}const _0x444b12=(_0x4e94b1,_0x3f9b6e)=>_0x10dc95(void 0x0,[_0x4e94b1,_0x3f9b6e],void 0x0,function*({endpointNode:_0x5bbb70,endpoint:_0xa931d9,baseUrl:_0x48c1ba},_0x529d72){const _0x409610=_0x1d4e22,_0x5958d7=_0x48c1ba+_0x409610(0x2c3),_0xfdead3=_0x5958d7+'/checkNodeId',_0x53b1ab=_0x5bbb70['id'],_0x37d45c=RED['nodes'][_0x409610(0x2f0)](_0x53b1ab);console[_0x409610(0x1db)](_0x37d45c[_0x409610(0x28f)]),_0x37d45c[_0x409610(0x28f)];const _0x4e8122=_0x5bbb70[_0x409610(0x28f)],_0x348abb=yield fetch(_0xfdead3,{'method':_0x409610(0x278),'body':JSON['stringify']({'endpointNode':_0x5bbb70,'endpoint':_0xa931d9,'nodeId':_0x529d72,'namespaceAliases':_0x4e8122}),'headers':{'Content-Type':_0x409610(0x304)}}),_0x21a436=yield _0x348abb['json']();return{'json':_0x21a436,'data':_0x348abb};}),_0x4c0eaf=(_0x3a6e73,_0x4c9c5c,_0x31836a,_0x5779f4)=>_0x10dc95(void 0x0,[_0x3a6e73,_0x4c9c5c,_0x31836a,_0x5779f4],void 0x0,function*({endpointNode:_0x129597,endpoint:_0x1194d8,baseUrl:_0x9ccaeb},_0x3964db,_0x47a9b6,_0x4815f4){const _0x241f49=_0x1d4e22,_0x1619c6=_0x47a9b6['val'](),{json:_0x596758,data:_0x481099}=yield _0x444b12({'endpointNode':_0x129597,'endpoint':_0x1194d8,'baseUrl':_0x9ccaeb},_0x1619c6),_0xd5c883=(_0x158dd0,_0x181da3)=>{const _0x342ac5=_0x26ee;_0x4815f4[_0x342ac5(0x245)](_0x158dd0)[_0x342ac5(0x27a)]('sterfive-info')[_0x342ac5(0x27a)](_0x181da3),_0x4815f4[_0x342ac5(0x2e5)](),setTimeout(()=>{const _0x282205=_0x342ac5;_0x4815f4[_0x282205(0x1fe)](_0x181da3),_0x4815f4[_0x282205(0x2b8)]();},0xbb8);};if(_0x481099['status']!==0xc8)return _0xd5c883(_0x241f49(0x2bc)+_0x1619c6,'failure'),![];else{if(_0x596758['statusCode'][_0x241f49(0x1e2)](/Good/)){const _0x57c782=_0x320942(_0x596758);_0x47a9b6[_0x241f49(0x267)](_0x241f49(0x28b),_0x57c782);const _0x29a343=_0x336d60(_0x596758,_0x3964db);return _0x47a9b6['val'](_0x29a343),_0x47a9b6[_0x241f49(0x266)]('change'),_0xd5c883(_0x241f49(0x225),'ok'),!![];}else return _0x47a9b6[_0x241f49(0x227)](''+_0x1619c6),_0xd5c883(_0x596758[_0x241f49(0x298)]+'\x20'+_0x481099['statusText'],_0x241f49(0x2d3)),![];}});function _0x591d6e(_0x52b2ba,_0x53e58b){return _0x10dc95(this,void 0x0,void 0x0,function*(){const _0x3b29c3=_0x26ee,_0x3551c8=_0x52b2ba[_0x3b29c3(0x297)](_0x3b29c3(0x2f6)),_0x3bd0f8=yield _0x39aff0(_0x53e58b,_0x3551c8,_0x4778db),_0x3fc84e=yield _0x39aff0(_0x53e58b,_0x3551c8,_0x21c358);return{'references':[..._0x3bd0f8[_0x3b29c3(0x286)],..._0x3fc84e[_0x3b29c3(0x286)]]};});}const _0x1302b6={'referenceTypeId':_0x5d0cdd(_0x1d4e22(0x226)),'includeSubtypes':!![],'browseDirection':_0x11ba90[_0x1d4e22(0x1fa)],'nodeClassMask':_0x849b88['ReferenceType']|_0x849b88['ObjectType']|_0x849b88[_0x1d4e22(0x281)]|_0x849b88['VariableType'],'resultMask':0x3f};function _0x2f2e4b(_0x62fe81,_0x23754b){return _0x10dc95(this,void 0x0,void 0x0,function*(){const _0xa8d29=_0x26ee,_0xae3329=_0x62fe81[_0xa8d29(0x297)](_0xa8d29(0x2f6)),_0x54af8a=yield _0x39aff0(_0x23754b,_0xae3329,_0x1302b6);return _0x54af8a;});}const _0x2a84cd=_0x14929a=>{const _0x27c55a=_0x1d4e22;var _0x5de121,_0xe814f7,_0x22f885,_0x15e10f;if(!_0x14929a||!_0x14929a[_0x27c55a(0x1ee)]){const _0x3c7a3d=$(_0x27c55a(0x288));return _0x3c7a3d;}const _0xba533b=_0x14929a[_0x27c55a(0x1ee)][_0x27c55a(0x275)](),_0x102c71=((_0x5de121=_0x14929a[_0x27c55a(0x213)])===null||_0x5de121===void 0x0?void 0x0:_0x5de121['text'])||((_0xe814f7=_0x14929a[_0x27c55a(0x24a)])===null||_0xe814f7===void 0x0?void 0x0:_0xe814f7[_0x27c55a(0x212)])||_0x14929a['nodeId']['toString'](),{icon:_0x2d23e5,color:_0x406c3d}=_0x406550(_0x14929a),_0x35b6cc='('+_0x14929a[_0x27c55a(0x1ee)][_0x27c55a(0x275)]()+')\x20'+(((_0x22f885=_0x14929a[_0x27c55a(0x24a)])===null||_0x22f885===void 0x0?void 0x0:_0x22f885[_0x27c55a(0x212)])||((_0x15e10f=_0x14929a['displayName'])===null||_0x15e10f===void 0x0?void 0x0:_0x15e10f[_0x27c55a(0x245)])||''),_0x1e737d=$('<li\x20key=\x22'+_0x14929a[_0x27c55a(0x1ee)][_0x27c55a(0x275)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x35b6cc+_0x27c55a(0x27f)+_0x2d23e5+_0x27c55a(0x29d)+_0x406c3d+';\x22></i>\x20'+_0x102c71+_0x27c55a(0x27b));return _0x1e737d['addClass'](_0x27c55a(0x23b)),_0x1e737d[_0x27c55a(0x297)](_0x27c55a(0x2f6),_0xba533b),_0x1e737d['data'](_0x27c55a(0x2ef),_0x14929a),_0x1e737d;},_0x1f42b8=(_0x685cb4,_0x8b9b37)=>{const _0x1c7d06=_0x1d4e22;return _0x8b9b37[_0x1c7d06(0x1dc)](_0x1c7d06(0x279)+_0x685cb4+'\x22]');},_0x4c2c01=(_0x10a0e5,_0x2287a7)=>{const _0x243885=_0x1d4e22;_0x10a0e5[_0x243885(0x285)][_0x243885(0x1dc)](_0x243885(0x1d8))[_0x243885(0x1fe)](_0x243885(0x273)),_0x2287a7[_0x243885(0x1dc)](_0x243885(0x2d0))[_0x243885(0x27a)]('selected');},_0x443d49=(_0x38116b,_0x5430d6,_0x3a0280)=>_0x10dc95(void 0x0,void 0x0,void 0x0,function*(){const _0x64c04e=_0x1d4e22;let _0x316ccd=_0x3a0280['children'](':first');_0x5430d6[_0x64c04e(0x262)][_0x64c04e(0x21b)]||[];const _0x413037=_0x5430d6[_0x64c04e(0x2cd)]||[];if(_0x413037[_0x64c04e(0x28c)]===0x0)return;for(const _0x1cc543 of _0x413037){_0x316ccd[_0x64c04e(0x24d)](_0x64c04e(0x23b))&&(yield _0x1d6347(_0x38116b,_0x316ccd));const _0xc13d3f=_0x1f42b8(_0x1cc543,_0x316ccd);if(_0xc13d3f['length']===0x0)return;_0x316ccd=_0xc13d3f;}_0x4c2c01(_0x38116b,_0x316ccd),_0x434be0(_0x38116b[_0x64c04e(0x283)],_0x316ccd);});function _0x434be0(_0x3d1c2b,_0x1f6fed){const _0x262308=_0x1d4e22,_0x609eec=_0x1f6fed[_0x262308(0x204)]()['top'],_0x2f905e=_0x3d1c2b[_0x262308(0x1e6)]();if(_0x2f905e==undefined)return;const _0x600131=_0x2f905e+_0x609eec-_0x3d1c2b[_0x262308(0x2a6)]()/0x2+_0x1f6fed[_0x262308(0x2a6)]()/0x2;_0x3d1c2b[_0x262308(0x1ed)]({'scrollTop':_0x600131},0x1f4);}const _0x1d335a=(_0x53325a,_0x5b9b0b)=>_0x10dc95(void 0x0,void 0x0,void 0x0,function*(){const _0x10968c=_0x1d4e22,_0x31fb66=_0x53325a[_0x10968c(0x306)]['val'](),_0x4735e3={'nodeId':_0x31fb66,'rootNodeId':_0x5b9b0b[_0x10968c(0x1ee)],'isType':_0x53325a[_0x10968c(0x208)][_0x10968c(0x2ac)]||![]},_0x243f67=_0x5a01c6(_0x53325a),_0x4354de=yield _0x4c7cc5(_0x243f67,_0x4735e3);if(!_0x4354de)return;yield _0x443d49(_0x53325a,_0x4354de,_0x53325a[_0x10968c(0x285)]);});function _0x2129b5(_0x153574,_0x494bc4,_0x5d630c,_0x2e0d2e){return _0x10dc95(this,void 0x0,void 0x0,function*(){const _0x36db6c=_0x26ee;if(_0x494bc4[_0x36db6c(0x24d)](_0x36db6c(0x303))){console[_0x36db6c(0x1db)](_0x36db6c(0x28d));return;}if(_0x494bc4[_0x36db6c(0x24d)](_0x36db6c(0x1e4))){console[_0x36db6c(0x1db)]('already\x20loading');return;}_0x494bc4['addClass'](_0x36db6c(0x1e4)),_0x494bc4[_0x36db6c(0x315)]('<div\x20class=\x22spinner\x22></div>');try{_0x494bc4[_0x36db6c(0x26a)]('ul')[_0x36db6c(0x2f4)]();const {references:_0x3416d6}=yield _0x5d630c(_0x494bc4,_0x2e0d2e);_0x3416d6[_0x36db6c(0x2b4)]((_0x136190,_0x5c9a21)=>{const _0x512bf9=_0x36db6c;var _0x193f85,_0x3dbd5f;return(((_0x193f85=_0x136190[_0x512bf9(0x24a)])===null||_0x193f85===void 0x0?void 0x0:_0x193f85[_0x512bf9(0x212)])||'')[_0x512bf9(0x2fa)](((_0x3dbd5f=_0x5c9a21[_0x512bf9(0x24a)])===null||_0x3dbd5f===void 0x0?void 0x0:_0x3dbd5f[_0x512bf9(0x212)])||'');});for(const _0x56fd20 of _0x3416d6){if(_0x153574[_0x36db6c(0x208)][_0x36db6c(0x287)]&&!_0x153574[_0x36db6c(0x208)]['filter'](_0x56fd20))continue;const _0x1e68ac=_0x2a84cd(_0x56fd20);_0x494bc4[_0x36db6c(0x26a)]('ul')[_0x36db6c(0x315)](_0x1e68ac);}_0x494bc4[_0x36db6c(0x27a)](_0x36db6c(0x303));}catch(_0x10dff2){_0x494bc4['children']('ul')['append']('<li>error\x20'+_0x10dff2['message']+'</li>'),console['log'](_0x36db6c(0x215),_0x10dff2);}_0x494bc4[_0x36db6c(0x1dc)](_0x36db6c(0x290))['remove'](),_0x494bc4[_0x36db6c(0x1fe)](_0x36db6c(0x1e4));});}function _0x5a01c6(_0x318878){const _0xc41a94=_0x1d4e22,_0x599dee={'baseUrl':_0x318878['options'][_0xc41a94(0x233)],'endpointNode':typeof _0x318878[_0xc41a94(0x208)]['endpointNode']===_0xc41a94(0x316)?_0x318878[_0xc41a94(0x208)][_0xc41a94(0x2db)]():_0x318878['options'][_0xc41a94(0x2db)],'endpoint':typeof _0x318878[_0xc41a94(0x208)][_0xc41a94(0x265)]==='function'?_0x318878[_0xc41a94(0x208)][_0xc41a94(0x265)]():_0x318878['options'][_0xc41a94(0x265)]};return _0x599dee;}function _0x1d6347(_0x57bfba,_0x1a22f7){return _0x10dc95(this,void 0x0,void 0x0,function*(){const _0x37b1a1=_0x26ee;if(_0x1a22f7[_0x37b1a1(0x24d)](_0x37b1a1(0x303))){_0x1a22f7[_0x37b1a1(0x1fe)]('expandable')['addClass']('expanded'),_0x1a22f7[_0x37b1a1(0x26a)]('ul')[_0x37b1a1(0x238)]();return;}const _0x39b01c=_0x5a01c6(_0x57bfba),_0x496d1d=!_0x57bfba['options'][_0x37b1a1(0x2ac)]?_0x591d6e:_0x2f2e4b;try{yield _0x2129b5(_0x57bfba,_0x1a22f7,_0x496d1d,_0x39b01c),_0x1a22f7[_0x37b1a1(0x1fe)]('expandable')['addClass'](_0x37b1a1(0x2f5));}catch(_0x8fc18d){_0x1a22f7[_0x37b1a1(0x1fe)](_0x37b1a1(0x23b))['addClass'](_0x37b1a1(0x2f5)),console[_0x37b1a1(0x1db)](_0x37b1a1(0x2a7),_0x8fc18d);}});}const _0x571bd6={'browseName':{'namespaceIndex':0x0,'name':_0x1d4e22(0x239)},'nodeClass':_0x1d4e22(0x2c8),'nodeId':'ns=0;i=85','displayName':{'text':'Objects'},'typeDefinition':_0x5dc40f},_0x4cc7d5=()=>{const _0x53db76=_0x1d4e22;$[_0x53db76(0x243)](_0x53db76(0x202),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>_0x571bd6,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x10dc95(this,void 0x0,void 0x0,function*(){const _0x5853f0=_0x26ee,_0x98e2af=this;if(_0x98e2af[_0x5853f0(0x221)]==undefined){const _0x12499e=typeof _0x98e2af[_0x5853f0(0x208)][_0x5853f0(0x2df)]===_0x5853f0(0x316)?_0x98e2af[_0x5853f0(0x208)][_0x5853f0(0x2df)][_0x5853f0(0x1d7)](_0x98e2af):_0x98e2af[_0x5853f0(0x208)][_0x5853f0(0x2df)];if(_0x12499e instanceof Promise){const _0x46d4b3=yield _0x12499e;_0x98e2af[_0x5853f0(0x221)]=_0x46d4b3;}else _0x98e2af['__parentNode']=_0x12499e;}return _0x98e2af[_0x5853f0(0x221)]||_0x571bd6;});},'reset'(){return _0x10dc95(this,void 0x0,void 0x0,function*(){const _0x7a398a=_0x26ee,_0x45a4a5=this,_0xf34af4=_0x45a4a5;_0xf34af4[_0x7a398a(0x221)]=undefined,_0x45a4a5[_0x7a398a(0x285)]['empty']();const _0x42872a=yield this[_0x7a398a(0x2be)](),_0x15d73a=_0x2a84cd(_0x42872a);_0x45a4a5[_0x7a398a(0x285)]['append'](_0x15d73a),_0x45a4a5[_0x7a398a(0x1e5)]=_0x42872a;});},'verify'(_0x256140){const _0x4f9b9b=_0x53db76,_0x3fced0=this,_0x32bd75=_0x5a01c6(_0x3fced0);_0x4c0eaf(_0x32bd75,_0x256140,_0x3fced0['$input'],_0x3fced0['$info'])[_0x4f9b9b(0x201)](_0x338ce6=>{const _0x1d1eee=_0x4f9b9b;!_0x338ce6?_0x3fced0[_0x1d1eee(0x23d)]['addClass'](_0x1d1eee(0x30d)):_0x3fced0['$combo'][_0x1d1eee(0x1fe)](_0x1d1eee(0x30d));});},'_hideMenu'(_0x4f421c){const _0x4b4a7b=_0x53db76,_0x380b57=this;$(document)[_0x4b4a7b(0x1ea)](_0x4b4a7b(0x2fe)),_0x4f421c[_0x4b4a7b(0x2b8)](),_0x4f421c[_0x4b4a7b(0x22c)]({'height':_0x4b4a7b(0x2ea)});if(_0x4f421c[_0x4b4a7b(0x26b)][_0x4b4a7b(0x258)]){var _0x54b880=[];_0x4f421c[_0x4b4a7b(0x1dc)](_0x4b4a7b(0x2ed))[_0x4b4a7b(0x237)](function(){const _0x35cfdd=_0x4b4a7b;$(this)[_0x35cfdd(0x21f)](_0x35cfdd(0x1f0))&&_0x54b880[_0x35cfdd(0x24f)]($(this)[_0x35cfdd(0x297)](_0x35cfdd(0x2f6)));}),_0x4f421c[_0x4b4a7b(0x2a5)](_0x54b880);}_0x380b57['$elementDiv']['is'](':visible')?_0x380b57[_0x4b4a7b(0x306)][_0x4b4a7b(0x266)]('focus'):_0x380b57['$selectTrigger'][_0x4b4a7b(0x266)](_0x4b4a7b(0x2ce));},'_createMenu'(_0x2cf4af,_0x2eda86,_0xd3c884){const _0x16b737=_0x53db76;var _0x16ce59=this;const _0x338f7f=$(_0x16b737(0x1f1))[_0x16b737(0x27a)](_0x16b737(0x257));return _0x338f7f[_0x16b737(0x26b)]=_0x2eda86,_0x338f7f[_0x16b737(0x2a5)]=_0xd3c884,_0x2cf4af[_0x16b737(0x268)](_0x2b6d80=>{const _0x186fbc=_0x16b737;typeof _0x2b6d80===_0x186fbc(0x2ec)&&(_0x2b6d80={'value':_0x2b6d80,'label':_0x2b6d80});var _0x5c703a=$(_0x186fbc(0x284))[_0x186fbc(0x267)]('value',_0x2b6d80['value'])[_0x186fbc(0x1ff)](_0x338f7f);_0x2b6d80[_0x186fbc(0x2b5)]&&_0x5c703a[_0x186fbc(0x245)](_0x2b6d80['label']);_0x2b6d80[_0x186fbc(0x28b)]&&_0x5c703a[_0x186fbc(0x21f)]('title',_0x2b6d80[_0x186fbc(0x28b)]);if(_0x2b6d80['icon']){if(_0x2b6d80['icon'][_0x186fbc(0x23e)]('<')===0x0)$(_0x2b6d80[_0x186fbc(0x2b1)])[_0x186fbc(0x231)](_0x5c703a);else _0x2b6d80[_0x186fbc(0x2b1)][_0x186fbc(0x23e)]('/')!==-0x1?$(_0x186fbc(0x2e8),{'class':'red-ui-typedInput-icon','style':'mask-image:\x20url('+_0x2b6d80[_0x186fbc(0x2b1)]+_0x186fbc(0x2a9)+_0x2b6d80['icon']+');'})[_0x186fbc(0x231)](_0x5c703a):$(_0x186fbc(0x2e8),{'class':_0x186fbc(0x235)+_0x2b6d80[_0x186fbc(0x2b1)]})[_0x186fbc(0x231)](_0x5c703a);}else _0x5c703a['css']({'paddingLeft':_0x186fbc(0x27e)});!_0x2b6d80['icon']&&!_0x2b6d80[_0x186fbc(0x2b5)]&&_0x5c703a[_0x186fbc(0x245)](_0x2b6d80['value']);var _0x1caffe;_0x2eda86[_0x186fbc(0x258)]&&(_0x1caffe=$(_0x186fbc(0x25a))[_0x186fbc(0x22c)](_0x186fbc(0x1e8),_0x186fbc(0x2b9))[_0x186fbc(0x297)](_0x186fbc(0x2f6),_0x2b6d80['value'])['prependTo'](_0x5c703a)['on']('mousedown',function(_0x31e7ac){const _0x5d9745=_0x186fbc;_0x31e7ac[_0x5d9745(0x20f)]();})),_0x5c703a['on'](_0x186fbc(0x296),function(_0x234234){const _0x64cdb6=_0x186fbc;_0x234234[_0x64cdb6(0x20f)](),_0x234234['stopPropagation'](),!_0x2eda86[_0x64cdb6(0x258)]?(_0xd3c884(_0x2b6d80['value']),_0x16ce59[_0x64cdb6(0x255)](_0x338f7f)):_0x1caffe[_0x64cdb6(0x21f)](_0x64cdb6(0x1f0),!_0x1caffe[_0x64cdb6(0x21f)]('checked'));});}),_0x338f7f[_0x16b737(0x22c)]({'display':_0x16b737(0x2b9)}),_0x338f7f['on'](_0x16b737(0x23a),function(_0xd7cc39){const _0x3785d3=_0x16b737;if(_0xd7cc39[_0x3785d3(0x2af)]===0x28)_0xd7cc39[_0x3785d3(0x20f)](),$(this)[_0x3785d3(0x26a)](':focus')[_0x3785d3(0x2e1)]()['trigger'](_0x3785d3(0x2ce));else{if(_0xd7cc39['keyCode']===0x26)_0xd7cc39[_0x3785d3(0x20f)](),$(this)[_0x3785d3(0x26a)](_0x3785d3(0x216))[_0x3785d3(0x2fb)]()[_0x3785d3(0x266)](_0x3785d3(0x2ce));else _0xd7cc39[_0x3785d3(0x2af)]===0x1b&&(_0xd7cc39[_0x3785d3(0x20f)](),_0x16ce59[_0x3785d3(0x255)](_0x338f7f));}_0xd7cc39[_0x3785d3(0x28a)]();}),_0x338f7f;},'disarmClick':![],'_showMenu'(_0x417a53,_0x41fbac){const _0x562583=_0x53db76;if(this['disarmClick']){this['disarmClick']=![];return;}var _0x43ef43=this,_0x15a048=_0x41fbac[_0x562583(0x2e7)](),_0x677a23=_0x41fbac[_0x562583(0x2a6)](),_0x47fede=_0x417a53[_0x562583(0x2a6)](),_0x455326=_0x677a23+_0x15a048['top'];_0x455326+_0x47fede-$(document)[_0x562583(0x1e6)]()>$(window)[_0x562583(0x2a6)]()&&(_0x455326-=_0x455326+_0x47fede-$(window)[_0x562583(0x2a6)]()+0x5),_0x455326<0x0&&(_0x417a53[_0x562583(0x2a6)](_0x47fede+_0x455326),_0x455326=0x0),_0x417a53[_0x562583(0x22c)]({'top':_0x455326+'px','left':_0x15a048[_0x562583(0x2a2)]+'px'}),_0x417a53[_0x562583(0x274)](0x64),this[_0x562583(0x295)](function(){const _0x1caecc=_0x562583;_0x43ef43['$uiSelect'][_0x1caecc(0x27a)](_0x1caecc(0x234)),$(document)['on'](_0x1caecc(0x2fe),function(_0x440242){const _0x523075=_0x1caecc;!$(_0x440242[_0x523075(0x26d)])[_0x523075(0x2d5)](_0x417a53)[_0x523075(0x28c)]&&_0x43ef43['_hideMenu'](_0x417a53),$(_0x440242[_0x523075(0x26d)])[_0x523075(0x2d5)](_0x41fbac)[_0x523075(0x28c)]&&(_0x43ef43['disarmClick']=!![],_0x440242[_0x523075(0x20f)]());});});},'_showTypeMenu'(){const _0x5e5f9=_0x53db76,_0x47ef35=this;this[_0x5e5f9(0x28e)](_0x47ef35['$menu'],_0x47ef35[_0x5e5f9(0x23d)]),_0x47ef35[_0x5e5f9(0x283)][_0x5e5f9(0x2b8)]();const _0x780d5f=_0x47ef35[_0x5e5f9(0x30e)];var _0x5e78d0=_0x47ef35['$menu'][_0x5e5f9(0x1dc)](_0x5e5f9(0x2cb)+_0x780d5f+'\x27');setTimeout(function(){const _0x55cdf9=_0x5e5f9;_0x5e78d0['trigger'](_0x55cdf9(0x2ce));},0x78);},'_initMenu'(){const _0x4c98a8=_0x53db76,_0x3d751a=this;_0x3d751a['$selectTrigger'][_0x4c98a8(0x267)]('tabindex',-0x1),_0x3d751a[_0x4c98a8(0x25d)]['on'](_0x4c98a8(0x280),function(_0x46b4bf){const _0x19c90a=_0x4c98a8;_0x46b4bf[_0x19c90a(0x20f)]();});_0x3d751a[_0x4c98a8(0x256)]&&_0x3d751a['$menu'][_0x4c98a8(0x2eb)]();const _0x4d574b=[{'label':_0x4c98a8(0x245),'value':'t','title':_0x4c98a8(0x20d),'icon':_0x4c98a8(0x271)},{'label':_0x4c98a8(0x312),'value':_0x4c98a8(0x1dd),'title':_0x4c98a8(0x2b3),'icon':'<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>'},{'label':_0x4c98a8(0x250),'value':'n','icon':_0x4c98a8(0x252)},{'label':_0x4c98a8(0x20c),'value':'na','icon':_0x4c98a8(0x2ab)},{'label':'NodeId\x20with\x20namespace\x20Urn','value':'nsu','icon':_0x4c98a8(0x20e)},{'label':_0x4c98a8(0x2e9),'value':'b','icon':'<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;'},{'label':'Aliased\x20Browse\x20Path','value':'ab','icon':_0x4c98a8(0x254)}],_0x1045d5=_0x621126(_0x3d751a[_0x4c98a8(0x306)]['val']()),_0x5a0960=_0x4d574b['find'](_0x19e260=>_0x19e260[_0x4c98a8(0x2f6)]===_0x1045d5);_0x3d751a[_0x4c98a8(0x253)][_0x4c98a8(0x2f4)]()[_0x4c98a8(0x315)](_0x4c98a8(0x20b)+((_0x5a0960===null||_0x5a0960===void 0x0?void 0x0:_0x5a0960[_0x4c98a8(0x28b)])||'')+_0x4c98a8(0x247)+((_0x5a0960===null||_0x5a0960===void 0x0?void 0x0:_0x5a0960['icon'])||'')+_0x4c98a8(0x200)),_0x3d751a[_0x4c98a8(0x30e)]=_0x1045d5;const _0x2f454b=this;_0x3d751a[_0x4c98a8(0x256)]=this[_0x4c98a8(0x263)](_0x4d574b,{},_0xc714bb=>{const _0x4bf682=_0x4c98a8,_0x13ff5a=_0x27efdb(_0xc714bb);_0x13ff5a&&_0x2f454b['verify'](_0x13ff5a);const _0x846c24=_0x4d574b[_0x4bf682(0x1dc)](_0x521c02=>_0x521c02[_0x4bf682(0x2f6)]===_0xc714bb);_0x3d751a['selectedMenuItem']=_0xc714bb,_0x3d751a[_0x4bf682(0x253)]['empty']()[_0x4bf682(0x315)]('<span\x20title='+((_0x846c24===null||_0x846c24===void 0x0?void 0x0:_0x846c24[_0x4bf682(0x28b)])||'')+_0x4bf682(0x247)+((_0x846c24===null||_0x846c24===void 0x0?void 0x0:_0x846c24[_0x4bf682(0x2b1)])||'')+_0x4bf682(0x200));}),_0x3d751a[_0x4c98a8(0x256)][_0x4c98a8(0x1ff)](document['body']),_0x3d751a[_0x4c98a8(0x256)][_0x4c98a8(0x2b8)](),_0x3d751a[_0x4c98a8(0x25d)][_0x4c98a8(0x2e5)]();},'mode'(){const _0x40f440=this;return _0x27efdb(_0x40f440['selectedMenuItem']);},'setMode'(_0x34ff83){const _0x446cb4=_0x53db76,_0xc19f38=this,_0x1bff22=_0x24a6f6(_0x34ff83);_0xc19f38[_0x446cb4(0x30e)]=_0x1bff22;},'_create'(){const _0x5c8c03=_0x53db76,_0x5dd67a=this;_0x5dd67a[_0x5c8c03(0x306)]=this[_0x5c8c03(0x2fd)],_0x5dd67a['$input'][_0x5c8c03(0x22c)](_0x5c8c03(0x24e),_0x5c8c03(0x2b9)),_0x5dd67a[_0x5c8c03(0x276)]=_0x5dd67a[_0x5c8c03(0x306)][_0x5c8c03(0x207)]('<div>')[_0x5c8c03(0x1d5)]()['addClass'](_0x5c8c03(0x2d4)),_0x5dd67a[_0x5c8c03(0x23d)]=$(_0x5c8c03(0x2fc)),_0x5dd67a['$combo'][_0x5c8c03(0x27a)](_0x5c8c03(0x26e)),_0x5dd67a[_0x5c8c03(0x306)]['replaceWith'](_0x5dd67a['$combo']),_0x5dd67a['$inputGroup']=$(_0x5c8c03(0x2fc))['addClass'](_0x5c8c03(0x2ca)),_0x5dd67a[_0x5c8c03(0x23d)][_0x5c8c03(0x315)](_0x5dd67a[_0x5c8c03(0x2aa)]),_0x5dd67a[_0x5c8c03(0x2aa)]['append'](_0x5dd67a[_0x5c8c03(0x306)]),_0x5dd67a['$toggleTreeBtn']=$(_0x5c8c03(0x293)),_0x5dd67a[_0x5c8c03(0x306)][_0x5c8c03(0x1f2)](_0x5dd67a[_0x5c8c03(0x307)]),_0x5dd67a['$toggleTreeBtn']['on'](_0x5c8c03(0x296),function(){return _0x10dc95(this,void 0x0,void 0x0,function*(){const _0x17112d=_0x26ee;var _0x240c81;let _0x2010de=![],_0x4b8480;!_0x5dd67a['$dropdown']['is'](_0x17112d(0x1ec))&&(_0x5dd67a[_0x17112d(0x30a)][_0x17112d(0x2b8)](),_0x4b8480=yield _0x5dd67a[_0x17112d(0x2be)](),(_0x4b8480!==_0x5dd67a['currentParent']||((_0x240c81=_0x5dd67a[_0x17112d(0x1e5)])===null||_0x240c81===void 0x0?void 0x0:_0x240c81[_0x17112d(0x1ee)])!==_0x4b8480['nodeId'])&&(yield _0x5dd67a[_0x17112d(0x217)]()),_0x2010de=!![]),_0x5dd67a[_0x17112d(0x283)]['toggle'](),_0x2010de&&(yield _0x1d335a(_0x5dd67a,_0x4b8480));});}),_0x5dd67a[_0x5c8c03(0x300)]=$(_0x5c8c03(0x27c)),_0x5dd67a[_0x5c8c03(0x306)][_0x5c8c03(0x1f2)](_0x5dd67a['$verifyBtn']),_0x5dd67a[_0x5c8c03(0x300)]['on'](_0x5c8c03(0x296),()=>{const _0x28fb90=_0x5c8c03,_0x33dacf=_0x5dd67a['mode']();if(!_0x33dacf)return;this[_0x28fb90(0x230)](_0x33dacf);});const _0x4f74d5=_0x5409a9=>_0x10dc95(this,void 0x0,void 0x0,function*(){const _0x116b19=_0x5c8c03,_0x280d21=this;let _0xc8bc6f=_0x280d21[_0x116b19(0x249)]();if(!_0xc8bc6f)return;const _0x36670c=_0x5a01c6(_0x280d21),{data:_0x1b9dc4,json:_0x5667b3}=yield _0x444b12(_0x36670c,_0x5409a9);if(_0x1b9dc4[_0x116b19(0x2a0)]!==0xc8)return;if(_0x5667b3[_0x116b19(0x298)][_0x116b19(0x1e2)](/Good/)){const _0x4081c6=_0x336d60(_0x5667b3,_0xc8bc6f);_0x280d21[_0x116b19(0x306)][_0x116b19(0x227)](_0x4081c6),_0x280d21[_0x116b19(0x306)][_0x116b19(0x266)](_0x116b19(0x2d6));}});{_0x5dd67a[_0x5c8c03(0x211)]=$(_0x5c8c03(0x1f1)),_0x5dd67a[_0x5c8c03(0x306)][_0x5c8c03(0x292)](_0x5dd67a[_0x5c8c03(0x211)]),_0x5dd67a[_0x5c8c03(0x25d)]=$(_0x5c8c03(0x308))[_0x5c8c03(0x231)](_0x5dd67a[_0x5c8c03(0x211)]),$(_0x5c8c03(0x1e7))[_0x5c8c03(0x238)](!![])[_0x5c8c03(0x1ff)](_0x5dd67a['$selectTrigger']),_0x5dd67a[_0x5c8c03(0x25d)]['on'](_0x5c8c03(0x296),function(_0x5a3524){const _0x4b89b1=_0x5c8c03;_0x5a3524[_0x4b89b1(0x20f)](),_0x5a3524[_0x4b89b1(0x28a)](),_0x5dd67a['_showTypeMenu']();}),_0x5dd67a[_0x5c8c03(0x25d)]['on']('keydown',function(_0x5bc911){const _0x5c9728=_0x5c8c03;_0x5bc911[_0x5c9728(0x2af)]===0x28&&_0x5dd67a['_showTypeMenu'](),_0x5bc911['stopPropagation']();})['on']('focus',function(){const _0x2dc684=_0x5c8c03;_0x5dd67a[_0x2dc684(0x211)][_0x2dc684(0x27a)](_0x2dc684(0x234));})['on'](_0x5c8c03(0x203),function(){const _0x411d4f=_0x5c8c03;_0x5dd67a['$uiSelect'][_0x411d4f(0x1fe)](_0x411d4f(0x234));}),_0x5dd67a[_0x5c8c03(0x253)]=$('<span\x20class=\x22red-ui-typedInput-type-label\x22></span>')[_0x5c8c03(0x1ff)](_0x5dd67a[_0x5c8c03(0x25d)]);}this[_0x5c8c03(0x1f5)]();!_0x5dd67a[_0x5c8c03(0x306)][_0x5c8c03(0x267)](_0x5c8c03(0x2f3))&&_0x5dd67a[_0x5c8c03(0x306)]['attr']('placeholder',_0x5c8c03(0x22d));_0x5dd67a['$info']=$(_0x5c8c03(0x2bb)),_0x5dd67a[_0x5c8c03(0x30a)][_0x5c8c03(0x2b8)](),_0x5dd67a[_0x5c8c03(0x23d)][_0x5c8c03(0x315)](_0x5dd67a[_0x5c8c03(0x30a)]),_0x5dd67a[_0x5c8c03(0x283)]=$(_0x5c8c03(0x2fc))[_0x5c8c03(0x27a)](_0x5c8c03(0x30b))[_0x5c8c03(0x2b8)]()[_0x5c8c03(0x1ff)](_0x5dd67a['$combo']),_0x5dd67a['$tree']=$(_0x5c8c03(0x269))[_0x5c8c03(0x1ff)](_0x5dd67a['$dropdown']),this[_0x5c8c03(0x217)]();const _0x57cbbc=(_0x3578ab,_0x5c6741)=>{const _0x6c8901=_0x5c8c03,_0x5b95ae=0x14,_0x5b9b75=0x14,_0x52d40d=_0x3578ab[_0x6c8901(0x2e7)](),_0x444da3=_0x5c6741;if(_0x444da3[_0x6c8901(0x236)]>=_0x52d40d[_0x6c8901(0x2a2)]&&_0x444da3[_0x6c8901(0x236)]<=_0x52d40d[_0x6c8901(0x2a2)]+_0x5b95ae&&_0x444da3[_0x6c8901(0x25b)]>=_0x52d40d[_0x6c8901(0x277)]&&_0x444da3[_0x6c8901(0x25b)]<=_0x52d40d[_0x6c8901(0x277)]+_0x5b9b75)return!![];return![];},_0x3b0d7e=_0x240fa7=>_0x10dc95(this,void 0x0,void 0x0,function*(){const _0x4cc7b6=_0x5c8c03;if(_0x240fa7[_0x4cc7b6(0x24d)](_0x4cc7b6(0x23b)))_0x1d6347(_0x5dd67a,_0x240fa7);else{if(_0x240fa7[_0x4cc7b6(0x24d)]('expanded'))_0x240fa7[_0x4cc7b6(0x26a)]('ul')[_0x4cc7b6(0x238)](),_0x240fa7[_0x4cc7b6(0x2c7)](_0x4cc7b6(0x29a));else{if(_0x240fa7[_0x4cc7b6(0x26a)]('ul')[_0x4cc7b6(0x26a)]()[_0x4cc7b6(0x28c)]>0x0)_0x240fa7[_0x4cc7b6(0x26a)]('ul')[_0x4cc7b6(0x238)](),_0x240fa7[_0x4cc7b6(0x2c7)]('expandable\x20expanded');else;}}});_0x5dd67a[_0x5c8c03(0x285)]['on'](_0x5c8c03(0x2ee),'li',function(_0x115480){const _0x1a7fda=_0x5c8c03;var _0x19d5d7,_0x11ce1a;_0x115480[_0x1a7fda(0x28a)]();let _0x16d211=$(this);if(_0x57cbbc(_0x16d211,_0x115480))_0x3b0d7e(_0x16d211);else{const _0x1aa8e4=_0x16d211[_0x1a7fda(0x297)](_0x1a7fda(0x2f6)),_0x66bcde=_0x16d211[_0x1a7fda(0x297)](_0x1a7fda(0x2ef));if(_0x5dd67a[_0x1a7fda(0x208)][_0x1a7fda(0x24b)]&&!_0x5dd67a[_0x1a7fda(0x208)][_0x1a7fda(0x24b)](_0x66bcde))return;_0x5dd67a[_0x1a7fda(0x306)][_0x1a7fda(0x297)](_0x1a7fda(0x2ef),_0x66bcde),((_0x19d5d7=_0x66bcde[_0x1a7fda(0x213)])===null||_0x19d5d7===void 0x0?void 0x0:_0x19d5d7['text'])||((_0x11ce1a=_0x66bcde[_0x1a7fda(0x24a)])===null||_0x11ce1a===void 0x0?void 0x0:_0x11ce1a[_0x1a7fda(0x212)])||_0x66bcde[_0x1a7fda(0x1ee)][_0x1a7fda(0x275)]();let _0x3adb3a=_0x5dd67a[_0x1a7fda(0x249)]();!_0x3adb3a&&(_0x3adb3a='nodeId',_0x5dd67a[_0x1a7fda(0x2cc)](_0x3adb3a)),_0x4f74d5(_0x1aa8e4)[_0x1a7fda(0x201)](()=>{const _0x3597b7=_0x1a7fda;_0x5dd67a[_0x3597b7(0x283)][_0x3597b7(0x2b8)]();})['catch'](_0x343a56=>{const _0x1a8bb4=_0x1a7fda;_0x5dd67a[_0x1a8bb4(0x283)][_0x1a8bb4(0x2b8)]();});}}),_0x5dd67a[_0x5c8c03(0x285)]['on'](_0x5c8c03(0x296),'li',function(_0x1e98d6){_0x1e98d6['stopPropagation']();let _0x3a2007=$(this);_0x57cbbc(_0x3a2007,_0x1e98d6)&&_0x3b0d7e(_0x3a2007),_0x4c2c01(_0x5dd67a,_0x3a2007);}),$(document)['on'](_0x5c8c03(0x296),function(_0x112265){const _0x1d5bab=_0x5c8c03;!$(_0x112265['target'])[_0x1d5bab(0x2d5)](_0x5dd67a[_0x1d5bab(0x23d)])[_0x1d5bab(0x28c)]&&_0x5dd67a[_0x1d5bab(0x283)][_0x1d5bab(0x2b8)]();});}});},_0x3190c9=()=>{const _0x21f56b=_0x1d4e22,_0x340632=$(_0x21f56b(0x305)),_0x3075cb=_0x340632[_0x21f56b(0x227)](),_0x11f415=RED['nodes'][_0x21f56b(0x2f0)](_0x3075cb);if(!_0x11f415)return undefined;const {endpoint:_0x11bd2c,securityMode:_0x4e1c06,securityPolicy:_0x329541,userIdentityType:_0xe1a3fd,credentials:_0x14276b,namespaceAliases:_0x5476f2}=_0x11f415,_0x3f6620={'endpoint':_0x11bd2c,'securityMode':_0x4e1c06,'securityPolicy':_0x329541,'userIdentityType':_0xe1a3fd,'credentials':_0x14276b,'namespaceAliases':_0x5476f2};return _0x3f6620;},_0x20bf7b=()=>{const _0x43dbd8=_0x1d4e22,_0x42e595=$(_0x43dbd8(0x305)),_0x1af31d=_0x42e595[_0x43dbd8(0x227)](),_0xf21362=_0x3190c9();if(!_0xf21362)return undefined;const _0x5cc94c=_0xf21362[_0x43dbd8(0x28f)];return Object[_0x43dbd8(0x241)]({'namespaceAliases':_0x5cc94c,'id':_0x1af31d},_0xf21362);},_0x3e9482=()=>{return{'endpointNode':_0x20bf7b};};RED[_0x1d4e22(0x310)][_0x1d4e22(0x2a3)](_0x1d4e22(0x209),{'category':_0x1d4e22(0x22e),'color':_0x1d4e22(0x27d),'align':'right','icon':_0x1d4e22(0x2d2),'paletteLabel':_0x1d4e22(0x270),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x1d4e22(0x2d8)},'historyReadParam':{'value':{'type':'raw','endTime':_0x1d4e22(0x2f2),'startTime':_0x1d4e22(0x2c0),'numValuesPerNode':0x64,'returnBounds':!![]},'required':!![],'validate':_0x9b6537=>{if(_0x9b6537==='')return![];return!![];}},'nodeId':{'value':'','required':![]},'outputType':{'value':_0x1d4e22(0x229),'required':!![]}},'outputs':0x2,'label'(){const _0x3a71b1=_0x1d4e22;return this[_0x3a71b1(0x212)]||_0x3a71b1(0x2d1);},'labelStyle'(){const _0x25dbc4=_0x1d4e22;return this[_0x25dbc4(0x212)]?'node_label_italic':'';},'oneditprepare'(){const _0x2af120=_0x1d4e22,_0x1d381c=this;_0x4cc7d5(),_0x1d381c[_0x2af120(0x1d9)]=0x1;const _0x4202ca=$(_0x2af120(0x2a8));_0x4202ca[_0x2af120(0x2ff)](Object[_0x2af120(0x241)](Object[_0x2af120(0x241)]({},_0x3e9482()),{'isSelectable'(_0x3adc2d){const _0x8443b3=_0x2af120;return _0x3adc2d[_0x8443b3(0x260)]==='Variable';}})),$(_0x2af120(0x272))[_0x2af120(0x227)](_0x1d381c['historyReadParam'][_0x2af120(0x311)]);switch(_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x311)]){case _0x2af120(0x26f):$(_0x2af120(0x299))[_0x2af120(0x227)](_0x1d381c['historyReadParam'][_0x2af120(0x2bf)]),$(_0x2af120(0x210))['val'](_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x29c)]),$(_0x2af120(0x20a))['val'](_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x2e6)]),$('#node-input-returnBounds')[_0x2af120(0x21f)]('checked',_0x1d381c['historyReadParam'][_0x2af120(0x2c6)]);break;case _0x2af120(0x1f3):$(_0x2af120(0x219))[_0x2af120(0x227)](_0x1d381c[_0x2af120(0x2ba)]['startTime']),$(_0x2af120(0x21e))[_0x2af120(0x227)](_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x29c)]),$('#node-input-modified-numValuesPerNode')[_0x2af120(0x227)](_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x2e6)]),$('#node-input-modified-returnBounds')[_0x2af120(0x21f)](_0x2af120(0x1f0),_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x2c6)]);break;case _0x2af120(0x1f4):_0x1d381c[_0x2af120(0x2ba)]['aggregateConfiguration']=_0x1d381c[_0x2af120(0x2ba)]['aggregateConfiguration']||{},$(_0x2af120(0x246))[_0x2af120(0x227)](_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x2bf)]),$('#node-input-processed-details-endTime')[_0x2af120(0x227)](_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x29c)]),$('#node-input-processed-details-processingInterval')[_0x2af120(0x227)](_0x1d381c[_0x2af120(0x2ba)]['processingInterval']),$('#node-input-processed-details-aggregateType')[_0x2af120(0x227)](_0x1d381c[_0x2af120(0x2ba)]['aggregateType']),$('#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults')[_0x2af120(0x21f)](_0x2af120(0x1f0),_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x2ad)][_0x2af120(0x2cf)]),$(_0x2af120(0x1d6))[_0x2af120(0x21f)]('checked',_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x2ad)][_0x2af120(0x2da)]),$(_0x2af120(0x2f7))[_0x2af120(0x227)](_0x1d381c['historyReadParam']['aggregateConfiguration'][_0x2af120(0x232)]),$(_0x2af120(0x2c5))[_0x2af120(0x227)](_0x1d381c[_0x2af120(0x2ba)][_0x2af120(0x2ad)]['percentDataGood']),$('#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation')['prop']('checked',_0x1d381c[_0x2af120(0x2ba)]['aggregateConfiguration'][_0x2af120(0x29e)]);break;}{function _0x1ee90f(){const _0xe5d999=_0x2af120;$(_0xe5d999(0x309))[_0xe5d999(0x2b8)](),$(_0xe5d999(0x294))[_0xe5d999(0x2b8)](),$('#section-processed-details')[_0xe5d999(0x2b8)](),$(_0xe5d999(0x282))[_0xe5d999(0x2b8)](),$(_0xe5d999(0x2b6))[_0xe5d999(0x2b8)](),$(_0xe5d999(0x2a1))['hide']();}function _0x1cb69b(){const _0x59d35e=_0x2af120;_0x1ee90f();var _0x2c5605=$(_0x59d35e(0x272))[_0x59d35e(0x227)]();$(_0x59d35e(0x218)+_0x2c5605)[_0x59d35e(0x2e5)]();}$('#select-history-type')['on'](_0x2af120(0x2d6),_0x1cb69b),_0x1cb69b();}},'oneditsave'(){const _0x28a718=_0x1d4e22,_0x40631a=_0x1a374f=>_0x1a374f[_0x28a718(0x227)]()==undefined?'':_0x1a374f[_0x28a718(0x227)]()[_0x28a718(0x275)](),_0x3d5689=_0x5f3fef=>_0x5f3fef[_0x28a718(0x227)]()==undefined?0x0:_0x5f3fef[_0x28a718(0x227)](),_0x1a1413=$('#select-history-type')[_0x28a718(0x227)]();switch(_0x1a1413){case _0x28a718(0x26f):this[_0x28a718(0x2ba)]={'type':_0x28a718(0x26f),'startTime':_0x40631a($(_0x28a718(0x299))),'endTime':_0x40631a($(_0x28a718(0x210))),'numValuesPerNode':_0x3d5689($('#node-input-raw-numValuesPerNode')),'returnBounds':$(_0x28a718(0x25e))[_0x28a718(0x21f)]('checked')};break;case _0x28a718(0x1f3):this[_0x28a718(0x2ba)]={'type':_0x28a718(0x1f3),'startTime':_0x40631a($(_0x28a718(0x219))),'endTime':_0x40631a($('#node-input-modified-endTime')),'numValuesPerNode':_0x3d5689($(_0x28a718(0x23c))),'returnBounds':$(_0x28a718(0x2e2))[_0x28a718(0x21f)](_0x28a718(0x1f0))};break;case'processed-details':this[_0x28a718(0x2ba)]={'type':_0x28a718(0x1f4),'startTime':_0x40631a($('#node-input-processed-details-startTime')),'endTime':_0x40631a($(_0x28a718(0x2e4))),'processingInterval':_0x3d5689($('#node-input-processed-details-processingInterval')),'aggregateType':_0x40631a($(_0x28a718(0x248))),'aggregateConfiguration':{'useServerCapabilitiesDefaults':$(_0x28a718(0x2f9))[_0x28a718(0x21f)](_0x28a718(0x1f0)),'treatUncertainAsBad':$(_0x28a718(0x1d6))['prop'](_0x28a718(0x1f0)),'percentDataBad':_0x3d5689($(_0x28a718(0x2f7))),'percentDataGood':_0x3d5689($(_0x28a718(0x2c5))),'useSlopedExtrapolation':$(_0x28a718(0x242))[_0x28a718(0x21f)](_0x28a718(0x1f0))}};break;}}});}()));function _0x4a88(){const _0x3bf9ec=['#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation','widget','3841392kkUEVc','text','#node-input-processed-details-startTime','>&nbsp;\x20','#node-input-processed-details-aggregateType','mode','browseName','isSelectable','Invalid','hasClass','border','push','NodeId','nsuNodeID','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20&nbsp;\x20','$selectLabel','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;','_hideMenu','$menu','sterfive-typedInput-options\x20sterfive-online-menu','multiple','nsu','<input\x20type=\x22checkbox\x22>','pageY','Variable','$selectTrigger','#node-input-returnBounds','VariableType','nodeClass','throw','relativePath','_createMenu','aliasedBrowsePath','endpoint','trigger','attr','forEach','<ul\x20class=\x22sterfive-tree\x22></ul>','children','opts','nodeId_nsu','target','sterfive-combo-box','raw','read-history','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','#select-history-type','selected','slideDown','toString','$elementDiv','top','POST','li[key=\x22','addClass','</span><ul></ul></li>','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','#C0DEED','18px','><i\x20class=\x22fa\x20','mousedown.red-ui-typedInput-focus-block','DataType','#section-at-time','$dropdown','<a\x20href=\x22#\x22></a>','$tree','references','filter','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','typeDefinition','stopPropagation','title','length','already\x20fetched','_showMenu','namespaceAliases','.spinner','Organizes','before','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','#section-modified','_delay','click','data','statusCode','#node-input-raw-startTime','expandable\x20expanded','fa-cog','endTime','\x22\x20style=\x22color:','useSlopedExtrapolation','fa-sliders','status','#section-event','left','registerType','statusCode:\x20','callback','height','error','#node-input-nodeId',');\x20-webkit-mask-image:\x20url(','$inputGroup','<i\x20class=\x22fa\x20fa-bookmark\x22/>&nbsp;\x20','isTypeRef','aggregateConfiguration','SandyBrown','keyCode','fa-folder','icon','json','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','sort','label','#section-annotation-data','rgba(61,\x2060,\x204,\x200.525)','hide','none','historyReadParam','<div\x20class=\x22info-text\x22></div>','!!failure!!','948066wOJXpX','resolveParentNode','startTime','11m\x20ago','Both','DisplayName','/opcua-for-node-red','IsForward','#node-input-processed-details-aggregateConfiguration-percentDataGood','returnBounds','toggleClass','Object','DodgerBlue','input-group','[value=\x27','setMode','nodeIds','focus','useServerCapabilitiesDefaults','.tree-text:first','OPCUA\x20Client\x20HistoryRead','../../icons/opcuanodeLogo.png','failure','main-wrapper','closest','change','HasChild','OpcUa-Endpoint2','ns=0;i=40','treatUncertainAsBad','endpointNode','Inverse','/walk-backward','aliasedNodeId','parentNode','Unspecified','next','#node-input-modified-returnBounds','NodeClass','#node-input-processed-details-endTime','show','numValuesPerNode','offset','<i>','BrowsePath','auto','remove','string','input[type=\x22checkbox\x22]','dblclick','reference','node','nodeId_aliased','1m\x20ago','placeholder','empty','expanded','value','#node-input-processed-details-aggregateConfiguration-percentDataBad','ns=0;i=34','#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults','localeCompare','prev','<div/>','element','mousedown.red-ui-typedInput-close-property-select','nodeBrowser','$verifyBtn','1216584YTRExu','fetching\x20failed\x20with\x20error','fetched','application/json','#node-input-endpoint','$input','$toggleTreeBtn','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','#section-raw','$info','sterfive-dropdown','SeaGreen','input-error','selectedMenuItem','stringify','nodes','type','msg.','3815987HJCYdj','apply','append','function','parent','#node-input-processed-details-aggregateConfiguration-treatUncertainAsBad','call','li\x20>\x20.tree-text','inputs','ns=0;i=35','log','find','msg','ReferenceType','Method','SuppressedError','ns=0;i=61','match','View','loading','currentParent','scrollTop','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','pointer-events','15QudFeC','off','nsu\x20nodeId:\x20',':visible','animate','nodeId','done','checked','<div>','after','modified','processed-details','_initMenu','416328refNoM','6MrRgKO','/browse','ObjectType','Forward','fa-object-group','ns=0;i=46','CadetBlue','removeClass','appendTo','</span>','then','sterfive.nodeBrowser','blur','position','statusText','TypeDefinition','wrap','options','OpcUa-Client2-HistoryRead','#node-input-raw-numValuesPerNode','<span\x20title=','Aliased\x20NodeId','Value\x20is\x20not\x20verified','<i\x20class=\x22fa\x20fa-id-card\x22/>&nbsp;\x20','preventDefault','#node-input-raw-endTime','$uiSelect','name','displayName','DarkOrange','err',':focus','reset','#section-','#node-input-modified-startTime','bp_indexed','elements','node\x20class:\x20','38292VEMlBV','#node-input-modified-endTime','prop','HasTypeDefinition','__parentNode','browsePath','grey','referenceTypeId','Good','HasSubtype','val','fa-list-alt','Value','nodeId:\x20','suppressed','css','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','opcua','browse\x20path:\x20','verify','prependTo','percentDataBad','baseUrl','red-ui-typedInput-focus','red-ui-typedInput-icon\x20','pageX','each','toggle','Objects','keydown','expandable','#node-input-modified-numValuesPerNode','$combo','indexOf','2830505MfnfGQ','bp_aliased','assign'];_0x4a88=function(){return _0x3bf9ec;};return _0x4a88();}
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxMGRjOTUiLCJfMHg1NTAzYmMiLCJfMHg0NmY0ZjgiLCJfMHhhNWI2NTAiLCJfMHg1NmU0ODkiLCJfMHgzNjdjYWMiLCJfMHg0MmJjMzQiLCJfMHhiMjNlZTMiLCJQcm9taXNlIiwiXzB4M2M3YjdkIiwiXzB4NDQ1NGUyIiwiXzB4MzQ2MjFlIiwiXzB4MTU3Y2E5IiwiXzB4MmQxODFlIiwiXzB4MTZhNDBlIiwiXzB4NGJhZDc2IiwiXzB4MTA2YWQ3IiwiXzB4MjQ1MWQ0IiwiXzB4NGVhZjg1IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MzIwYWI1IiwiXzB4MzNlMTAwIiwiXzB4NGVhZTcyIiwiXzB4YTZmNTIiLCJFcnJvciIsIl8weDI1NTM2MCIsIl8weDVkYzQwZiIsIl8weDJmN2QyNSIsIl8weDVkZDc1YiIsIl8weGE1MjAyNyIsIl8weDU3YmYxNyIsIl8weDQyMWMyZCIsIl8weDExYmE5MCIsIl8weDMxYmQwYiIsIl8weDg0OWI4OCIsIl8weDVlZDkwZiIsIl8weDMzMmE5IiwiXzB4MWY5NjkzIiwiXzB4NzM2ODg2IiwiXzB4Y2M1ZjY3IiwiXzB4NWQwY2RkIiwiXzB4NTNkYTU0IiwiXzB4NDA2NTUwIiwiXzB4M2E2NjA3IiwiXzB4MzlhZmYwIiwiXzB4MTE3YTVkIiwiXzB4NDIyODY2IiwiXzB4MzFlOGY0IiwiZW5kcG9pbnROb2RlIiwiXzB4MTQ3OTBlIiwiZW5kcG9pbnQiLCJfMHg1OGZhNTAiLCJiYXNlVXJsIiwiXzB4MjZmMjk3IiwiXzB4MTdiMTYwIiwiXzB4NTljNDU0IiwiXzB4MjljZTAyIiwiXzB4ZmMzMzFlIiwiXzB4MmE2ZWRiIiwiT2JqZWN0IiwiXzB4NTk4YWM2IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDEyNDRlOSIsIl8weDM5NmQ0ZCIsIl8weDQ3NzhkYiIsIl8weDIxYzM1OCIsIl8weDRjN2NjNSIsIl8weDRmMmIwZCIsIl8weDU0ZmJhOCIsIl8weDM0NGNiOCIsIl8weDJmOWVhMSIsIl8weDM2NzBkZSIsIm5vZGVJZCIsIl8weDE4NjNmNCIsInJvb3ROb2RlSWQiLCJfMHgyNmJlYmYiLCJpc1R5cGUiLCJfMHg0MmIzMjciLCJfMHgxYmNhZjciLCJfMHgzODYzMWUiLCJfMHg1MDJhMTgiLCJfMHgzMmY5MmEiLCJfMHgzMzZkNjAiLCJfMHg1Yjk5YmUiLCJfMHgxOWJkMGIiLCJfMHgzMjA5NDIiLCJfMHgyN2QwOTEiLCJfMHhlNzU4ZTgiLCJfMHg1YjllZTEiLCJfMHg1MzdjMzIiLCJfMHg2MjExMjYiLCJfMHg0ZGQ0NWMiLCJfMHg0MzgwMWEiLCJfMHgyN2VmZGIiLCJfMHgzMGIzMjIiLCJfMHg1N2RmYzYiLCJfMHgyNGE2ZjYiLCJfMHg1MTU0NmEiLCJfMHg0NDRiMTIiLCJfMHg0ZTk0YjEiLCJfMHgzZjliNmUiLCJfMHg1YmJiNzAiLCJfMHhhOTMxZDkiLCJfMHg0OGMxYmEiLCJfMHg1MjlkNzIiLCJfMHg1OTU4ZDciLCJfMHhmZGVhZDMiLCJfMHg1M2IxYWIiLCJfMHgzN2Q0NWMiLCJSRUQiLCJfMHg0ZTgxMjIiLCJfMHgzNDhhYmIiLCJfMHgyMWE0MzYiLCJfMHg0YzBlYWYiLCJfMHgzYTZlNzMiLCJfMHg0YzljNWMiLCJfMHgzMTgzNmEiLCJfMHg1Nzc5ZjQiLCJfMHgxMjk1OTciLCJfMHgxMTk0ZDgiLCJfMHg5Y2NhZWIiLCJfMHgzOTY0ZGIiLCJfMHg0N2E5YjYiLCJfMHg0ODE1ZjQiLCJfMHgxNjE5YzYiLCJqc29uIiwiXzB4NTk2NzU4IiwiZGF0YSIsIl8weDQ4MTA5OSIsIl8weGQ1Yzg4MyIsIl8weDE1OGRkMCIsIl8weDE4MWRhMyIsInNldFRpbWVvdXQiLCJfMHg1N2M3ODIiLCJfMHgyOWEzNDMiLCJfMHg1OTFkNmUiLCJfMHg1MmIyYmEiLCJfMHg1M2U1OGIiLCJfMHgzNTUxYzgiLCJfMHgzYmQwZjgiLCJfMHgzZmM4NGUiLCJfMHgxMzAyYjYiLCJfMHgyZjJlNGIiLCJfMHg2MmZlODEiLCJfMHgyMzc1NGIiLCJfMHhhZTMzMjkiLCJfMHg1NGFmOGEiLCJfMHgyYTg0Y2QiLCJfMHgxNDkyOWEiLCJfMHg1ZGUxMjEiLCJfMHhlODE0ZjciLCJfMHgyMmY4ODUiLCJfMHgxNWUxMGYiLCJfMHgzYzdhM2QiLCIkIiwiXzB4YmE1MzNiIiwiXzB4MTAyYzcxIiwiaWNvbiIsIl8weDJkMjNlNSIsImNvbG9yIiwiXzB4NDA2YzNkIiwiXzB4MzViNmNjIiwiXzB4MWU3MzdkIiwiXzB4MWY0MmI4IiwiXzB4Njg1Y2I0IiwiXzB4OGI5YjM3IiwiXzB4NGMyYzAxIiwiXzB4MTBhMGU1IiwiXzB4MjI4N2E3IiwiXzB4NDQzZDQ5IiwiXzB4MzgxMTZiIiwiXzB4NTQzMGQ2IiwiXzB4M2EwMjgwIiwiXzB4MzE2Y2NkIiwiXzB4NDEzMDM3IiwiXzB4MWNjNTQzIiwiXzB4MWQ2MzQ3IiwiXzB4YzEzZDNmIiwiXzB4NDM0YmUwIiwiXzB4M2QxYzJiIiwiXzB4MWY2ZmVkIiwiXzB4NjA5ZWVjIiwiXzB4MmY5MDVlIiwidW5kZWZpbmVkIiwiXzB4NjAwMTMxIiwiXzB4MWQzMzVhIiwiXzB4NTMzMjVhIiwiXzB4NWI5YjBiIiwiXzB4MzFmYjY2IiwiXzB4NDczNWUzIiwiXzB4MjQzZjY3IiwiXzB4NWEwMWM2IiwiXzB4NDM1NGRlIiwiXzB4MjEyOWI1IiwiXzB4MTUzNTc0IiwiXzB4NDk0YmM0IiwiXzB4NWQ2MzBjIiwiXzB4MmUwZDJlIiwicmVmZXJlbmNlcyIsIl8weDM0MTZkNiIsIl8weDEzNjE5MCIsIl8weDVjOWEyMSIsIl8weDE5M2Y4NSIsIl8weDNkYmQ1ZiIsIl8weDU2ZmQyMCIsIl8weDFlNjhhYyIsIl8weDEwZGZmMiIsIl8weDMxODg3OCIsIl8weDU5OWRlZSIsIl8weDU3YmZiYSIsIl8weDFhMjJmNyIsIl8weDM5YjAxYyIsIl8weDQ5NmQxZCIsIl8weDhmYzE4ZCIsIl8weDU3MWJkNiIsIl8weDRjYzdkNSIsIl8weDk4ZTJhZiIsIl8weDEyNDk5ZSIsIl8weDQ2ZDRiMyIsIl8weDQ1YTRhNSIsIl8weGYzNGFmNCIsIl8weDQyODcyYSIsIl8weDE1ZDczYSIsIl8weDI1NjE0MCIsIl8weDNmY2VkMCIsIl8weDMyYmQ3NSIsIl8weDMzOGNlNiIsIl8weDRmNDIxYyIsIl8weDM4MGI1NyIsImRvY3VtZW50IiwiXzB4NTRiODgwIiwiXzB4MmNmNGFmIiwiXzB4MmVkYTg2IiwiXzB4ZDNjODg0IiwiXzB4MTZjZTU5IiwiXzB4MzM4ZjdmIiwiXzB4MmI2ZDgwIiwiXzB4NWM3MDNhIiwiXzB4MWNhZmZlIiwiXzB4MzFlN2FjIiwiXzB4MjM0MjM0IiwiXzB4ZDdjYzM5IiwiXzB4NDE3YTUzIiwiXzB4NDFmYmFjIiwiXzB4NDNlZjQzIiwiXzB4MTVhMDQ4IiwiXzB4Njc3YTIzIiwiXzB4NDdmZWRlIiwiXzB4NDU1MzI2Iiwid2luZG93IiwiXzB4NDQwMjQyIiwiXzB4NDdlZjM1IiwiXzB4NzgwZDVmIiwiXzB4NWU3OGQwIiwiXzB4M2Q3NTFhIiwiXzB4NDZiNGJmIiwiXzB4NGQ1NzRiIiwiXzB4MTA0NWQ1IiwiXzB4NWEwOTYwIiwiXzB4MTllMjYwIiwiXzB4MmY0NTRiIiwiXzB4YzcxNGJiIiwiXzB4MTNmZjVhIiwiXzB4ODQ2YzI0IiwiXzB4NTIxYzAyIiwiXzB4NDBmNDQwIiwiXzB4MzRmZjgzIiwiXzB4YzE5ZjM4IiwiXzB4MWJmZjIyIiwiXzB4NWRkNjdhIiwiXzB4MjQwYzgxIiwiXzB4MjAxMGRlIiwiXzB4NGI4NDgwIiwiXzB4MzNkYWNmIiwiXzB4NGY3NGQ1IiwiXzB4NTQwOWE5IiwiXzB4MjgwZDIxIiwiXzB4YzhiYzZmIiwiXzB4MzY2NzBjIiwiXzB4MWI5ZGM0IiwiXzB4NTY2N2IzIiwiXzB4NDA4MWM2IiwiXzB4NWEzNTI0IiwiXzB4NWJjOTExIiwiXzB4NTdjYmJjIiwiXzB4MzU3OGFiIiwiXzB4NWM2NzQxIiwiXzB4NWI5NWFlIiwiXzB4NWI5Yjc1IiwiXzB4NTJkNDBkIiwiXzB4NDQ0ZGEzIiwiXzB4M2IwZDdlIiwiXzB4MjQwZmE3IiwiXzB4MTE1NDgwIiwiXzB4MTlkNWQ3IiwiXzB4MTFjZTFhIiwiXzB4MTZkMjExIiwiXzB4MWFhOGU0IiwiXzB4NjZiY2RlIiwiXzB4M2FkYjNhIiwiXzB4MzQzYTU2IiwiXzB4MWU5OGQ2IiwiXzB4M2EyMDA3IiwiXzB4MTEyMjY1IiwiXzB4MzE5MGM5IiwiXzB4MzQwNjMyIiwiXzB4MzA3NWNiIiwiXzB4MTFmNDE1IiwiXzB4MTFiZDJjIiwic2VjdXJpdHlNb2RlIiwiXzB4NGUxYzA2Iiwic2VjdXJpdHlQb2xpY3kiLCJfMHgzMjk1NDEiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4ZTFhM2ZkIiwiY3JlZGVudGlhbHMiLCJfMHgxNDI3NmIiLCJuYW1lc3BhY2VBbGlhc2VzIiwiXzB4NTQ3NmYyIiwiXzB4M2Y2NjIwIiwiXzB4MjBiZjdiIiwiXzB4NDJlNTk1IiwiXzB4MWFmMzFkIiwiXzB4ZjIxMzYyIiwiXzB4NWNjOTRjIiwiXzB4M2U5NDgyIiwiXzB4OWI2NTM3IiwiXzB4MWQzODFjIiwiXzB4NDIwMmNhIiwiXzB4M2FkYzJkIiwiXzB4MWVlOTBmIiwiXzB4MWNiNjliIiwiXzB4MmM1NjA1IiwiXzB4NDA2MzFhIiwiXzB4MWEzNzRmIiwiXzB4M2Q1Njg5IiwiXzB4NWYzZmVmIiwiXzB4MWExNDEzIl0sIm1hcHBpbmdzIjoia3dCQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLHlCQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLGdCQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGdCQUFBLENBQVIsQ0FBZCxDQUFzQ2IsU0FBQSxDQUFNYSxTQUFBLEMsT0FBQSxDQUFOLEUsZ0JBQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsZ0JBQUEsRUFBZ0JILFNBQWhCLENBQXlCQyxTQUFBLEVBQWMsRUFBdkMsQ0FBWixDQUFELEMsTUFBQSxHQUFMLEMsRUFKRyxDLEVBUVgsT0FBT2lCLGVBQVAsRyxnQkFBQSxDQUF3Q0EsZUFBeEMsQ0FBMEQsU0FBVUMsU0FBVixDQUFpQkMsU0FBakIsQ0FBNkJDLFNBQTdCLEMsMkJBQ3RELElBQUlDLFFBQUEsQ0FBSSxJQUFJQyxLQUFKLENBQVVGLFNBQVYsQ0FBUixDLE9BQ09DLFFBQUEsQyxnQkFBQSxFLGdCQUFBLENBQTRCQSxRQUFBLEMsZ0JBQUEsRUFBVUgsU0FBdEMsQ0FBNkNHLFFBQUEsQyxnQkFBQSxFQUFlRixTQUE1RCxDQUF3RUUsUSxFQUZuRixDQUtBLE1BQU1FLFNBQUEsQyxnQkFBTixDQUNNQyxTQUFBLEMsZ0JBRE4sQ0FFTUMsU0FBQSxDLFdBRk4sQ0FHTUMsU0FBQSxDLGdCQUhOLENBSU1DLFNBQUEsQyxnQkFKTixDQUtNQyxTQUFBLEMsV0FMTixDQU1NQyxTQUFBLEMsZ0JBTk4sQ0FRQSxJQUFJQyxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsaUJBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsaUJBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsaUJBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsa0JBSkosQ0FLR0QsU0FBQSxFQUFvQixDQUFBQSxTQUFBLENBQWtCLEVBQWxCLENBTHZCLEdBTUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVVBLFNBQUEsQyxhQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxVQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxNQUFBLEUsSUFBVixFLGtCQVRKLENBVUdELFNBQUEsRUFBYyxDQUFBQSxTQUFBLENBQVksRUFBWixDQVZqQixHQVdBLElBQUlFLFFBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsU0FDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsV0FDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGFBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGVBQ0FBLFNBQUEsQ0FB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QUFZbkwsQ0FBQSxDLHlDQUFBLENBQVosQ0FGUyxDLFNBR3BCLENBQVNtTCxTQUFBLENBQVluTCxDQUFBLEMsZ0JBQUEsQ0FBWixDQUhXLEMsb0JBSXBCLENBQW9CcUwsU0FBQSxDQUFjckwsQ0FBQSxDLGtEQUFBLENBQWQsQ0FKQSxDLGVBS3BCLENBQWVtTCxTQUFBLENBQVluTCxDQUFBLEMsZ0JBQUEsQ0FBWixDQUxLLEMsd0JBTXBCLENBQXdCLEMsK0JBQ3BCLENBQStCQSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLENBRFgsQyxxQkFFcEIsQ0FBcUJBLENBQUEsQyxnQkFBQSxFLE1BQUEsRSxnQkFBQSxDQUZELEMsZ0JBR3BCLENBQWdCcUwsU0FBQSxDQUFjckwsQ0FBQSxDLGdCQUFBLENBQWQsQ0FISSxDLGlCQUlwQixDQUFpQnFMLFNBQUEsQ0FBY3JMLENBQUEsQyxnQkFBQSxDQUFkLENBSkcsQyx3QkFLcEIsQ0FBd0JBLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FMSixDQU5KLENBQXhCLENBY0EsTUFsQ1IsQyxDQXBHNEMsQ0FBcEQsQyxFQW5oQ0osRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIkRhdGFUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS10ZXh0LXdpZHRoXCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKF9hLCBub2RlSWRfMSwgdGVtcGxhdGVfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMSwgdGVtcGxhdGVfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnJvd3NlIGZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3Qgd2Fsa0JhY2t3YXJkID0gKF9hLCBfYikgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBfYl0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgeyBub2RlSWQsIHJvb3ROb2RlSWQsIGlzVHlwZSB9KSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgY2hvb3NlTm9kZUlkID0gKGRhdGEsIG1vZGUpID0+IHtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzQ29kZSAhPT0gXCJHb29kXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnJlcXVlc3RlZE5vZGVJZDtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuYnBfaW5kZXhlZDtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmJwX2FsaWFzZWQgfHwgZGF0YS5icF9pbmRleGVkO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWRfYWxpYXNlZCB8fCBkYXRhLm5vZGVJZF9uc3U7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkX25zdTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBtYWtlVG9vbHRpcCA9IChkYXRhKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgIT09IFwiR29vZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gYHN0YXR1c0NvZGU6ICR7ZGF0YS5zdGF0dXNDb2RlfWA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgc3RyID0gW107XG4gICAgICAgICAgICBzdHIucHVzaChgbm9kZUlkOiAke2RhdGEubm9kZUlkfWApO1xuICAgICAgICAgICAgc3RyLnB1c2goYGJyb3dzZSBwYXRoOiAke2RhdGEuYnBfaW5kZXhlZH1gKTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBub2RlIGNsYXNzOiAke05vZGVDbGFzc1tkYXRhLm5vZGVDbGFzc119YCk7XG4gICAgICAgICAgICBpZiAoZGF0YS5ub2RlSWRfbnN1KSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYG5zdSBub2RlSWQ6ICR7ZGF0YS5ub2RlSWRfbnN1fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEubm9kZUlkX2FsaWFzZWQpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgYWxpYXNlZCBOb2RlSWQ6ICR7ZGF0YS5ub2RlSWRfYWxpYXNlZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmJwX2luZGV4ZWQpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgYWxpYXNlZCBicm93c2VQYXRoOiAke2RhdGEuYnBfYWxpYXNlZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdHIuam9pbihcIlxcblwiKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgZnVuY3Rpb24gZmlndXJlT3V0TW9kZShlbmhhbmNlZE5vZGVJZCkge1xuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL15uc3U9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5zdU5vZGVJRFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihucz0uKjspPyhpfGJ8c3xnKT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibm9kZUlkXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9ebnNhPS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJhbGlhc2VkTm9kZUlkXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKFxcL3xcXC4pWzAtOV0rOi8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJicm93c2VQYXRoXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKFxcL3xcXC4pLio6LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmaWd1cmVPdXRNZW5VSXRlbVZhbHVlKHN0cikge1xuICAgICAgICBjb25zdCBtb2RlID0gZmlndXJlT3V0TW9kZShzdHIpO1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5hXCI7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnN1XCI7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImJcIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFiXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcInRcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB0b01vZGUodikge1xuICAgICAgICBsZXQgbW9kZTtcbiAgICAgICAgc3dpdGNoICh2KSB7XG4gICAgICAgICAgICBjYXNlIFwiblwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5vZGVJZFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm5hXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYWxpYXNlZE5vZGVJZFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm5zdVwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5zdU5vZGVJRFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImJcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJicm93c2VQYXRoXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiYWJcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJhbGlhc2VkQnJvd3NlUGF0aFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2RlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmcm9tTW9kZShtb2RlKSB7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibmFcIjtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuc3VcIjtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYlwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYWJcIjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IF9jYWxsQ2hlY2tOb2RlSWQgPSAoX2EsIG5vZGVJZF8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZUlkID0gZW5kcG9pbnROb2RlLmlkO1xuICAgICAgICBjb25zdCBuID0gUkVELm5vZGVzLm5vZGUoZUlkKTtcbiAgICAgICAgY29uc29sZS5sb2cobi5uYW1lc3BhY2VBbGlhc2VzKTtcbiAgICAgICAgbi5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROb2RlLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIHsganNvbiwgZGF0YSB9O1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKF9hLCBtb2RlXzEsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBtb2RlXzEsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbW9kZSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3QgZW5oYW5jZWROb2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCB7IGpzb24sIGRhdGEgfSA9IHlpZWxkIF9jYWxsQ2hlY2tOb2RlSWQoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIGVuaGFuY2VkTm9kZUlkKTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgZW5oYW5jZWROb2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBtYWtlVG9vbHRpcChqc29uKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LmF0dHIoXCJ0aXRsZVwiLCB0b29sdGlwKTtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVJZCA9IGNob29zZU5vZGVJZChqc29uLCBtb2RlKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChzZWxlY3RlZE5vZGVJZCk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke2VuaGFuY2VkTm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSB8fCAhcmVmZXJlbmNlLm5vZGVJZCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSBgKCR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfSkgJHsoKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lKSB8fCAoKF9kID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QudGV4dCkgfHwgXCJcIn1gO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaSBrZXk9XCIke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX1cIn0+PHNwYW4gY2xhc3M9XCJ0cmVlLXRleHRcIiB0aXRsZT0ke3RpdGxlfT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTwvc3Bhbj48dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBmaW5kRWxlbWVudCA9IChub2RlSWQsICR0cmVlKSA9PiB7XG4gICAgICAgIHJldHVybiAkdHJlZS5maW5kKGBsaVtrZXk9XCIke25vZGVJZH1cIl1gKTtcbiAgICB9O1xuICAgIGNvbnN0IHNlbGVjdFNpbmdsZSA9ICh0aGF0LCAkbGkpID0+IHtcbiAgICAgICAgdGhhdC4kdHJlZS5maW5kKFwibGkgPiAudHJlZS10ZXh0XCIpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIC8vIGNsZWFyIGFsbCBzZWxlY3RlZCBpdGVtc1xuICAgICAgICAkbGkuZmluZChcIi50cmVlLXRleHQ6Zmlyc3RcIikuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICB9O1xuICAgIGNvbnN0IGF1dG9FeHBhbmQgPSAodGhhdCwgYnJvd3NlUGF0aCwgJHRyZWUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBleHBhbmQgdGhlIHRyZWUgdG8gc2hvdyB0aGUgbm9kZUlkXG4gICAgICAgIGxldCAkY3VycmVudCA9ICR0cmVlLmNoaWxkcmVuKFwiOmZpcnN0XCIpO1xuICAgICAgICBicm93c2VQYXRoLnJlbGF0aXZlUGF0aC5lbGVtZW50cyB8fCBbXTtcbiAgICAgICAgY29uc3Qgbm9kZUlkcyA9IGJyb3dzZVBhdGgubm9kZUlkcyB8fCBbXTtcbiAgICAgICAgaWYgKG5vZGVJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBuIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgICAgIGlmICgkY3VycmVudC5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGV4cGFuZCBhbmQgc2VsZWN0IHRoZSByaWdodCBlbGVtZW50XG4gICAgICAgICAgICAgICAgeWllbGQgX2V4cGFuZExpKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gZmluZEVsZW1lbnQobiwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKCRlbGVtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRjdXJyZW50ID0gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgc2Nyb2xsVG9MaSh0aGF0LiRkcm9wZG93biwgJGN1cnJlbnQpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHNjcm9sbFRvTGkoJGNvbnRhaW5lciwgJHRhcmdldExpKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIHRhcmdldCBpdGVtIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgY29uc3QgbGlQb3MgPSAkdGFyZ2V0TGkucG9zaXRpb24oKS50b3A7XG4gICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBjb250YWluZXJTY3JvbGxUb3AgPSAkY29udGFpbmVyLnNjcm9sbFRvcCgpO1xuICAgICAgICBpZiAoY29udGFpbmVyU2Nyb2xsVG9wID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gdG8gc2Nyb2xsIHRvIChjdXJyZW50IHNjcm9sbCArIGl0ZW0ncyBwb3NpdGlvbilcbiAgICAgICAgLy8gQWRqdXN0IHRoaXMgY2FsY3VsYXRpb24gYmFzZWQgb24geW91ciBuZWVkc1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IGNvbnRhaW5lclNjcm9sbFRvcCArIGxpUG9zIC0gJGNvbnRhaW5lci5oZWlnaHQoKSAvIDIgKyAkdGFyZ2V0TGkuaGVpZ2h0KCkgLyAyO1xuICAgICAgICAvLyBTY3JvbGwgdGhlIGNvbnRhaW5lciB0byBlbnN1cmUgdGhlIGl0ZW0gaXMgdmlzaWJsZVxuICAgICAgICAkY29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxUbyxcbiAgICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkdXJhdGlvbiAoNTAwbXMpIGFzIG5lZWRlZFxuICAgIH1cbiAgICBjb25zdCByZWFjaFNlbGVjdGlvbiA9ICh0aGF0LCBwYXJlbnROb2RlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gdGhhdC4kaW5wdXQudmFsKCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICByb290Tm9kZUlkOiBwYXJlbnROb2RlLm5vZGVJZCxcbiAgICAgICAgICAgIGlzVHlwZTogdGhhdC5vcHRpb25zLmlzVHlwZVJlZiB8fCBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICBjb25zdCBicm93c2VQYXRoID0geWllbGQgd2Fsa0JhY2t3YXJkKGRhdGEsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWJyb3dzZVBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBhdXRvRXhwYW5kKHRoYXQsIGJyb3dzZVBhdGgsIHRoYXQuJHRyZWUpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIHNvcnQgcmVmZXJlbmNlICAgYnkgYnJvd3NlTmFtZVxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXMuc29ydCgoYSwgYikgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKCgoX2EgPSBhLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uYW1lKSB8fCBcIlwiKS5sb2NhbGVDb21wYXJlKCgoX2IgPSBiLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCBcIlwiKTsgfSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0UGFyZW50Tm9kZSA9IHtcbiAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+IGRlZmF1bHRQYXJlbnROb2RlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Ll9fcGFyZW50Tm9kZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGUgfHwgZGVmYXVsdFBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkobW9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgbW9kZSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pLnRoZW4oKHN1Y2Nlc3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcImlucHV0LWVycm9yXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8ucmVtb3ZlQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9oaWRlTWVudShtZW51KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiKTtcbiAgICAgICAgICAgICAgICBtZW51LmhpZGUoKTtcbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKG1lbnUub3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5maW5kKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQucHVzaCgkKHRoaXMpLmRhdGEoXCJ2YWx1ZVwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBtZW51LmNhbGxiYWNrKHNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoYXQuJGVsZW1lbnREaXYuaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIC8veHggfSBlbHNlIGlmICh0aGlzLiRvcHRpb25TZWxlY3RUcmlnZ2VyLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgLy94eCAgICAgdGhhdC4kb3B0aW9uU2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZU1lbnUobWVudU9wdGlvbnMsIG9wdHMsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbnUgPSAkKFwiPGRpdj5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS10eXBlZElucHV0LW9wdGlvbnMgc3RlcmZpdmUtb25saW5lLW1lbnVcIik7XG4gICAgICAgICAgICAgICAgbWVudS5vcHRzID0gb3B0cztcbiAgICAgICAgICAgICAgICBtZW51LmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICAgICAgbWVudU9wdGlvbnMuZm9yRWFjaCgob3B0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHQgPSB7IHZhbHVlOiBvcHQsIGxhYmVsOiBvcHQgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgb3AgPSAkKCc8YSBocmVmPVwiI1wiPjwvYT4nKS5hdHRyKFwidmFsdWVcIiwgb3B0LnZhbHVlKS5hcHBlbmRUbyhtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQubGFiZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQudGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnByb3AoXCJ0aXRsZVwiLCBvcHQudGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5pY29uLmluZGV4T2YoXCI8XCIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChvcHQuaWNvbikucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wdC5pY29uLmluZGV4T2YoXCIvXCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCI8aT5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJyZWQtdWktdHlwZWRJbnB1dC1pY29uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBcIm1hc2staW1hZ2U6IHVybChcIiArIG9wdC5pY29uICsgXCIpOyAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcIiArIG9wdC5pY29uICsgXCIpO1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHsgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvbiBcIiArIG9wdC5pY29uIH0pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5jc3MoeyBwYWRkaW5nTGVmdDogXCIxOHB4XCIgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHQuaWNvbiAmJiAhb3B0LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC50ZXh0KG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIGNiO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2IgPSAkKCc8aW5wdXQgdHlwZT1cImNoZWNrYm94XCI+JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3NzKFwicG9pbnRlci1ldmVudHNcIiwgXCJub25lXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRhdGEoXCJ2YWx1ZVwiLCBvcHQudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByZXBlbmRUbyhvcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAub24oXCJtb3VzZWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb3Aub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi5wcm9wKFwiY2hlY2tlZFwiLCAhY2IucHJvcChcImNoZWNrZWRcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUub24oXCJrZXlkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBET1dOXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKFwiOmZvY3VzXCIpLm5leHQoKS50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleUNvZGUgPT09IDM4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVQXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKFwiOmZvY3VzXCIpLnByZXYoKS50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBFU0NBUEVcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBtZW51O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2FybUNsaWNrOiBmYWxzZSxcbiAgICAgICAgICAgIF9zaG93TWVudShtZW51LCByZWxhdGl2ZVRvKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzYXJtQ2xpY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhcm1DbGljayA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgcG9zID0gcmVsYXRpdmVUby5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gcmVsYXRpdmVUby5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgbWVudUhlaWdodCA9IG1lbnUuaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIHRvcCA9IGhlaWdodCArIHBvcy50b3A7XG4gICAgICAgICAgICAgICAgaWYgKHRvcCArIG1lbnVIZWlnaHQgLSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSA+ICQod2luZG93KS5oZWlnaHQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0b3AgLT0gdG9wICsgbWVudUhlaWdodCAtICQod2luZG93KS5oZWlnaHQoKSArIDU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuaGVpZ2h0KG1lbnVIZWlnaHQgKyB0b3ApO1xuICAgICAgICAgICAgICAgICAgICB0b3AgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdG9wICsgXCJweFwiLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBwb3MubGVmdCArIFwicHhcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51LnNsaWRlRG93bigxMDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlbGF5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtY2xvc2UtcHJvcGVydHktc2VsZWN0XCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdChtZW51KS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKGV2ZW50LnRhcmdldCkuY2xvc2VzdChyZWxhdGl2ZVRvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmRpc2FybUNsaWNrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2hvd1R5cGVNZW51KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dNZW51KHRoYXQuJG1lbnUsIHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IHRoYXQuc2VsZWN0ZWRNZW51SXRlbTtcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0aGF0LiRtZW51LmZpbmQoXCJbdmFsdWU9J1wiICsgdHlwZSArIFwiJ1wiKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH0sIDEyMCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luaXRNZW51KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIuYXR0cihcInRhYmluZGV4XCIsIC0xKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWZvY3VzLWJsb2NrXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoYXQuJG1lbnUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kbWVudS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZmEtaWQtY2FyZFxuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVMaXN0ID0gW1xuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcInRleHRcIiwgdmFsdWU6IFwidFwiLCB0aXRsZTogXCJWYWx1ZSBpcyBub3QgdmVyaWZpZWRcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtZm9udFwiL2k+ICcgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwibXNnLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwibXNnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJub2RlIGlkIG9yICBicm93c2UgcGF0aCBjb21lcyBmcm9tIGluamVjdGVkIG1zZyBwYXJhbWV0ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWVudmVsb3BlLW9wZW4tb1wiLz4nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIk5vZGVJZFwiLCB2YWx1ZTogXCJuXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLXRhZ1wiLz4xICZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiQWxpYXNlZCBOb2RlSWRcIiwgdmFsdWU6IFwibmFcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtYm9va21hcmtcIi8+Jm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWQgd2l0aCBuYW1lc3BhY2UgVXJuXCIsIHZhbHVlOiBcIm5zdVwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1pZC1jYXJkXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiQnJvd3NlUGF0aFwiLCB2YWx1ZTogXCJiXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLXRhZ1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiQWxpYXNlZCBCcm93c2UgUGF0aFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiYWJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPjxpIGNsYXNzPVwiZmEgZmEtZmlnaHRlci1qZXRcIi8+Jm5ic3A7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBmaWd1cmVPdXRNZW5VSXRlbVZhbHVlKHRoYXQuJGlucHV0LnZhbCgpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlID0gdHlwZUxpc3QuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gYSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwuZW1wdHkoKS5hcHBlbmQoYDxzcGFuIHRpdGxlPSR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS50aXRsZSkgfHwgXCJcIn0+Jm5ic3A7ICR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5pY29uKSB8fCBcIlwifTwvc3Bhbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSBhO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51ID0gdGhpcy5fY3JlYXRlTWVudSh0eXBlTGlzdCwge30sICh2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB0b01vZGUodik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbiBNZW51IHNlbGVjdGVkICFcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gdHlwZUxpc3QuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gdik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHY7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51LmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLnNob3coKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb2RlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHJldHVybiB0b01vZGUodGhhdC5zZWxlY3RlZE1lbnVJdGVtKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRNb2RlKG1vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gZnJvbU1vZGUobW9kZSk7XG4gICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmNzcyhcImJvcmRlclwiLCBcIm5vbmVcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRlbGVtZW50RGl2ID0gdGhhdC4kaW5wdXQud3JhcChcIjxkaXY+XCIpLnBhcmVudCgpLmFkZENsYXNzKFwibWFpbi13cmFwcGVyXCIpO1xuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gQ29tYm8gYnJvd3NlclxuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRjb21iby5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWlucHV0LXdyYXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBhZGQgYnV0dG9uIG9uIHRoZSByaWdodCBzaWRlXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB0b2dnbGVUcmVlQnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24gdGl0bGU9XCJvcGVuIE9QQ1VBIEFkZHJlc3NTcGFjZSBCcm93c2VyXCI+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmFmdGVyKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB2ZXJpZnlCdG5cbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwidmVyaWZ5IG5vZGVJZCBvciBicm93c2VQYXRoXCI+PGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmFmdGVyKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KG1vZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplSW5wdXQgPSAoaW5wdXQpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbkRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBqc29uIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKGNvbm5lY3Rpb25EYXRhLCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVJZCA9IGNob29zZU5vZGVJZChqc29uLCBtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChzZWxlY3RlZE5vZGVJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAgLy8gY3JlYXRlIHRoZSBwcmVwZW5kZWQgYnV0dG9uXG4gICAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdCA9ICQoXCI8ZGl2PlwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYmVmb3JlKHRoYXQuJHVpU2VsZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlciA9ICQoJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiPjwvYnV0dG9uPicpLnByZXBlbmRUbyh0aGF0LiR1aVNlbGVjdCk7XG4gICAgICAgICAgICAgICAgICAgICQoJzxpIGNsYXNzPVwicmVkLXVpLXR5cGVkSW5wdXQtaWNvbiBmYSBmYS1jYXJldC1kb3duXCI+PC9pPicpLnRvZ2dsZSh0cnVlKS5hcHBlbmRUbyh0aGF0LiRzZWxlY3RUcmlnZ2VyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2hvd1R5cGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJrZXlkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEb3duXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2hvd1R5cGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJmb2N1c1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwiYmx1clwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXIgb3B0ID0gdGhhdC50eXBlTWFwW3RoYXQucHJvcGVydHlUeXBlXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIChvcHQuaGFzVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5yZW1vdmVDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwgPSAkKCc8c3BhbiBjbGFzcz1cInJlZC11aS10eXBlZElucHV0LXR5cGUtbGFiZWxcIj48L3NwYW4+JykuYXBwZW5kVG8odGhhdC4kc2VsZWN0VHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2luaXRNZW51KCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB0ZW1wb3JhdHkgaW5mbyBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIGRyb3AgZG93biB0cmVlXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpLmFwcGVuZFRvKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGRyb3Bkb3duLnNob3coKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IGlzT25MZWZ0U2l6ZSA9ICgkbGksIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJGxpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlRXhwYW5zaW9uID0gKCRsaSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2V4cGFuZExpKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJkYmxjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gXCJub2RlSWRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnNldE1vZGUobW9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVJbnB1dCh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIGNvbnRhaW5pbmc6XG4gICAgICogIC0gdGhlIGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LFxuICAgICAqICAtIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICogIC0gY3JlZGVudGlhbHNcbiAgICAgKiAgLSBuYW1lc3BhY2VBbGlhc2VzXG4gICAgICpcbiAgICAgKiBleHRyYWN0ZWQgZnJvbSB0aGUgdWkgd2lkZ2V0ICNub2RlLWlucHV0LWVuZHBvaW50XG4gICAgICovXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscywgbmFtZXNwYWNlQWxpYXNlcyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBlbmRwb2ludE5yLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHsgbmFtZXNwYWNlQWxpYXNlcywgaWQ6IGVuZHBvaW50SWQgfSwgZW5kcG9pbnROcik7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUhpc3RvcnlSZWFkXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJyZWFkLWhpc3RvcnlcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgaGlzdG9yeVJlYWRQYXJhbToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicmF3XCIsXG4gICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IFwiMW0gYWdvXCIsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogXCIxMW0gYWdvXCIsXG4gICAgICAgICAgICAgICAgICAgIG51bVZhbHVlc1Blck5vZGU6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIHJlYWQgSGlzdG9yeVxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG91dHB1dFR5cGU6IHsgdmFsdWU6IFwiVmFsdWVcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIENsaWVudCBIaXN0b3J5UmVhZFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0udHlwZSk7XG4gICAgICAgICAgICBzd2l0Y2ggKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInJhd1wiOlxuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmF3LXN0YXJ0VGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnN0YXJ0VGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yYXctZW5kVGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmVuZFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmF3LW51bVZhbHVlc1Blck5vZGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5udW1WYWx1ZXNQZXJOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0ucmV0dXJuQm91bmRzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm1vZGlmaWVkXCI6XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtZW5kVGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmVuZFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtbnVtVmFsdWVzUGVyTm9kZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLm51bVZhbHVlc1Blck5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5yZXR1cm5Cb3VuZHMpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicHJvY2Vzc2VkLWRldGFpbHNcIjpcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24gPSBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbiB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLXN0YXJ0VGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnN0YXJ0VGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1lbmRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uZW5kVGltZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1wcm9jZXNzaW5nSW50ZXJ2YWxcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5wcm9jZXNzaW5nSW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlVHlwZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0c1wiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi51c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0cyk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXRyZWF0VW5jZXJ0YWluQXNCYWRcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udHJlYXRVbmNlcnRhaW5Bc0JhZCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhQmFkXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi5wZXJjZW50RGF0YUJhZCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhR29vZFwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24ucGVyY2VudERhdGFHb29kKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2xvcGVkRXh0cmFwb2xhdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0uYWdncmVnYXRlQ29uZmlndXJhdGlvbi51c2VTbG9wZWRFeHRyYXBvbGF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGFkdmFuY2VkIGNvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVBbGxTZWN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tcmF3XCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLW1vZGlmaWVkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLXByb2Nlc3NlZC1kZXRhaWxzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLWF0LXRpbWVcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tYW5ub3RhdGlvbi1kYXRhXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLWV2ZW50XCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gdG9nZ2xlU2VjdGlvbnMoKSB7XG4gICAgICAgICAgICAgICAgICAgIGhpZGVBbGxTZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZFZhbHVlID0gJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbGVydChcInRvZ2dsZVNlY3Rpb25zIFwiICsgc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1cIiArIHNlbGVjdGVkVmFsdWUpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLm9uKFwiY2hhbmdlXCIsIHRvZ2dsZVNlY3Rpb25zKTtcbiAgICAgICAgICAgICAgICB0b2dnbGVTZWN0aW9ucygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBc1RleHQgPSAoYSkgPT4gKGEudmFsKCkgPT0gdW5kZWZpbmVkID8gXCJcIiA6IGEudmFsKCkudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzTnVtYmVyID0gKGEpID0+IChhLnZhbCgpID09IHVuZGVmaW5lZCA/IDAgOiBhLnZhbCgpKTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSAkKFwiI3NlbGVjdC1oaXN0b3J5LXR5cGVcIikudmFsKCk7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwicmF3XCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeVJlYWRQYXJhbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicmF3XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1yYXctc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1yYXctZW5kVGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBudW1WYWx1ZXNQZXJOb2RlOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1yYXctbnVtVmFsdWVzUGVyTm9kZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5Cb3VuZHM6ICQoXCIjbm9kZS1pbnB1dC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtb2RpZmllZFwiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlSZWFkUGFyYW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIm1vZGlmaWVkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1zdGFydFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLWVuZFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtVmFsdWVzUGVyTm9kZTogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtbnVtVmFsdWVzUGVyTm9kZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5Cb3VuZHM6ICQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJwcm9jZXNzZWQtZGV0YWlsc1wiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlSZWFkUGFyYW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInByb2Nlc3NlZC1kZXRhaWxzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1zdGFydFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWVuZFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZ0ludGVydmFsOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1wcm9jZXNzaW5nSW50ZXJ2YWxcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlVHlwZTogdmFsdWVBc1RleHQoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZVR5cGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRlQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVNlcnZlckNhcGFiaWxpdGllc0RlZmF1bHRzOiAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0c1wiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVhdFVuY2VydGFpbkFzQmFkOiAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi10cmVhdFVuY2VydGFpbkFzQmFkXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnREYXRhQmFkOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhQmFkXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50RGF0YUdvb2Q6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tcGVyY2VudERhdGFHb29kXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTbG9wZWRFeHRyYXBvbGF0aW9uOiAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi11c2VTbG9wZWRFeHRyYXBvbGF0aW9uXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
7
+ function _0x2ddc(_0x5a395f,_0x5e2857){const _0x4d05c1=_0x4d05();return _0x2ddc=function(_0x2ddcc2,_0x5db674){_0x2ddcc2=_0x2ddcc2-0x1b4;let _0x34d71e=_0x4d05c1[_0x2ddcc2];return _0x34d71e;},_0x2ddc(_0x5a395f,_0x5e2857);}function _0x4d05(){const _0x8f11b4=['fetched','hide','>&nbsp;\x20','sort','#node-input-processed-details-startTime','VariableType','TypeDefinition','_createMenu','OpcUa-Client2-HistoryRead','appendTo','toggleClass','ObjectType','><i\x20class=\x22fa\x20','show','trigger','mask-image:\x20url(','node','li[key=\x22','assign','$input','requestedNodeId','nodeBrowser','apply','error','$tree','percentDataGood','$selectLabel','nodes','$menu','#node-input-endpoint','Forward','#node-input-modified-endTime','NodeId','ns=0;i=46','nodeId','nodeId_aliased','sterfive-dropdown','multiple','/browse','mode','currentParent','mousedown.red-ui-typedInput-close-property-select','sterfive-combo-box','rgba(61,\x2060,\x204,\x200.525)','browse\x20path:\x20','blur','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','callback','182938rhrPyU','then','disarmClick','$inputGroup','Method','toggle','.spinner','msg','#node-input-processed-details-aggregateConfiguration-percentDataBad','fa-object-group','border','element','forEach','click','2000520UmnJwF','/checkNodeId','#node-input-modified-returnBounds','7RVdYee','numValuesPerNode','indexOf','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','statusCode','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','Aliased\x20Browse\x20Path','2572TNtKnS','data','Aliased\x20NodeId','11m\x20ago','processed-details','suppressed','nsu\x20nodeId:\x20','</span>','namespaceAliases','#section-annotation-data','BrowseName','aliasedBrowsePath','keydown','checked','19560gBoFwp','find',');\x20-webkit-mask-image:\x20url(','sterfive.nodeBrowser','</span><ul></ul></li>','stringify','2646VMoDcm','prependTo','<span\x20title=','modified','length','ns=0;i=35','addClass','expanded','$combo','fa-sliders','offset','$elementDiv','<a\x20href=\x22#\x22></a>','HasTypeDefinition','hasClass','parentNode','<div/>','#node-input-returnBounds','HasSubtype','$selectTrigger','endTime','NodeId\x20with\x20namespace\x20Urn','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','main-wrapper','mousedown','<div\x20class=\x22spinner\x22></div>','red-ui-typedInput-focus','references','reset','remove','registerType','toString','statusText','HasComponent','Both','scrollTop','stopPropagation','application/json','node\x20class:\x20','#select-history-type','icon','ReferenceType','raw','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20&nbsp;\x20','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','slideDown','msg.','match','DodgerBlue','title','none','1m\x20ago','removeClass','Inverse','input[type=\x22checkbox\x22]','#node-input-processed-details-aggregateType','isTypeRef','\x22\x20style=\x22color:','percentDataBad','CadetBlue','treatUncertainAsBad','aliased\x20NodeId:\x20','</li>','name','call','<i\x20class=\x22fa\x20fa-id-card\x22/>&nbsp;\x20','children','verify','throw','type','top','resolveParentNode','DataType','css','$uiSelect','#section-event','/opcua-for-node-red','fa-text-width','filter','push','ns=0;i=40','processingInterval','left','<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;','endpoint','ns=0;i=85','/walk-backward','keyCode','View','value','function','ns=0;i=47','aggregateConfiguration','message','Good','historyReadParam','<ul\x20class=\x22sterfive-tree\x22></ul>','Object','#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation','position','fa-cog','focus','text','$info','Value\x20is\x20not\x20verified','endpointNode','#node-input-processed-details-aggregateConfiguration-treatUncertainAsBad','Objects','relativePath','browseName','fa-list-alt','#section-at-time','selectedMenuItem','nsuNodeID','err','#node-input-raw-startTime','empty','pointer-events','animate','preventDefault','widget','json','red-ui-typedInput-icon\x20',':visible','replaceWith','#node-input-raw-numValuesPerNode','3534fjneSu','closest','DarkOrange','body','#node-input-processed-details-processingInterval','isSelectable','startTime','displayName','status','$toggleTreeBtn','val','_delay','#node-input-modified-numValuesPerNode','$dropdown','failure','bp_aliased','nodeId:\x20','#node-input-nodeId','Value','Unspecified','bp_indexed','selected','aggregateType','log','referenceTypeId','../../icons/opcuanodeLogo.png','__parentNode','Variable','target','returnBounds','386748NNXqKP','join','fetching\x20failed\x20with\x20error','done','OPCUA\x20Client\x20HistoryRead','red-ui-typedInput-icon','change','expandable','height','#node-input-raw-endTime','#node-input-modified-startTime','append','nodeId_nsu','attr','aliasedNodeId','#section-processed-details',':focus','next','read-history','SteelBlue','DisplayName','dblclick','aliased\x20browsePath:\x20','SuppressedError','ns=0;i=61','pageY','useServerCapabilitiesDefaults','<div>','438440mIbpsx','_hideMenu','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','ns=0;i=34','browsePath','NodeClass','label','<li\x20key=\x22','each','Organizes','_showTypeMenu','$verifyBtn','#node-input-processed-details-aggregateConfiguration-percentDataGood','expandable\x20expanded','BrowsePath','parent','#section-','SandyBrown','browseResult','prop','opcua','#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults','#node-input-processed-details-endTime','loading','reference','options','<i\x20class=\x22fa\x20fa-bookmark\x22/>&nbsp;\x20','nsu','nodeClass','[value=\x27','tabindex','i=61','auto','238516YeslQM','HasChild'];_0x4d05=function(){return _0x8f11b4;};return _0x4d05();}(function(_0x47111e,_0x4ad601){const _0x1b6aee=_0x2ddc,_0x2b0fd5=_0x47111e();while(!![]){try{const _0x2a8396=-parseInt(_0x1b6aee(0x29d))/0x1+parseInt(_0x1b6aee(0x2cf))/0x2+parseInt(_0x1b6aee(0x242))/0x3*(parseInt(_0x1b6aee(0x2e7))/0x4)+parseInt(_0x1b6aee(0x2dd))/0x5+parseInt(_0x1b6aee(0x260))/0x6*(parseInt(_0x1b6aee(0x2e0))/0x7)+-parseInt(_0x1b6aee(0x1bd))/0x8*(parseInt(_0x1b6aee(0x1c3))/0x9)+parseInt(_0x1b6aee(0x27c))/0xa;if(_0x2a8396===_0x4ad601)break;else _0x2b0fd5['push'](_0x2b0fd5['shift']());}catch(_0x1ca813){_0x2b0fd5['push'](_0x2b0fd5['shift']());}}}(_0x4d05,0x61a6f),(function(){'use strict';const _0x4d4009=_0x2ddc;function _0x48d472(_0x5bb14e,_0x55ed4f,_0x25823c,_0x2aa884){function _0x22e6a4(_0x479d05){return _0x479d05 instanceof _0x25823c?_0x479d05:new _0x25823c(function(_0x5220c8){_0x5220c8(_0x479d05);});}return new(_0x25823c||(_0x25823c=Promise))(function(_0x14fdcc,_0x177711){const _0x145943=_0x2ddc;function _0x4056f8(_0x387ba0){const _0x30ce9a=_0x2ddc;try{_0x5e06f3(_0x2aa884[_0x30ce9a(0x271)](_0x387ba0));}catch(_0x59e6fb){_0x177711(_0x59e6fb);}}function _0x44c086(_0x464b76){const _0x5cf1c0=_0x2ddc;try{_0x5e06f3(_0x2aa884[_0x5cf1c0(0x208)](_0x464b76));}catch(_0x6bba1e){_0x177711(_0x6bba1e);}}function _0x5e06f3(_0x539dbe){const _0x527012=_0x2ddc;_0x539dbe[_0x527012(0x263)]?_0x14fdcc(_0x539dbe[_0x527012(0x21d)]):_0x22e6a4(_0x539dbe['value'])[_0x527012(0x2d0)](_0x4056f8,_0x44c086);}_0x5e06f3((_0x2aa884=_0x2aa884[_0x145943(0x2b5)](_0x5bb14e,_0x55ed4f||[]))[_0x145943(0x271)]());});}typeof SuppressedError===_0x4d4009(0x21e)?SuppressedError:function(_0x57c236,_0x1b131e,_0x15f68c){const _0x2e15ac=_0x4d4009;var _0x2ed3d8=new Error(_0x15f68c);return _0x2ed3d8[_0x2e15ac(0x203)]=_0x2e15ac(0x277),_0x2ed3d8[_0x2e15ac(0x2b6)]=_0x57c236,_0x2ed3d8[_0x2e15ac(0x1b4)]=_0x1b131e,_0x2ed3d8;};const _0x347e6a=_0x4d4009(0x1c8),_0x3713b2=_0x4d4009(0x278),_0x113f75=_0x4d4009(0x21f),_0x1c1919=_0x4d4009(0x2c0),_0x557f33=_0x4d4009(0x27f),_0x4c1ebf='ns=0;i=45',_0x5ab642=_0x4d4009(0x214);var _0x594c24;(function(_0x50fcaa){const _0x544851=_0x4d4009;_0x50fcaa[_0x50fcaa[_0x544851(0x2bd)]=0x0]='Forward',_0x50fcaa[_0x50fcaa[_0x544851(0x1f9)]=0x1]=_0x544851(0x1f9),_0x50fcaa[_0x50fcaa[_0x544851(0x1e6)]=0x2]=_0x544851(0x1e6),_0x50fcaa[_0x50fcaa['Invalid']=0x3]='Invalid';}(_0x594c24||(_0x594c24={})));var _0x181959;(function(_0x46f842){const _0x2799f6=_0x4d4009;_0x46f842[_0x46f842['Unspecified']=0x0]=_0x2799f6(0x255),_0x46f842[_0x46f842[_0x2799f6(0x225)]=0x1]=_0x2799f6(0x225),_0x46f842[_0x46f842[_0x2799f6(0x25d)]=0x2]=_0x2799f6(0x25d),_0x46f842[_0x46f842[_0x2799f6(0x2d3)]=0x4]=_0x2799f6(0x2d3),_0x46f842[_0x46f842['ObjectType']=0x8]='ObjectType',_0x46f842[_0x46f842[_0x2799f6(0x2a4)]=0x10]=_0x2799f6(0x2a4),_0x46f842[_0x46f842[_0x2799f6(0x1ed)]=0x20]=_0x2799f6(0x1ed),_0x46f842[_0x46f842[_0x2799f6(0x20c)]=0x40]=_0x2799f6(0x20c),_0x46f842[_0x46f842['View']=0x80]=_0x2799f6(0x21c);}(_0x181959||(_0x181959={})));var _0x16c52b;(function(_0x2afa87){const _0x1bfeba=_0x4d4009;_0x2afa87[_0x2afa87[_0x1bfeba(0x225)]=0x1]=_0x1bfeba(0x225),_0x2afa87[_0x2afa87[_0x1bfeba(0x25d)]=0x2]=_0x1bfeba(0x25d),_0x2afa87[_0x2afa87[_0x1bfeba(0x2d3)]=0x4]=_0x1bfeba(0x2d3),_0x2afa87[_0x2afa87[_0x1bfeba(0x2aa)]=0x8]=_0x1bfeba(0x2aa),_0x2afa87[_0x2afa87[_0x1bfeba(0x2a4)]=0x10]=_0x1bfeba(0x2a4),_0x2afa87[_0x2afa87[_0x1bfeba(0x1ed)]=0x20]=_0x1bfeba(0x1ed),_0x2afa87[_0x2afa87[_0x1bfeba(0x20c)]=0x40]=_0x1bfeba(0x20c),_0x2afa87[_0x2afa87[_0x1bfeba(0x21c)]=0x80]=_0x1bfeba(0x21c);}(_0x16c52b||(_0x16c52b={})));var _0x5b3d10;(function(_0x4aee91){const _0x2a3298=_0x4d4009;_0x4aee91[_0x4aee91[_0x2a3298(0x1ed)]=0x1]='ReferenceType',_0x4aee91[_0x4aee91['IsForward']=0x2]='IsForward',_0x4aee91[_0x4aee91[_0x2a3298(0x281)]=0x4]=_0x2a3298(0x281),_0x4aee91[_0x4aee91[_0x2a3298(0x1b9)]=0x8]=_0x2a3298(0x1b9),_0x4aee91[_0x4aee91[_0x2a3298(0x274)]=0x10]=_0x2a3298(0x274),_0x4aee91[_0x4aee91[_0x2a3298(0x2a5)]=0x20]=_0x2a3298(0x2a5);}(_0x5b3d10||(_0x5b3d10={})));function _0x13bfb3(_0x5a767c){const _0x59ec26=_0x4d4009;switch(_0x5a767c){case _0x59ec26(0x285):return _0x347e6a;case'HasProperty':return _0x1c1919;case _0x59ec26(0x1e5):return _0x113f75;case _0x59ec26(0x29e):return _0x557f33;case _0x59ec26(0x1d5):return _0x4c1ebf;case _0x59ec26(0x1d0):return _0x5ab642;}}const _0x3c1ae4=_0x499ec6=>{const _0x3ceb50=_0x4d4009;switch(_0x499ec6['nodeClass']){case _0x3ceb50(0x225):if(_0x499ec6[_0x3ceb50(0x25a)]===_0x347e6a);if(_0x499ec6['typeDefinition']===_0x3713b2||_0x499ec6['referenceTypeId']===_0x3ceb50(0x29b))return{'icon':'fa-folder','color':_0x3ceb50(0x2ca)};return{'icon':_0x3ceb50(0x2d8),'color':'SeaGreen'};case _0x3ceb50(0x25d):if(_0x499ec6[_0x3ceb50(0x25a)]===_0x113f75)return{'icon':_0x3ceb50(0x232),'color':_0x3ceb50(0x273)};else return _0x499ec6['referenceTypeId']===_0x1c1919?{'icon':_0x3ceb50(0x232),'color':_0x3ceb50(0x1f4)}:{'icon':'fa-list-alt','color':'CadetBlue'};case _0x3ceb50(0x2d3):return{'icon':_0x3ceb50(0x228),'color':_0x3ceb50(0x28d)};case _0x3ceb50(0x2aa):return{'icon':'fa-object-group','color':'DarkOrange'};case _0x3ceb50(0x2a4):return{'icon':_0x3ceb50(0x1cc),'color':_0x3ceb50(0x244)};case _0x3ceb50(0x20c):return{'icon':_0x3ceb50(0x211),'color':_0x3ceb50(0x1ff)};}return{'icon':'fa-question','color':'grey'};},_0x519f99=(_0x5d4aa3,_0x486727,_0x4de2a2)=>_0x48d472(void 0x0,[_0x5d4aa3,_0x486727,_0x4de2a2],void 0x0,function*({endpointNode:_0x287058,endpoint:_0xccee35,baseUrl:_0x24a3e2},_0x28e75d,_0x43ef6e){const _0x568ffe=_0x4d4009,_0x2bc157=_0x24a3e2+_0x568ffe(0x210),_0x36decb=_0x2bc157+_0x568ffe(0x2c5),_0x4d88be=Object['assign'](Object[_0x568ffe(0x2b1)]({},_0x43ef6e),{'nodeId':_0x28e75d,'resultMask':0x3f}),_0x44dd55=yield fetch(_0x36decb,{'method':'POST','body':JSON[_0x568ffe(0x1c2)]({'endpointNode':_0x287058,'endpoint':_0xccee35,'browseDescription':_0x4d88be}),'headers':{'Content-Type':_0x568ffe(0x1e9)}});if(_0x44dd55[_0x568ffe(0x24a)]!==0xc8)return console['log'](_0x568ffe(0x262),_0x44dd55[_0x568ffe(0x24a)],_0x44dd55[_0x568ffe(0x1e4)]),{'references':[]};const _0x53bef5=yield _0x44dd55[_0x568ffe(0x23d)](),_0xd590b6=_0x53bef5[_0x568ffe(0x28e)]['references']||[];return{'references':_0xd590b6};}),_0x3bb365={'referenceTypeId':_0x13bfb3('HasChild'),'includeSubtypes':!![],'browseDirection':_0x594c24[_0x4d4009(0x2bd)],'nodeClassMask':_0x181959[_0x4d4009(0x25d)]|_0x181959[_0x4d4009(0x225)]|_0x181959[_0x4d4009(0x2d3)],'resultMask':0x3f},_0x30a838={'referenceTypeId':_0x13bfb3('Organizes'),'includeSubtypes':!![],'browseDirection':_0x594c24['Forward'],'nodeClassMask':_0x181959['Variable']|_0x181959[_0x4d4009(0x225)]|_0x181959[_0x4d4009(0x2d3)],'resultMask':0x3f},_0x422f10=(_0xa267dd,_0x37a323)=>_0x48d472(void 0x0,[_0xa267dd,_0x37a323],void 0x0,function*({endpointNode:_0x5b68c0,endpoint:_0x17ca6d,baseUrl:_0x158a40},{nodeId:_0x5b1916,rootNodeId:_0x197362,isType:_0x1a6972}){const _0x182f8f=_0x4d4009,_0x4a304f=_0x158a40+'/opcua-for-node-red',_0x8350d7=_0x4a304f+_0x182f8f(0x21a),_0x57b521=yield fetch(_0x8350d7,{'method':'POST','body':JSON[_0x182f8f(0x1c2)]({'endpointNode':_0x5b68c0,'endpoint':_0x17ca6d,'nodeId':_0x5b1916,'rootNodeId':_0x197362,'isType':_0x1a6972}),'headers':{'Content-Type':_0x182f8f(0x1e9)}});if(_0x57b521['status']!==0xc8)return null;const _0x10b9fe=yield _0x57b521[_0x182f8f(0x23d)]();return _0x10b9fe[_0x182f8f(0x280)];}),_0x1b7d3d=(_0x85d878,_0x562f28)=>{const _0x2c858e=_0x4d4009;if(_0x85d878['statusCode']!=='Good')return _0x85d878[_0x2c858e(0x2b3)];switch(_0x562f28){case _0x2c858e(0x280):return _0x85d878[_0x2c858e(0x256)];case'aliasedBrowsePath':return _0x85d878[_0x2c858e(0x251)]||_0x85d878['bp_indexed'];case _0x2c858e(0x26e):return _0x85d878['nodeId_aliased']||_0x85d878['nodeId_nsu'];case'nsuNodeID':return _0x85d878[_0x2c858e(0x26c)];default:case _0x2c858e(0x2c1):return _0x85d878['nodeId'];}},_0x56062d=_0x5b8124=>{const _0x32d75e=_0x4d4009;if(_0x5b8124[_0x32d75e(0x2e4)]!=='Good')return'statusCode:\x20'+_0x5b8124['statusCode'];else{let _0x92879b=[];return _0x92879b['push'](_0x32d75e(0x252)+_0x5b8124['nodeId']),_0x92879b[_0x32d75e(0x213)](_0x32d75e(0x2cb)+_0x5b8124[_0x32d75e(0x256)]),_0x92879b[_0x32d75e(0x213)](_0x32d75e(0x1ea)+_0x181959[_0x5b8124['nodeClass']]),_0x5b8124[_0x32d75e(0x26c)]&&_0x92879b[_0x32d75e(0x213)](_0x32d75e(0x1b5)+_0x5b8124[_0x32d75e(0x26c)]),_0x5b8124[_0x32d75e(0x2c2)]&&_0x92879b[_0x32d75e(0x213)](_0x32d75e(0x201)+_0x5b8124['nodeId_aliased']),_0x5b8124[_0x32d75e(0x256)]&&_0x92879b[_0x32d75e(0x213)](_0x32d75e(0x276)+_0x5b8124[_0x32d75e(0x251)]),_0x92879b[_0x32d75e(0x261)]('\x0a');}};function _0x243356(_0x28ca14){const _0x43b22c=_0x4d4009;if(_0x28ca14[_0x43b22c(0x1f3)](/^nsu=/))return'nsuNodeID';if(_0x28ca14[_0x43b22c(0x1f3)](/^(ns=.*;)?(i|b|s|g)=/))return _0x43b22c(0x2c1);if(_0x28ca14[_0x43b22c(0x1f3)](/^nsa=/))return'aliasedNodeId';if(_0x28ca14[_0x43b22c(0x1f3)](/^(\/|\.)[0-9]+:/))return _0x43b22c(0x280);if(_0x28ca14['match'](/^(\/|\.).*:/))return _0x43b22c(0x280);}function _0x4400eb(_0x22e98b){const _0x306b2e=_0x4d4009,_0x25f998=_0x243356(_0x22e98b);switch(_0x25f998){case'nodeId':return'n';case _0x306b2e(0x26e):return'na';case _0x306b2e(0x235):return _0x306b2e(0x297);case _0x306b2e(0x280):return'b';case _0x306b2e(0x1ba):return'ab';default:return't';}}function _0x58370d(_0x4a101d){const _0x2800a7=_0x4d4009;let _0x57437e;switch(_0x4a101d){case'n':_0x57437e='nodeId';break;case'na':_0x57437e=_0x2800a7(0x26e);break;case _0x2800a7(0x297):_0x57437e=_0x2800a7(0x235);break;case'b':_0x57437e=_0x2800a7(0x280);break;case'ab':_0x57437e=_0x2800a7(0x1ba);break;}return _0x57437e;}function _0x28d514(_0x1be344){const _0x3bd93c=_0x4d4009;switch(_0x1be344){case _0x3bd93c(0x2c1):return'n';case'aliasedNodeId':return'na';case _0x3bd93c(0x235):return _0x3bd93c(0x297);case'browsePath':return'b';case _0x3bd93c(0x1ba):return'ab';default:return't';}}const _0x4b6227=(_0x51d611,_0x2b3d43)=>_0x48d472(void 0x0,[_0x51d611,_0x2b3d43],void 0x0,function*({endpointNode:_0x204695,endpoint:_0x4d9481,baseUrl:_0x320d0f},_0x1af472){const _0xfd9b1c=_0x4d4009,_0x168df2=_0x320d0f+_0xfd9b1c(0x210),_0x427d8a=_0x168df2+_0xfd9b1c(0x2de),_0x1ec0b3=_0x204695['id'],_0x4f40c2=RED[_0xfd9b1c(0x2ba)]['node'](_0x1ec0b3);console[_0xfd9b1c(0x259)](_0x4f40c2[_0xfd9b1c(0x1b7)]),_0x4f40c2[_0xfd9b1c(0x1b7)];const _0x442fd3=_0x204695[_0xfd9b1c(0x1b7)],_0x479b45=yield fetch(_0x427d8a,{'method':'POST','body':JSON[_0xfd9b1c(0x1c2)]({'endpointNode':_0x204695,'endpoint':_0x4d9481,'nodeId':_0x1af472,'namespaceAliases':_0x442fd3}),'headers':{'Content-Type':_0xfd9b1c(0x1e9)}}),_0x4aa741=yield _0x479b45[_0xfd9b1c(0x23d)]();return{'json':_0x4aa741,'data':_0x479b45};}),_0x4770de=(_0x179935,_0x5e9ea5,_0x290b98,_0x5258dc)=>_0x48d472(void 0x0,[_0x179935,_0x5e9ea5,_0x290b98,_0x5258dc],void 0x0,function*({endpointNode:_0x2d77c6,endpoint:_0x3ca426,baseUrl:_0x240f4c},_0x5b59b9,_0x21222a,_0x26daa7){const _0x11ab3c=_0x4d4009,_0x246622=_0x21222a[_0x11ab3c(0x24c)](),{json:_0x3e85b5,data:_0x4077e6}=yield _0x4b6227({'endpointNode':_0x2d77c6,'endpoint':_0x3ca426,'baseUrl':_0x240f4c},_0x246622),_0x12ebcb=(_0x12a910,_0x1c4006)=>{const _0xda243=_0x11ab3c;_0x26daa7[_0xda243(0x22a)](_0x12a910)[_0xda243(0x1c9)]('sterfive-info')['addClass'](_0x1c4006),_0x26daa7[_0xda243(0x2ac)](),setTimeout(()=>{const _0x55f6a6=_0xda243;_0x26daa7[_0x55f6a6(0x1f8)](_0x1c4006),_0x26daa7[_0x55f6a6(0x2a0)]();},0xbb8);};if(_0x4077e6[_0x11ab3c(0x24a)]!==0xc8)return _0x12ebcb('!!failure!!'+_0x246622,'failure'),![];else{if(_0x3e85b5[_0x11ab3c(0x2e4)][_0x11ab3c(0x1f3)](/Good/)){const _0x4f1dd1=_0x56062d(_0x3e85b5);_0x21222a[_0x11ab3c(0x26d)](_0x11ab3c(0x1f5),_0x4f1dd1);const _0x478725=_0x1b7d3d(_0x3e85b5,_0x5b59b9);return _0x21222a[_0x11ab3c(0x24c)](_0x478725),_0x21222a[_0x11ab3c(0x2ad)](_0x11ab3c(0x266)),_0x12ebcb(_0x11ab3c(0x222),'ok'),!![];}else return _0x21222a[_0x11ab3c(0x24c)](''+_0x246622),_0x12ebcb(_0x3e85b5[_0x11ab3c(0x2e4)]+'\x20'+_0x4077e6[_0x11ab3c(0x1e4)],_0x11ab3c(0x250)),![];}});function _0x39622e(_0x2cb611,_0x5799d5){return _0x48d472(this,void 0x0,void 0x0,function*(){const _0x454da2=_0x2ddc,_0x1b1c87=_0x2cb611['data'](_0x454da2(0x21d)),_0x441907=yield _0x519f99(_0x5799d5,_0x1b1c87,_0x3bb365),_0x1c531c=yield _0x519f99(_0x5799d5,_0x1b1c87,_0x30a838);return{'references':[..._0x441907[_0x454da2(0x1df)],..._0x1c531c[_0x454da2(0x1df)]]};});}const _0x5062a5={'referenceTypeId':_0x13bfb3(_0x4d4009(0x1d5)),'includeSubtypes':!![],'browseDirection':_0x594c24[_0x4d4009(0x2bd)],'nodeClassMask':_0x181959[_0x4d4009(0x1ed)]|_0x181959[_0x4d4009(0x2aa)]|_0x181959[_0x4d4009(0x20c)]|_0x181959[_0x4d4009(0x2a4)],'resultMask':0x3f};function _0x163293(_0x41f17e,_0x58b92c){return _0x48d472(this,void 0x0,void 0x0,function*(){const _0x5baf2b=_0x2ddc,_0x1ad366=_0x41f17e['data'](_0x5baf2b(0x21d)),_0x1b6e1f=yield _0x519f99(_0x58b92c,_0x1ad366,_0x5062a5);return _0x1b6e1f;});}const _0x3e9855=_0x400fed=>{const _0x268c8e=_0x4d4009;var _0x28a325,_0x4fbfd3,_0x53e395,_0x1a3e3a;if(!_0x400fed||!_0x400fed[_0x268c8e(0x2c1)]){const _0x5a6720=$(_0x268c8e(0x2e5));return _0x5a6720;}const _0x4c0494=_0x400fed[_0x268c8e(0x2c1)]['toString'](),_0x332fb0=((_0x28a325=_0x400fed[_0x268c8e(0x249)])===null||_0x28a325===void 0x0?void 0x0:_0x28a325[_0x268c8e(0x22a)])||((_0x4fbfd3=_0x400fed[_0x268c8e(0x231)])===null||_0x4fbfd3===void 0x0?void 0x0:_0x4fbfd3[_0x268c8e(0x203)])||_0x400fed[_0x268c8e(0x2c1)][_0x268c8e(0x1e3)](),{icon:_0x5b9044,color:_0x499d07}=_0x3c1ae4(_0x400fed),_0x1f1227='('+_0x400fed[_0x268c8e(0x2c1)][_0x268c8e(0x1e3)]()+')\x20'+(((_0x53e395=_0x400fed['browseName'])===null||_0x53e395===void 0x0?void 0x0:_0x53e395[_0x268c8e(0x203)])||((_0x1a3e3a=_0x400fed[_0x268c8e(0x249)])===null||_0x1a3e3a===void 0x0?void 0x0:_0x1a3e3a[_0x268c8e(0x22a)])||''),_0x1a7c56=$(_0x268c8e(0x283)+_0x400fed[_0x268c8e(0x2c1)][_0x268c8e(0x1e3)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x1f1227+_0x268c8e(0x2ab)+_0x5b9044+_0x268c8e(0x1fd)+_0x499d07+';\x22></i>\x20'+_0x332fb0+_0x268c8e(0x1c1));return _0x1a7c56[_0x268c8e(0x1c9)](_0x268c8e(0x267)),_0x1a7c56['data']('value',_0x4c0494),_0x1a7c56[_0x268c8e(0x2e8)](_0x268c8e(0x294),_0x400fed),_0x1a7c56;},_0xf665fd=(_0x27fa5e,_0x19144f)=>{const _0x15b163=_0x4d4009;return _0x19144f[_0x15b163(0x1be)](_0x15b163(0x2b0)+_0x27fa5e+'\x22]');},_0x494c99=(_0xb14eca,_0x16e97a)=>{const _0xdb16be=_0x4d4009;_0xb14eca['$tree'][_0xdb16be(0x1be)]('li\x20>\x20.tree-text')['removeClass'](_0xdb16be(0x257)),_0x16e97a[_0xdb16be(0x1be)]('.tree-text:first')['addClass'](_0xdb16be(0x257));},_0x40816d=(_0x492190,_0x2a30a9,_0x506823)=>_0x48d472(void 0x0,void 0x0,void 0x0,function*(){const _0x235f2a=_0x4d4009;let _0x1cd847=_0x506823[_0x235f2a(0x206)](':first');_0x2a30a9[_0x235f2a(0x230)]['elements']||[];const _0x35727b=_0x2a30a9['nodeIds']||[];if(_0x35727b[_0x235f2a(0x1c7)]===0x0)return;for(const _0xa2971b of _0x35727b){_0x1cd847[_0x235f2a(0x1d1)](_0x235f2a(0x267))&&(yield _0x448a3f(_0x492190,_0x1cd847));const _0x2a4c6a=_0xf665fd(_0xa2971b,_0x1cd847);if(_0x2a4c6a[_0x235f2a(0x1c7)]===0x0)return;_0x1cd847=_0x2a4c6a;}_0x494c99(_0x492190,_0x1cd847),_0x513a7d(_0x492190[_0x235f2a(0x24f)],_0x1cd847);});function _0x513a7d(_0x4036d2,_0x32ef49){const _0x591bf2=_0x4d4009,_0x360f37=_0x32ef49[_0x591bf2(0x227)]()[_0x591bf2(0x20a)],_0x5d967c=_0x4036d2['scrollTop']();if(_0x5d967c==undefined)return;const _0x3e3a15=_0x5d967c+_0x360f37-_0x4036d2[_0x591bf2(0x268)]()/0x2+_0x32ef49['height']()/0x2;_0x4036d2[_0x591bf2(0x23a)]({'scrollTop':_0x3e3a15},0x1f4);}const _0xd88693=(_0x337b52,_0x46bb46)=>_0x48d472(void 0x0,void 0x0,void 0x0,function*(){const _0x5eb001=_0x4d4009,_0x266289=_0x337b52[_0x5eb001(0x2b2)][_0x5eb001(0x24c)](),_0x921420={'nodeId':_0x266289,'rootNodeId':_0x46bb46['nodeId'],'isType':_0x337b52['options'][_0x5eb001(0x1fc)]||![]},_0x15d279=_0x137c61(_0x337b52),_0x536ebc=yield _0x422f10(_0x15d279,_0x921420);if(!_0x536ebc)return;yield _0x40816d(_0x337b52,_0x536ebc,_0x337b52[_0x5eb001(0x2b7)]);});function _0x1cc38e(_0xa63cb4,_0x1c226c,_0x556f36,_0x2082fe){return _0x48d472(this,void 0x0,void 0x0,function*(){const _0x1e87b5=_0x2ddc;if(_0x1c226c[_0x1e87b5(0x1d1)](_0x1e87b5(0x29f))){console[_0x1e87b5(0x259)]('already\x20fetched');return;}if(_0x1c226c['hasClass'](_0x1e87b5(0x293))){console[_0x1e87b5(0x259)]('already\x20loading');return;}_0x1c226c[_0x1e87b5(0x1c9)]('loading'),_0x1c226c[_0x1e87b5(0x26b)](_0x1e87b5(0x1dd));try{_0x1c226c[_0x1e87b5(0x206)]('ul')[_0x1e87b5(0x238)]();const {references:_0x4db12b}=yield _0x556f36(_0x1c226c,_0x2082fe);_0x4db12b[_0x1e87b5(0x2a2)]((_0xac2aa5,_0x1efa41)=>{const _0xd7b1f=_0x1e87b5;var _0x54ab0b,_0xee426f;return(((_0x54ab0b=_0xac2aa5[_0xd7b1f(0x231)])===null||_0x54ab0b===void 0x0?void 0x0:_0x54ab0b[_0xd7b1f(0x203)])||'')['localeCompare'](((_0xee426f=_0x1efa41[_0xd7b1f(0x231)])===null||_0xee426f===void 0x0?void 0x0:_0xee426f[_0xd7b1f(0x203)])||'');});for(const _0x2b2165 of _0x4db12b){if(_0xa63cb4[_0x1e87b5(0x295)][_0x1e87b5(0x212)]&&!_0xa63cb4['options'][_0x1e87b5(0x212)](_0x2b2165))continue;const _0x3541ae=_0x3e9855(_0x2b2165);_0x1c226c[_0x1e87b5(0x206)]('ul')[_0x1e87b5(0x26b)](_0x3541ae);}_0x1c226c['addClass'](_0x1e87b5(0x29f));}catch(_0x2fd546){_0x1c226c[_0x1e87b5(0x206)]('ul')['append']('<li>error\x20'+_0x2fd546[_0x1e87b5(0x221)]+_0x1e87b5(0x202)),console[_0x1e87b5(0x259)](_0x1e87b5(0x236),_0x2fd546);}_0x1c226c[_0x1e87b5(0x1be)](_0x1e87b5(0x2d5))[_0x1e87b5(0x1e1)](),_0x1c226c['removeClass'](_0x1e87b5(0x293));});}function _0x137c61(_0x4e25ff){const _0x50059f=_0x4d4009,_0x56659d={'baseUrl':_0x4e25ff[_0x50059f(0x295)]['baseUrl'],'endpointNode':typeof _0x4e25ff[_0x50059f(0x295)][_0x50059f(0x22d)]===_0x50059f(0x21e)?_0x4e25ff[_0x50059f(0x295)][_0x50059f(0x22d)]():_0x4e25ff[_0x50059f(0x295)][_0x50059f(0x22d)],'endpoint':typeof _0x4e25ff[_0x50059f(0x295)][_0x50059f(0x218)]===_0x50059f(0x21e)?_0x4e25ff['options'][_0x50059f(0x218)]():_0x4e25ff[_0x50059f(0x295)][_0x50059f(0x218)]};return _0x56659d;}function _0x448a3f(_0x4e8cc7,_0x805a60){return _0x48d472(this,void 0x0,void 0x0,function*(){const _0x5acd18=_0x2ddc;if(_0x805a60['hasClass'](_0x5acd18(0x29f))){_0x805a60[_0x5acd18(0x1f8)](_0x5acd18(0x267))['addClass'](_0x5acd18(0x1ca)),_0x805a60[_0x5acd18(0x206)]('ul')[_0x5acd18(0x2d4)]();return;}const _0x1add05=_0x137c61(_0x4e8cc7),_0x2cf851=!_0x4e8cc7[_0x5acd18(0x295)]['isTypeRef']?_0x39622e:_0x163293;try{yield _0x1cc38e(_0x4e8cc7,_0x805a60,_0x2cf851,_0x1add05),_0x805a60[_0x5acd18(0x1f8)](_0x5acd18(0x267))[_0x5acd18(0x1c9)]('expanded');}catch(_0x357925){_0x805a60[_0x5acd18(0x1f8)](_0x5acd18(0x267))[_0x5acd18(0x1c9)](_0x5acd18(0x1ca)),console[_0x5acd18(0x259)](_0x5acd18(0x2b6),_0x357925);}});}const _0x3cf080={'browseName':{'namespaceIndex':0x0,'name':_0x4d4009(0x22f)},'nodeClass':'Object','nodeId':_0x4d4009(0x219),'displayName':{'text':_0x4d4009(0x22f)},'typeDefinition':_0x3713b2},_0x4dd192=()=>{const _0x9be7c7=_0x4d4009;$[_0x9be7c7(0x23c)](_0x9be7c7(0x1c0),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>_0x3cf080,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x48d472(this,void 0x0,void 0x0,function*(){const _0x1363b3=_0x2ddc,_0x443370=this;if(_0x443370[_0x1363b3(0x25c)]==undefined){const _0x5ef7a9=typeof _0x443370['options'][_0x1363b3(0x1d2)]===_0x1363b3(0x21e)?_0x443370['options'][_0x1363b3(0x1d2)][_0x1363b3(0x204)](_0x443370):_0x443370[_0x1363b3(0x295)]['parentNode'];if(_0x5ef7a9 instanceof Promise){const _0x5b8264=yield _0x5ef7a9;_0x443370['__parentNode']=_0x5b8264;}else _0x443370['__parentNode']=_0x5ef7a9;}return _0x443370['__parentNode']||_0x3cf080;});},'reset'(){return _0x48d472(this,void 0x0,void 0x0,function*(){const _0x4205da=_0x2ddc,_0x5a8808=this,_0x50eba8=_0x5a8808;_0x50eba8[_0x4205da(0x25c)]=undefined,_0x5a8808[_0x4205da(0x2b7)][_0x4205da(0x238)]();const _0x599e7c=yield this['resolveParentNode'](),_0x143078=_0x3e9855(_0x599e7c);_0x5a8808[_0x4205da(0x2b7)][_0x4205da(0x26b)](_0x143078),_0x5a8808[_0x4205da(0x2c7)]=_0x599e7c;});},'verify'(_0x5d103d){const _0x33c277=_0x9be7c7,_0x22ca26=this,_0x574c49=_0x137c61(_0x22ca26);_0x4770de(_0x574c49,_0x5d103d,_0x22ca26[_0x33c277(0x2b2)],_0x22ca26['$info'])[_0x33c277(0x2d0)](_0x3d8410=>{const _0x46aaa9=_0x33c277;!_0x3d8410?_0x22ca26['$combo'][_0x46aaa9(0x1c9)]('input-error'):_0x22ca26[_0x46aaa9(0x1cb)][_0x46aaa9(0x1f8)]('input-error');});},'_hideMenu'(_0x4fa9e9){const _0x564b67=_0x9be7c7,_0x442e21=this;$(document)['off']('mousedown.red-ui-typedInput-close-property-select'),_0x4fa9e9[_0x564b67(0x2a0)](),_0x4fa9e9['css']({'height':_0x564b67(0x29c)});if(_0x4fa9e9['opts'][_0x564b67(0x2c4)]){var _0x126ed6=[];_0x4fa9e9[_0x564b67(0x1be)](_0x564b67(0x1fa))[_0x564b67(0x284)](function(){const _0x1b4916=_0x564b67;$(this)['prop'](_0x1b4916(0x1bc))&&_0x126ed6[_0x1b4916(0x213)]($(this)[_0x1b4916(0x2e8)](_0x1b4916(0x21d)));}),_0x4fa9e9[_0x564b67(0x2ce)](_0x126ed6);}_0x442e21[_0x564b67(0x1ce)]['is'](_0x564b67(0x23f))?_0x442e21[_0x564b67(0x2b2)][_0x564b67(0x2ad)](_0x564b67(0x229)):_0x442e21['$selectTrigger'][_0x564b67(0x2ad)](_0x564b67(0x229));},'_createMenu'(_0x2f5fb9,_0x1b8bf0,_0x2631a9){const _0x587bec=_0x9be7c7;var _0x5f1731=this;const _0xe4d10d=$(_0x587bec(0x27b))[_0x587bec(0x1c9)]('sterfive-typedInput-options\x20sterfive-online-menu');return _0xe4d10d['opts']=_0x1b8bf0,_0xe4d10d[_0x587bec(0x2ce)]=_0x2631a9,_0x2f5fb9[_0x587bec(0x2db)](_0x1c693e=>{const _0x5d24fa=_0x587bec;typeof _0x1c693e==='string'&&(_0x1c693e={'value':_0x1c693e,'label':_0x1c693e});var _0x36be02=$(_0x5d24fa(0x1cf))[_0x5d24fa(0x26d)]('value',_0x1c693e[_0x5d24fa(0x21d)])[_0x5d24fa(0x2a8)](_0xe4d10d);_0x1c693e[_0x5d24fa(0x282)]&&_0x36be02[_0x5d24fa(0x22a)](_0x1c693e[_0x5d24fa(0x282)]);_0x1c693e[_0x5d24fa(0x1f5)]&&_0x36be02[_0x5d24fa(0x28f)](_0x5d24fa(0x1f5),_0x1c693e['title']);if(_0x1c693e[_0x5d24fa(0x1ec)]){if(_0x1c693e['icon'][_0x5d24fa(0x2e2)]('<')===0x0)$(_0x1c693e['icon'])['prependTo'](_0x36be02);else _0x1c693e[_0x5d24fa(0x1ec)][_0x5d24fa(0x2e2)]('/')!==-0x1?$('<i>',{'class':_0x5d24fa(0x265),'style':_0x5d24fa(0x2ae)+_0x1c693e[_0x5d24fa(0x1ec)]+_0x5d24fa(0x1bf)+_0x1c693e[_0x5d24fa(0x1ec)]+');'})[_0x5d24fa(0x1c4)](_0x36be02):$('<i>',{'class':_0x5d24fa(0x23e)+_0x1c693e[_0x5d24fa(0x1ec)]})[_0x5d24fa(0x1c4)](_0x36be02);}else _0x36be02['css']({'paddingLeft':'18px'});!_0x1c693e[_0x5d24fa(0x1ec)]&&!_0x1c693e[_0x5d24fa(0x282)]&&_0x36be02[_0x5d24fa(0x22a)](_0x1c693e[_0x5d24fa(0x21d)]);var _0x15a5c2;_0x1b8bf0[_0x5d24fa(0x2c4)]&&(_0x15a5c2=$('<input\x20type=\x22checkbox\x22>')[_0x5d24fa(0x20d)](_0x5d24fa(0x239),_0x5d24fa(0x1f6))[_0x5d24fa(0x2e8)](_0x5d24fa(0x21d),_0x1c693e[_0x5d24fa(0x21d)])[_0x5d24fa(0x1c4)](_0x36be02)['on'](_0x5d24fa(0x1dc),function(_0x596e03){const _0x3ecd3e=_0x5d24fa;_0x596e03[_0x3ecd3e(0x23b)]();})),_0x36be02['on'](_0x5d24fa(0x2dc),function(_0x277d1c){const _0x5a8b35=_0x5d24fa;_0x277d1c[_0x5a8b35(0x23b)](),_0x277d1c[_0x5a8b35(0x1e8)](),!_0x1b8bf0[_0x5a8b35(0x2c4)]?(_0x2631a9(_0x1c693e[_0x5a8b35(0x21d)]),_0x5f1731['_hideMenu'](_0xe4d10d)):_0x15a5c2[_0x5a8b35(0x28f)](_0x5a8b35(0x1bc),!_0x15a5c2[_0x5a8b35(0x28f)](_0x5a8b35(0x1bc)));});}),_0xe4d10d[_0x587bec(0x20d)]({'display':_0x587bec(0x1f6)}),_0xe4d10d['on'](_0x587bec(0x1bb),function(_0x51858f){const _0x43d91d=_0x587bec;if(_0x51858f['keyCode']===0x28)_0x51858f[_0x43d91d(0x23b)](),$(this)[_0x43d91d(0x206)](_0x43d91d(0x270))[_0x43d91d(0x271)]()[_0x43d91d(0x2ad)](_0x43d91d(0x229));else{if(_0x51858f[_0x43d91d(0x21b)]===0x26)_0x51858f[_0x43d91d(0x23b)](),$(this)[_0x43d91d(0x206)](_0x43d91d(0x270))['prev']()[_0x43d91d(0x2ad)](_0x43d91d(0x229));else _0x51858f[_0x43d91d(0x21b)]===0x1b&&(_0x51858f[_0x43d91d(0x23b)](),_0x5f1731[_0x43d91d(0x27d)](_0xe4d10d));}_0x51858f['stopPropagation']();}),_0xe4d10d;},'disarmClick':![],'_showMenu'(_0x231efb,_0x295706){const _0xfa4b7a=_0x9be7c7;if(this[_0xfa4b7a(0x2d1)]){this[_0xfa4b7a(0x2d1)]=![];return;}var _0x3df7f7=this,_0x33f6ca=_0x295706[_0xfa4b7a(0x1cd)](),_0x3b2840=_0x295706[_0xfa4b7a(0x268)](),_0x50a44f=_0x231efb['height'](),_0xe6f2da=_0x3b2840+_0x33f6ca[_0xfa4b7a(0x20a)];_0xe6f2da+_0x50a44f-$(document)[_0xfa4b7a(0x1e7)]()>$(window)['height']()&&(_0xe6f2da-=_0xe6f2da+_0x50a44f-$(window)[_0xfa4b7a(0x268)]()+0x5),_0xe6f2da<0x0&&(_0x231efb[_0xfa4b7a(0x268)](_0x50a44f+_0xe6f2da),_0xe6f2da=0x0),_0x231efb[_0xfa4b7a(0x20d)]({'top':_0xe6f2da+'px','left':_0x33f6ca[_0xfa4b7a(0x216)]+'px'}),_0x231efb[_0xfa4b7a(0x1f1)](0x64),this[_0xfa4b7a(0x24d)](function(){const _0x54362c=_0xfa4b7a;_0x3df7f7[_0x54362c(0x20e)][_0x54362c(0x1c9)](_0x54362c(0x1de)),$(document)['on'](_0x54362c(0x2c8),function(_0x10fd3c){const _0x390696=_0x54362c;!$(_0x10fd3c[_0x390696(0x25e)])[_0x390696(0x243)](_0x231efb)[_0x390696(0x1c7)]&&_0x3df7f7[_0x390696(0x27d)](_0x231efb),$(_0x10fd3c[_0x390696(0x25e)])['closest'](_0x295706)[_0x390696(0x1c7)]&&(_0x3df7f7[_0x390696(0x2d1)]=!![],_0x10fd3c[_0x390696(0x23b)]());});});},'_showTypeMenu'(){const _0xcabb54=_0x9be7c7,_0x49939c=this;this['_showMenu'](_0x49939c[_0xcabb54(0x2bb)],_0x49939c[_0xcabb54(0x1cb)]),_0x49939c[_0xcabb54(0x24f)][_0xcabb54(0x2a0)]();const _0x2e5b5d=_0x49939c[_0xcabb54(0x234)];var _0x5cf7b7=_0x49939c[_0xcabb54(0x2bb)][_0xcabb54(0x1be)](_0xcabb54(0x299)+_0x2e5b5d+'\x27');setTimeout(function(){const _0x9c8349=_0xcabb54;_0x5cf7b7[_0x9c8349(0x2ad)](_0x9c8349(0x229));},0x78);},'_initMenu'(){const _0xca546c=_0x9be7c7,_0x4fc55d=this;_0x4fc55d[_0xca546c(0x1d6)][_0xca546c(0x26d)](_0xca546c(0x29a),-0x1),_0x4fc55d[_0xca546c(0x1d6)]['on']('mousedown.red-ui-typedInput-focus-block',function(_0x59f096){const _0x41cb65=_0xca546c;_0x59f096[_0x41cb65(0x23b)]();});_0x4fc55d[_0xca546c(0x2bb)]&&_0x4fc55d[_0xca546c(0x2bb)][_0xca546c(0x1e1)]();const _0x2fcf9e=[{'label':_0xca546c(0x22a),'value':'t','title':_0xca546c(0x22c),'icon':_0xca546c(0x2e3)},{'label':_0xca546c(0x1f2),'value':_0xca546c(0x2d6),'title':_0xca546c(0x2cd),'icon':'<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>'},{'label':_0xca546c(0x2bf),'value':'n','icon':_0xca546c(0x1ef)},{'label':_0xca546c(0x2e9),'value':'na','icon':_0xca546c(0x296)},{'label':_0xca546c(0x1d8),'value':'nsu','icon':_0xca546c(0x205)},{'label':_0xca546c(0x28a),'value':'b','icon':_0xca546c(0x217)},{'label':_0xca546c(0x2e6),'value':'ab','icon':'<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;'}],_0x5892dc=_0x4400eb(_0x4fc55d[_0xca546c(0x2b2)][_0xca546c(0x24c)]()),_0x3f6f83=_0x2fcf9e['find'](_0x24f21d=>_0x24f21d[_0xca546c(0x21d)]===_0x5892dc);_0x4fc55d[_0xca546c(0x2b9)][_0xca546c(0x238)]()[_0xca546c(0x26b)](_0xca546c(0x1c5)+((_0x3f6f83===null||_0x3f6f83===void 0x0?void 0x0:_0x3f6f83[_0xca546c(0x1f5)])||'')+_0xca546c(0x2a1)+((_0x3f6f83===null||_0x3f6f83===void 0x0?void 0x0:_0x3f6f83[_0xca546c(0x1ec)])||'')+_0xca546c(0x1b6)),_0x4fc55d[_0xca546c(0x234)]=_0x5892dc;const _0x16b9dd=this;_0x4fc55d[_0xca546c(0x2bb)]=this[_0xca546c(0x2a6)](_0x2fcf9e,{},_0x2f6703=>{const _0x32a65e=_0xca546c,_0x54b8bc=_0x58370d(_0x2f6703);_0x54b8bc&&_0x16b9dd[_0x32a65e(0x207)](_0x54b8bc);const _0x56df85=_0x2fcf9e[_0x32a65e(0x1be)](_0x32cb42=>_0x32cb42[_0x32a65e(0x21d)]===_0x2f6703);_0x4fc55d['selectedMenuItem']=_0x2f6703,_0x4fc55d[_0x32a65e(0x2b9)][_0x32a65e(0x238)]()[_0x32a65e(0x26b)](_0x32a65e(0x1c5)+((_0x56df85===null||_0x56df85===void 0x0?void 0x0:_0x56df85['title'])||'')+_0x32a65e(0x2a1)+((_0x56df85===null||_0x56df85===void 0x0?void 0x0:_0x56df85[_0x32a65e(0x1ec)])||'')+_0x32a65e(0x1b6));}),_0x4fc55d[_0xca546c(0x2bb)][_0xca546c(0x2a8)](document[_0xca546c(0x245)]),_0x4fc55d['$menu'][_0xca546c(0x2a0)](),_0x4fc55d[_0xca546c(0x1d6)][_0xca546c(0x2ac)]();},'mode'(){const _0x225ddb=_0x9be7c7,_0xa89064=this;return _0x58370d(_0xa89064[_0x225ddb(0x234)]);},'setMode'(_0x3f92c8){const _0x494ed2=_0x9be7c7,_0x5c02ae=this,_0x2ace46=_0x28d514(_0x3f92c8);_0x5c02ae[_0x494ed2(0x234)]=_0x2ace46;},'_create'(){const _0xe8c6d0=_0x9be7c7,_0x317b0a=this;_0x317b0a[_0xe8c6d0(0x2b2)]=this[_0xe8c6d0(0x2da)],_0x317b0a['$input'][_0xe8c6d0(0x20d)](_0xe8c6d0(0x2d9),'none'),_0x317b0a[_0xe8c6d0(0x1ce)]=_0x317b0a[_0xe8c6d0(0x2b2)]['wrap'](_0xe8c6d0(0x27b))[_0xe8c6d0(0x28b)]()['addClass'](_0xe8c6d0(0x1db)),_0x317b0a[_0xe8c6d0(0x1cb)]=$('<div/>'),_0x317b0a[_0xe8c6d0(0x1cb)][_0xe8c6d0(0x1c9)](_0xe8c6d0(0x2c9)),_0x317b0a[_0xe8c6d0(0x2b2)][_0xe8c6d0(0x240)](_0x317b0a['$combo']),_0x317b0a[_0xe8c6d0(0x2d2)]=$(_0xe8c6d0(0x1d3))[_0xe8c6d0(0x1c9)]('input-group'),_0x317b0a[_0xe8c6d0(0x1cb)][_0xe8c6d0(0x26b)](_0x317b0a['$inputGroup']),_0x317b0a[_0xe8c6d0(0x2d2)]['append'](_0x317b0a['$input']),_0x317b0a['$toggleTreeBtn']=$(_0xe8c6d0(0x27e)),_0x317b0a[_0xe8c6d0(0x2b2)]['after'](_0x317b0a[_0xe8c6d0(0x24b)]),_0x317b0a[_0xe8c6d0(0x24b)]['on']('click',function(){return _0x48d472(this,void 0x0,void 0x0,function*(){const _0x5df067=_0x2ddc;var _0x5ea836;let _0x525717=![],_0x1698da;!_0x317b0a[_0x5df067(0x24f)]['is'](_0x5df067(0x23f))&&(_0x317b0a['$info'][_0x5df067(0x2a0)](),_0x1698da=yield _0x317b0a[_0x5df067(0x20b)](),(_0x1698da!==_0x317b0a[_0x5df067(0x2c7)]||((_0x5ea836=_0x317b0a['currentParent'])===null||_0x5ea836===void 0x0?void 0x0:_0x5ea836['nodeId'])!==_0x1698da[_0x5df067(0x2c1)])&&(yield _0x317b0a[_0x5df067(0x1e0)]()),_0x525717=!![]),_0x317b0a[_0x5df067(0x24f)]['toggle'](),_0x525717&&(yield _0xd88693(_0x317b0a,_0x1698da));});}),_0x317b0a['$verifyBtn']=$(_0xe8c6d0(0x1d9)),_0x317b0a[_0xe8c6d0(0x2b2)]['after'](_0x317b0a[_0xe8c6d0(0x287)]),_0x317b0a[_0xe8c6d0(0x287)]['on'](_0xe8c6d0(0x2dc),()=>{const _0x481411=_0xe8c6d0,_0x2cff75=_0x317b0a[_0x481411(0x2c6)]();if(!_0x2cff75)return;this[_0x481411(0x207)](_0x2cff75);});const _0x4d059c=_0x4b28ab=>_0x48d472(this,void 0x0,void 0x0,function*(){const _0x36a36d=_0xe8c6d0,_0x163b48=this;let _0x5c1ef7=_0x163b48[_0x36a36d(0x2c6)]();if(!_0x5c1ef7)return;const _0x15ec9c=_0x137c61(_0x163b48),{data:_0x48ac98,json:_0x5ea5a7}=yield _0x4b6227(_0x15ec9c,_0x4b28ab);if(_0x48ac98[_0x36a36d(0x24a)]!==0xc8)return;if(_0x5ea5a7['statusCode'][_0x36a36d(0x1f3)](/Good/)){const _0xe70434=_0x1b7d3d(_0x5ea5a7,_0x5c1ef7);_0x163b48[_0x36a36d(0x2b2)]['val'](_0xe70434),_0x163b48[_0x36a36d(0x2b2)][_0x36a36d(0x2ad)](_0x36a36d(0x266));}});{_0x317b0a[_0xe8c6d0(0x20e)]=$(_0xe8c6d0(0x27b)),_0x317b0a['$input']['before'](_0x317b0a[_0xe8c6d0(0x20e)]),_0x317b0a['$selectTrigger']=$('<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>')['prependTo'](_0x317b0a['$uiSelect']),$(_0xe8c6d0(0x1f0))['toggle'](!![])[_0xe8c6d0(0x2a8)](_0x317b0a[_0xe8c6d0(0x1d6)]),_0x317b0a[_0xe8c6d0(0x1d6)]['on']('click',function(_0x3ba1d9){const _0x534af7=_0xe8c6d0;_0x3ba1d9['preventDefault'](),_0x3ba1d9[_0x534af7(0x1e8)](),_0x317b0a[_0x534af7(0x286)]();}),_0x317b0a[_0xe8c6d0(0x1d6)]['on']('keydown',function(_0x365ed1){const _0x13415e=_0xe8c6d0;_0x365ed1[_0x13415e(0x21b)]===0x28&&_0x317b0a[_0x13415e(0x286)](),_0x365ed1[_0x13415e(0x1e8)]();})['on']('focus',function(){const _0x3229b1=_0xe8c6d0;_0x317b0a[_0x3229b1(0x20e)][_0x3229b1(0x1c9)](_0x3229b1(0x1de));})['on'](_0xe8c6d0(0x2cc),function(){const _0x1fbe85=_0xe8c6d0;_0x317b0a[_0x1fbe85(0x20e)][_0x1fbe85(0x1f8)](_0x1fbe85(0x1de));}),_0x317b0a[_0xe8c6d0(0x2b9)]=$('<span\x20class=\x22red-ui-typedInput-type-label\x22></span>')[_0xe8c6d0(0x2a8)](_0x317b0a[_0xe8c6d0(0x1d6)]);}this['_initMenu']();!_0x317b0a[_0xe8c6d0(0x2b2)][_0xe8c6d0(0x26d)]('placeholder')&&_0x317b0a[_0xe8c6d0(0x2b2)][_0xe8c6d0(0x26d)]('placeholder',_0xe8c6d0(0x1da));_0x317b0a['$info']=$('<div\x20class=\x22info-text\x22></div>'),_0x317b0a['$info'][_0xe8c6d0(0x2a0)](),_0x317b0a['$combo'][_0xe8c6d0(0x26b)](_0x317b0a[_0xe8c6d0(0x22b)]),_0x317b0a['$dropdown']=$(_0xe8c6d0(0x1d3))[_0xe8c6d0(0x1c9)](_0xe8c6d0(0x2c3))['hide']()[_0xe8c6d0(0x2a8)](_0x317b0a[_0xe8c6d0(0x1cb)]),_0x317b0a[_0xe8c6d0(0x2b7)]=$(_0xe8c6d0(0x224))[_0xe8c6d0(0x2a8)](_0x317b0a[_0xe8c6d0(0x24f)]),this[_0xe8c6d0(0x1e0)]();const _0x4eddcc=(_0x2cfdd5,_0x30d477)=>{const _0x3357c8=_0xe8c6d0,_0x18275e=0x14,_0x464f1a=0x14,_0x201560=_0x2cfdd5[_0x3357c8(0x1cd)](),_0x5cd027=_0x30d477;if(_0x5cd027['pageX']>=_0x201560[_0x3357c8(0x216)]&&_0x5cd027['pageX']<=_0x201560['left']+_0x18275e&&_0x5cd027[_0x3357c8(0x279)]>=_0x201560[_0x3357c8(0x20a)]&&_0x5cd027['pageY']<=_0x201560[_0x3357c8(0x20a)]+_0x464f1a)return!![];return![];},_0x16b816=_0x5229d7=>_0x48d472(this,void 0x0,void 0x0,function*(){const _0x362446=_0xe8c6d0;if(_0x5229d7['hasClass']('expandable'))_0x448a3f(_0x317b0a,_0x5229d7);else{if(_0x5229d7['hasClass']('expanded'))_0x5229d7['children']('ul')[_0x362446(0x2d4)](),_0x5229d7[_0x362446(0x2a9)](_0x362446(0x289));else{if(_0x5229d7[_0x362446(0x206)]('ul')[_0x362446(0x206)]()[_0x362446(0x1c7)]>0x0)_0x5229d7[_0x362446(0x206)]('ul')[_0x362446(0x2d4)](),_0x5229d7[_0x362446(0x2a9)](_0x362446(0x289));else;}}});_0x317b0a[_0xe8c6d0(0x2b7)]['on'](_0xe8c6d0(0x275),'li',function(_0x49c2eb){const _0x516950=_0xe8c6d0;var _0x2419f3,_0x5c5fb1;_0x49c2eb['stopPropagation']();let _0x15fa8c=$(this);if(_0x4eddcc(_0x15fa8c,_0x49c2eb))_0x16b816(_0x15fa8c);else{const _0x53de15=_0x15fa8c[_0x516950(0x2e8)]('value'),_0x35b4fb=_0x15fa8c[_0x516950(0x2e8)](_0x516950(0x294));if(_0x317b0a[_0x516950(0x295)][_0x516950(0x247)]&&!_0x317b0a[_0x516950(0x295)]['isSelectable'](_0x35b4fb))return;_0x317b0a[_0x516950(0x2b2)][_0x516950(0x2e8)](_0x516950(0x294),_0x35b4fb),((_0x2419f3=_0x35b4fb[_0x516950(0x249)])===null||_0x2419f3===void 0x0?void 0x0:_0x2419f3['text'])||((_0x5c5fb1=_0x35b4fb[_0x516950(0x231)])===null||_0x5c5fb1===void 0x0?void 0x0:_0x5c5fb1['name'])||_0x35b4fb['nodeId']['toString']();let _0x7c6471=_0x317b0a[_0x516950(0x2c6)]();!_0x7c6471&&(_0x7c6471=_0x516950(0x2c1),_0x317b0a['setMode'](_0x7c6471)),_0x4d059c(_0x53de15)[_0x516950(0x2d0)](()=>{const _0x5451be=_0x516950;_0x317b0a[_0x5451be(0x24f)][_0x5451be(0x2a0)]();})['catch'](_0x43cf99=>{const _0x455786=_0x516950;_0x317b0a[_0x455786(0x24f)][_0x455786(0x2a0)]();});}}),_0x317b0a[_0xe8c6d0(0x2b7)]['on'](_0xe8c6d0(0x2dc),'li',function(_0x1bcaf3){const _0x2e9367=_0xe8c6d0;_0x1bcaf3[_0x2e9367(0x1e8)]();let _0x3e2f65=$(this);_0x4eddcc(_0x3e2f65,_0x1bcaf3)&&_0x16b816(_0x3e2f65),_0x494c99(_0x317b0a,_0x3e2f65);}),$(document)['on'](_0xe8c6d0(0x2dc),function(_0x52dd5a){const _0x2083be=_0xe8c6d0;!$(_0x52dd5a[_0x2083be(0x25e)])['closest'](_0x317b0a[_0x2083be(0x1cb)])['length']&&_0x317b0a[_0x2083be(0x24f)][_0x2083be(0x2a0)]();});}});},_0x1be051=()=>{const _0x260120=_0x4d4009,_0x456b27=$(_0x260120(0x2bc)),_0x34cc8d=_0x456b27[_0x260120(0x24c)](),_0xec5f13=RED[_0x260120(0x2ba)][_0x260120(0x2af)](_0x34cc8d);if(!_0xec5f13)return undefined;const {endpoint:_0x194b81,securityMode:_0x5a206c,securityPolicy:_0x40d349,userIdentityType:_0x46feb7,credentials:_0x58341a,namespaceAliases:_0x1105c4}=_0xec5f13,_0x31a957={'endpoint':_0x194b81,'securityMode':_0x5a206c,'securityPolicy':_0x40d349,'userIdentityType':_0x46feb7,'credentials':_0x58341a,'namespaceAliases':_0x1105c4};return _0x31a957;},_0x4902f3=()=>{const _0x187075=_0x4d4009,_0x153a35=$(_0x187075(0x2bc)),_0x46568c=_0x153a35['val'](),_0x1d1d87=_0x1be051();if(!_0x1d1d87)return undefined;const _0x384fc4=_0x1d1d87[_0x187075(0x1b7)];return Object[_0x187075(0x2b1)]({'namespaceAliases':_0x384fc4,'id':_0x46568c},_0x1d1d87);},_0x244f8f=()=>{return{'endpointNode':_0x4902f3};};RED[_0x4d4009(0x2ba)][_0x4d4009(0x1e2)](_0x4d4009(0x2a7),{'category':_0x4d4009(0x290),'color':'#C0DEED','align':'right','icon':_0x4d4009(0x25b),'paletteLabel':_0x4d4009(0x272),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'historyReadParam':{'value':{'type':_0x4d4009(0x1ee),'endTime':_0x4d4009(0x1f7),'startTime':_0x4d4009(0x2ea),'numValuesPerNode':0x64,'returnBounds':!![]},'required':!![],'validate':_0xee475d=>{if(_0xee475d==='')return![];return!![];}},'nodeId':{'value':'','required':![]},'outputType':{'value':_0x4d4009(0x254),'required':!![]}},'outputs':0x2,'label'(){const _0x22b3e2=_0x4d4009;return this[_0x22b3e2(0x203)]||_0x22b3e2(0x264);},'labelStyle'(){const _0x201b71=_0x4d4009;return this[_0x201b71(0x203)]?'node_label_italic':'';},'oneditprepare'(){const _0x2c5c84=_0x4d4009,_0x2e8045=this;_0x4dd192(),_0x2e8045['inputs']=0x1;const _0x4924e0=$(_0x2c5c84(0x253));_0x4924e0[_0x2c5c84(0x2b4)](Object[_0x2c5c84(0x2b1)](Object[_0x2c5c84(0x2b1)]({},_0x244f8f()),{'isSelectable'(_0x6883aa){const _0x3b1f28=_0x2c5c84;return _0x6883aa[_0x3b1f28(0x298)]==='Variable';}})),$('#select-history-type')[_0x2c5c84(0x24c)](_0x2e8045['historyReadParam']['type']);switch(_0x2e8045[_0x2c5c84(0x223)][_0x2c5c84(0x209)]){case _0x2c5c84(0x1ee):$(_0x2c5c84(0x237))[_0x2c5c84(0x24c)](_0x2e8045[_0x2c5c84(0x223)][_0x2c5c84(0x248)]),$(_0x2c5c84(0x269))[_0x2c5c84(0x24c)](_0x2e8045[_0x2c5c84(0x223)][_0x2c5c84(0x1d7)]),$('#node-input-raw-numValuesPerNode')[_0x2c5c84(0x24c)](_0x2e8045['historyReadParam'][_0x2c5c84(0x2e1)]),$('#node-input-returnBounds')[_0x2c5c84(0x28f)]('checked',_0x2e8045[_0x2c5c84(0x223)][_0x2c5c84(0x25f)]);break;case'modified':$(_0x2c5c84(0x26a))[_0x2c5c84(0x24c)](_0x2e8045['historyReadParam'][_0x2c5c84(0x248)]),$(_0x2c5c84(0x2be))['val'](_0x2e8045[_0x2c5c84(0x223)][_0x2c5c84(0x1d7)]),$(_0x2c5c84(0x24e))[_0x2c5c84(0x24c)](_0x2e8045[_0x2c5c84(0x223)][_0x2c5c84(0x2e1)]),$(_0x2c5c84(0x2df))[_0x2c5c84(0x28f)](_0x2c5c84(0x1bc),_0x2e8045['historyReadParam']['returnBounds']);break;case _0x2c5c84(0x2eb):_0x2e8045['historyReadParam'][_0x2c5c84(0x220)]=_0x2e8045[_0x2c5c84(0x223)][_0x2c5c84(0x220)]||{},$(_0x2c5c84(0x2a3))[_0x2c5c84(0x24c)](_0x2e8045[_0x2c5c84(0x223)][_0x2c5c84(0x248)]),$(_0x2c5c84(0x292))[_0x2c5c84(0x24c)](_0x2e8045['historyReadParam'][_0x2c5c84(0x1d7)]),$(_0x2c5c84(0x246))[_0x2c5c84(0x24c)](_0x2e8045[_0x2c5c84(0x223)][_0x2c5c84(0x215)]),$(_0x2c5c84(0x1fb))[_0x2c5c84(0x24c)](_0x2e8045['historyReadParam'][_0x2c5c84(0x258)]),$('#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults')['prop'](_0x2c5c84(0x1bc),_0x2e8045['historyReadParam']['aggregateConfiguration'][_0x2c5c84(0x27a)]),$('#node-input-processed-details-aggregateConfiguration-treatUncertainAsBad')[_0x2c5c84(0x28f)](_0x2c5c84(0x1bc),_0x2e8045['historyReadParam']['aggregateConfiguration'][_0x2c5c84(0x200)]),$(_0x2c5c84(0x2d7))['val'](_0x2e8045['historyReadParam'][_0x2c5c84(0x220)][_0x2c5c84(0x1fe)]),$(_0x2c5c84(0x288))[_0x2c5c84(0x24c)](_0x2e8045['historyReadParam']['aggregateConfiguration'][_0x2c5c84(0x2b8)]),$(_0x2c5c84(0x226))[_0x2c5c84(0x28f)](_0x2c5c84(0x1bc),_0x2e8045['historyReadParam'][_0x2c5c84(0x220)]['useSlopedExtrapolation']);break;}{function _0x1ef036(){const _0x53063c=_0x2c5c84;$('#section-raw')[_0x53063c(0x2a0)](),$('#section-modified')[_0x53063c(0x2a0)](),$(_0x53063c(0x26f))[_0x53063c(0x2a0)](),$(_0x53063c(0x233))[_0x53063c(0x2a0)](),$(_0x53063c(0x1b8))['hide'](),$(_0x53063c(0x20f))[_0x53063c(0x2a0)]();}function _0x1dbef0(){const _0xd3b26b=_0x2c5c84;_0x1ef036();var _0x2f4bb6=$(_0xd3b26b(0x1eb))[_0xd3b26b(0x24c)]();$(_0xd3b26b(0x28c)+_0x2f4bb6)[_0xd3b26b(0x2ac)]();}$(_0x2c5c84(0x1eb))['on'](_0x2c5c84(0x266),_0x1dbef0),_0x1dbef0();}},'oneditsave'(){const _0x3cde22=_0x4d4009,_0x44ce40=_0x791f06=>_0x791f06[_0x3cde22(0x24c)]()==undefined?'':_0x791f06[_0x3cde22(0x24c)]()[_0x3cde22(0x1e3)](),_0x23bbaf=_0x68e0c7=>_0x68e0c7[_0x3cde22(0x24c)]()==undefined?0x0:_0x68e0c7['val'](),_0x20a1a2=$(_0x3cde22(0x1eb))[_0x3cde22(0x24c)]();switch(_0x20a1a2){case _0x3cde22(0x1ee):this[_0x3cde22(0x223)]={'type':_0x3cde22(0x1ee),'startTime':_0x44ce40($('#node-input-raw-startTime')),'endTime':_0x44ce40($(_0x3cde22(0x269))),'numValuesPerNode':_0x23bbaf($(_0x3cde22(0x241))),'returnBounds':$(_0x3cde22(0x1d4))[_0x3cde22(0x28f)](_0x3cde22(0x1bc))};break;case _0x3cde22(0x1c6):this['historyReadParam']={'type':'modified','startTime':_0x44ce40($(_0x3cde22(0x26a))),'endTime':_0x44ce40($(_0x3cde22(0x2be))),'numValuesPerNode':_0x23bbaf($(_0x3cde22(0x24e))),'returnBounds':$(_0x3cde22(0x2df))[_0x3cde22(0x28f)](_0x3cde22(0x1bc))};break;case _0x3cde22(0x2eb):this['historyReadParam']={'type':_0x3cde22(0x2eb),'startTime':_0x44ce40($(_0x3cde22(0x2a3))),'endTime':_0x44ce40($(_0x3cde22(0x292))),'processingInterval':_0x23bbaf($('#node-input-processed-details-processingInterval')),'aggregateType':_0x44ce40($(_0x3cde22(0x1fb))),'aggregateConfiguration':{'useServerCapabilitiesDefaults':$(_0x3cde22(0x291))['prop'](_0x3cde22(0x1bc)),'treatUncertainAsBad':$(_0x3cde22(0x22e))['prop']('checked'),'percentDataBad':_0x23bbaf($('#node-input-processed-details-aggregateConfiguration-percentDataBad')),'percentDataGood':_0x23bbaf($(_0x3cde22(0x288))),'useSlopedExtrapolation':$(_0x3cde22(0x226))[_0x3cde22(0x28f)](_0x3cde22(0x1bc))}};break;}}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0OGQ0NzIiLCJfMHg1YmIxNGUiLCJfMHg1NWVkNGYiLCJfMHgyNTgyM2MiLCJfMHgyYWE4ODQiLCJfMHgyMmU2YTQiLCJfMHg0NzlkMDUiLCJfMHg1MjIwYzgiLCJQcm9taXNlIiwiXzB4MTRmZGNjIiwiXzB4MTc3NzExIiwiXzB4NDA1NmY4IiwiXzB4Mzg3YmEwIiwiXzB4NWUwNmYzIiwiXzB4NTllNmZiIiwiXzB4NDRjMDg2IiwiXzB4NDY0Yjc2IiwiXzB4NmJiYTFlIiwiXzB4NTM5ZGJlIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTdjMjM2IiwiXzB4MWIxMzFlIiwiXzB4MTVmNjhjIiwiXzB4MmVkM2Q4IiwiRXJyb3IiLCJfMHgzNDdlNmEiLCJfMHgzNzEzYjIiLCJfMHgxMTNmNzUiLCJfMHgxYzE5MTkiLCJfMHg1NTdmMzMiLCJfMHg0YzFlYmYiLCJfMHg1YWI2NDIiLCJfMHg1OTRjMjQiLCJfMHg1MGZjYWEiLCJfMHgxODE5NTkiLCJfMHg0NmY4NDIiLCJfMHgxNmM1MmIiLCJfMHgyYWZhODciLCJfMHg1YjNkMTAiLCJfMHg0YWVlOTEiLCJfMHgxM2JmYjMiLCJfMHg1YTc2N2MiLCJfMHgzYzFhZTQiLCJfMHg0OTllYzYiLCJfMHg1MTlmOTkiLCJfMHg1ZDRhYTMiLCJfMHg0ODY3MjciLCJfMHg0ZGUyYTIiLCJlbmRwb2ludE5vZGUiLCJfMHgyODcwNTgiLCJlbmRwb2ludCIsIl8weGNjZWUzNSIsImJhc2VVcmwiLCJfMHgyNGEzZTIiLCJfMHgyOGU3NWQiLCJfMHg0M2VmNmUiLCJfMHgyYmMxNTciLCJfMHgzNmRlY2IiLCJfMHg0ZDg4YmUiLCJPYmplY3QiLCJfMHg0NGRkNTUiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NTNiZWY1IiwiXzB4ZDU5MGI2IiwiXzB4M2JiMzY1IiwiXzB4MzBhODM4IiwiXzB4NDIyZjEwIiwiXzB4YTI2N2RkIiwiXzB4MzdhMzIzIiwiXzB4NWI2OGMwIiwiXzB4MTdjYTZkIiwiXzB4MTU4YTQwIiwibm9kZUlkIiwiXzB4NWIxOTE2Iiwicm9vdE5vZGVJZCIsIl8weDE5NzM2MiIsImlzVHlwZSIsIl8weDFhNjk3MiIsIl8weDRhMzA0ZiIsIl8weDgzNTBkNyIsIl8weDU3YjUyMSIsIl8weDEwYjlmZSIsIl8weDFiN2QzZCIsIl8weDg1ZDg3OCIsIl8weDU2MmYyOCIsIl8weDU2MDYyZCIsIl8weDViODEyNCIsIl8weDkyODc5YiIsIl8weDI0MzM1NiIsIl8weDI4Y2ExNCIsIl8weDQ0MDBlYiIsIl8weDIyZTk4YiIsIl8weDI1Zjk5OCIsIl8weDU4MzcwZCIsIl8weDRhMTAxZCIsIl8weDU3NDM3ZSIsIl8weDI4ZDUxNCIsIl8weDFiZTM0NCIsIl8weDRiNjIyNyIsIl8weDUxZDYxMSIsIl8weDJiM2Q0MyIsIl8weDIwNDY5NSIsIl8weDRkOTQ4MSIsIl8weDMyMGQwZiIsIl8weDFhZjQ3MiIsIl8weDE2OGRmMiIsIl8weDQyN2Q4YSIsIl8weDFlYzBiMyIsIl8weDRmNDBjMiIsIlJFRCIsIl8weDQ0MmZkMyIsIl8weDQ3OWI0NSIsIl8weDRhYTc0MSIsIl8weDQ3NzBkZSIsIl8weDE3OTkzNSIsIl8weDVlOWVhNSIsIl8weDI5MGI5OCIsIl8weDUyNThkYyIsIl8weDJkNzdjNiIsIl8weDNjYTQyNiIsIl8weDI0MGY0YyIsIl8weDViNTliOSIsIl8weDIxMjIyYSIsIl8weDI2ZGFhNyIsIl8weDI0NjYyMiIsImpzb24iLCJfMHgzZTg1YjUiLCJkYXRhIiwiXzB4NDA3N2U2IiwiXzB4MTJlYmNiIiwiXzB4MTJhOTEwIiwiXzB4MWM0MDA2Iiwic2V0VGltZW91dCIsIl8weDRmMWRkMSIsIl8weDQ3ODcyNSIsIl8weDM5NjIyZSIsIl8weDJjYjYxMSIsIl8weDU3OTlkNSIsIl8weDFiMWM4NyIsIl8weDQ0MTkwNyIsIl8weDFjNTMxYyIsIl8weDUwNjJhNSIsIl8weDE2MzI5MyIsIl8weDQxZjE3ZSIsIl8weDU4YjkyYyIsIl8weDFhZDM2NiIsIl8weDFiNmUxZiIsIl8weDNlOTg1NSIsIl8weDQwMGZlZCIsIl8weDI4YTMyNSIsIl8weDRmYmZkMyIsIl8weDUzZTM5NSIsIl8weDFhM2UzYSIsIl8weDVhNjcyMCIsIiQiLCJfMHg0YzA0OTQiLCJfMHgzMzJmYjAiLCJpY29uIiwiXzB4NWI5MDQ0IiwiY29sb3IiLCJfMHg0OTlkMDciLCJfMHgxZjEyMjciLCJfMHgxYTdjNTYiLCJfMHhmNjY1ZmQiLCJfMHgyN2ZhNWUiLCJfMHgxOTE0NGYiLCJfMHg0OTRjOTkiLCJfMHhiMTRlY2EiLCJfMHgxNmU5N2EiLCJfMHg0MDgxNmQiLCJfMHg0OTIxOTAiLCJfMHgyYTMwYTkiLCJfMHg1MDY4MjMiLCJfMHgxY2Q4NDciLCJfMHgzNTcyN2IiLCJfMHhhMjk3MWIiLCJfMHg0NDhhM2YiLCJfMHgyYTRjNmEiLCJfMHg1MTNhN2QiLCJfMHg0MDM2ZDIiLCJfMHgzMmVmNDkiLCJfMHgzNjBmMzciLCJfMHg1ZDk2N2MiLCJ1bmRlZmluZWQiLCJfMHgzZTNhMTUiLCJfMHhkODg2OTMiLCJfMHgzMzdiNTIiLCJfMHg0NmJiNDYiLCJfMHgyNjYyODkiLCJfMHg5MjE0MjAiLCJfMHgxNWQyNzkiLCJfMHgxMzdjNjEiLCJfMHg1MzZlYmMiLCJfMHgxY2MzOGUiLCJfMHhhNjNjYjQiLCJfMHgxYzIyNmMiLCJfMHg1NTZmMzYiLCJfMHgyMDgyZmUiLCJyZWZlcmVuY2VzIiwiXzB4NGRiMTJiIiwiXzB4YWMyYWE1IiwiXzB4MWVmYTQxIiwiXzB4NTRhYjBiIiwiXzB4ZWU0MjZmIiwiXzB4MmIyMTY1IiwiXzB4MzU0MWFlIiwiXzB4MmZkNTQ2IiwiXzB4NGUyNWZmIiwiXzB4NTY2NTlkIiwiXzB4NGU4Y2M3IiwiXzB4ODA1YTYwIiwiXzB4MWFkZDA1IiwiXzB4MmNmODUxIiwiXzB4MzU3OTI1IiwiXzB4M2NmMDgwIiwiXzB4NGRkMTkyIiwiXzB4NDQzMzcwIiwiXzB4NWVmN2E5IiwiXzB4NWI4MjY0IiwiXzB4NWE4ODA4IiwiXzB4NTBlYmE4IiwiXzB4NTk5ZTdjIiwiXzB4MTQzMDc4IiwiXzB4NWQxMDNkIiwiXzB4MjJjYTI2IiwiXzB4NTc0YzQ5IiwiXzB4M2Q4NDEwIiwiXzB4NGZhOWU5IiwiXzB4NDQyZTIxIiwiZG9jdW1lbnQiLCJfMHgxMjZlZDYiLCJfMHgyZjVmYjkiLCJfMHgxYjhiZjAiLCJfMHgyNjMxYTkiLCJfMHg1ZjE3MzEiLCJfMHhlNGQxMGQiLCJfMHgxYzY5M2UiLCJfMHgzNmJlMDIiLCJfMHgxNWE1YzIiLCJfMHg1OTZlMDMiLCJfMHgyNzdkMWMiLCJfMHg1MTg1OGYiLCJfMHgyMzFlZmIiLCJfMHgyOTU3MDYiLCJfMHgzZGY3ZjciLCJfMHgzM2Y2Y2EiLCJfMHgzYjI4NDAiLCJfMHg1MGE0NGYiLCJfMHhlNmYyZGEiLCJ3aW5kb3ciLCJfMHgxMGZkM2MiLCJfMHg0OTkzOWMiLCJfMHgyZTViNWQiLCJfMHg1Y2Y3YjciLCJfMHg0ZmM1NWQiLCJfMHg1OWYwOTYiLCJfMHgyZmNmOWUiLCJfMHg1ODkyZGMiLCJfMHgzZjZmODMiLCJfMHgyNGYyMWQiLCJfMHgxNmI5ZGQiLCJfMHgyZjY3MDMiLCJfMHg1NGI4YmMiLCJfMHg1NmRmODUiLCJfMHgzMmNiNDIiLCJfMHhhODkwNjQiLCJfMHgzZjkyYzgiLCJfMHg1YzAyYWUiLCJfMHgyYWNlNDYiLCJfMHgzMTdiMGEiLCJfMHg1ZWE4MzYiLCJfMHg1MjU3MTciLCJfMHgxNjk4ZGEiLCJfMHgyY2ZmNzUiLCJfMHg0ZDA1OWMiLCJfMHg0YjI4YWIiLCJfMHgxNjNiNDgiLCJfMHg1YzFlZjciLCJfMHgxNWVjOWMiLCJfMHg0OGFjOTgiLCJfMHg1ZWE1YTciLCJfMHhlNzA0MzQiLCJfMHgzYmExZDkiLCJfMHgzNjVlZDEiLCJfMHg0ZWRkY2MiLCJfMHgyY2ZkZDUiLCJfMHgzMGQ0NzciLCJfMHgxODI3NWUiLCJfMHg0NjRmMWEiLCJfMHgyMDE1NjAiLCJfMHg1Y2QwMjciLCJfMHgxNmI4MTYiLCJfMHg1MjI5ZDciLCJfMHg0OWMyZWIiLCJfMHgyNDE5ZjMiLCJfMHg1YzVmYjEiLCJfMHgxNWZhOGMiLCJfMHg1M2RlMTUiLCJfMHgzNWI0ZmIiLCJfMHg3YzY0NzEiLCJfMHg0M2NmOTkiLCJfMHgxYmNhZjMiLCJfMHgzZTJmNjUiLCJfMHg1MmRkNWEiLCJfMHgxYmUwNTEiLCJfMHg0NTZiMjciLCJfMHgzNGNjOGQiLCJfMHhlYzVmMTMiLCJfMHgxOTRiODEiLCJzZWN1cml0eU1vZGUiLCJfMHg1YTIwNmMiLCJzZWN1cml0eVBvbGljeSIsIl8weDQwZDM0OSIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHg0NmZlYjciLCJjcmVkZW50aWFscyIsIl8weDU4MzQxYSIsIm5hbWVzcGFjZUFsaWFzZXMiLCJfMHgxMTA1YzQiLCJfMHgzMWE5NTciLCJfMHg0OTAyZjMiLCJfMHgxNTNhMzUiLCJfMHg0NjU2OGMiLCJfMHgxZDFkODciLCJfMHgzODRmYzQiLCJfMHgyNDRmOGYiLCJfMHhlZTQ3NWQiLCJfMHgyZTgwNDUiLCJfMHg0OTI0ZTAiLCJfMHg2ODgzYWEiLCJfMHgxZWYwMzYiLCJfMHgxZGJlZjAiLCJfMHgyZjRiYjYiLCJfMHg0NGNlNDAiLCJfMHg3OTFmMDYiLCJfMHgyM2JiYWYiLCJfMHg2OGUwYzciLCJfMHgyMGExYTIiXSwibWFwcGluZ3MiOiIyMU1BQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEs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QUFBLENBQVosQ0FGUyxDLFNBR3BCLENBQVNtTCxTQUFBLENBQVluTCxDQUFBLEMsZ0JBQUEsQ0FBWixDQUhXLEMsb0JBSXBCLENBQW9CcUwsU0FBQSxDQUFjckwsQ0FBQSxDLGtEQUFBLENBQWQsQ0FKQSxDLGVBS3BCLENBQWVtTCxTQUFBLENBQVluTCxDQUFBLEMsZ0JBQUEsQ0FBWixDQUxLLEMsd0JBTXBCLENBQXdCLEMsK0JBQ3BCLENBQStCQSxDQUFBLEMsZ0JBQUEsRSxNQUFBLEUsZ0JBQUEsQ0FEWCxDLHFCQUVwQixDQUFxQkEsQ0FBQSxDLGdCQUFBLEUsTUFBQSxFLFNBQUEsQ0FGRCxDLGdCQUdwQixDQUFnQnFMLFNBQUEsQ0FBY3JMLENBQUEsQyxxRUFBQSxDQUFkLENBSEksQyxpQkFJcEIsQ0FBaUJxTCxTQUFBLENBQWNyTCxDQUFBLEMsZ0JBQUEsQ0FBZCxDQUpHLEMsd0JBS3BCLENBQXdCQSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLENBTEosQ0FOSixDQUF4QixDQWNBLE1BbENSLEMsQ0FwRzRDLENBQXBELEMsRUFuaENKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9IChfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9IChfYSwgX2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgX2JdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGNob29zZU5vZGVJZCA9IChkYXRhLCBtb2RlKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgIT09IFwiR29vZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5yZXF1ZXN0ZWROb2RlSWQ7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9hbGlhc2VkIHx8IGRhdGEuYnBfaW5kZXhlZDtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkX2FsaWFzZWQgfHwgZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9uc3U7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgbWFrZVRvb2x0aXAgPSAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGBzdGF0dXNDb2RlOiAke2RhdGEuc3RhdHVzQ29kZX1gO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IHN0ciA9IFtdO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGVJZDogJHtkYXRhLm5vZGVJZH1gKTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBicm93c2UgcGF0aDogJHtkYXRhLmJwX2luZGV4ZWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgbm9kZSBjbGFzczogJHtOb2RlQ2xhc3NbZGF0YS5ub2RlQ2xhc3NdfWApO1xuICAgICAgICAgICAgaWYgKGRhdGEubm9kZUlkX25zdSkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBuc3Ugbm9kZUlkOiAke2RhdGEubm9kZUlkX25zdX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9hbGlhc2VkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgTm9kZUlkOiAke2RhdGEubm9kZUlkX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5icF9pbmRleGVkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgYnJvd3NlUGF0aDogJHtkYXRhLmJwX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RyLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1vZGUoZW5oYW5jZWROb2RlSWQpIHtcbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9ebnN1PS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14obnM9Lio7KT8oaXxifHN8Zyk9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zYT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYWxpYXNlZE5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKVswLTldKzovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKS4qOi8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJicm93c2VQYXRoXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZShzdHIpIHtcbiAgICAgICAgY29uc3QgbW9kZSA9IGZpZ3VyZU91dE1vZGUoc3RyKTtcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiblwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuYVwiO1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5zdVwiO1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJiXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0XCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdG9Nb2RlKHYpIHtcbiAgICAgICAgbGV0IG1vZGU7XG4gICAgICAgIHN3aXRjaCAodikge1xuICAgICAgICAgICAgY2FzZSBcIm5cIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJub2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuYVwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuc3VcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImFiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYWxpYXNlZEJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZnJvbU1vZGUobW9kZSkge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5hXCI7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnN1XCI7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImJcIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFiXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcInRcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBfY2FsbENoZWNrTm9kZUlkID0gKF9hLCBub2RlSWRfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGVJZCA9IGVuZHBvaW50Tm9kZS5pZDtcbiAgICAgICAgY29uc3QgbiA9IFJFRC5ub2Rlcy5ub2RlKGVJZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKG4ubmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgIG4ubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50Tm9kZS5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiB7IGpzb24sIGRhdGEgfTtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG1vZGUsICRpbnB1dEVsZW1lbnQsICRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGVuaGFuY2VkTm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgeyBqc29uLCBkYXRhIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBlbmhhbmNlZE5vZGVJZCk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIGVuaGFuY2VkTm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29sdGlwID0gbWFrZVRvb2x0aXAoanNvbik7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC5hdHRyKFwidGl0bGVcIiwgdG9vbHRpcCk7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtlbmhhbmNlZE5vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBzb3J0IHJlZmVyZW5jZSAgIGJ5IGJyb3dzZU5hbWVcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzLnNvcnQoKGEsIGIpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuICgoKF9hID0gYS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmFtZSkgfHwgXCJcIikubG9jYWxlQ29tcGFyZSgoKF9iID0gYi5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgXCJcIik7IH0pO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFBhcmVudE5vZGUgPSB7XG4gICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiBkZWZhdWx0UGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5fX3BhcmVudE5vZGUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlIHx8IGRlZmF1bHRQYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KG1vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIG1vZGUsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKS50aGVuKChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLnJlbW92ZUNsYXNzKFwiaW5wdXQtZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaGlkZU1lbnUobWVudSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1jbG9zZS1wcm9wZXJ0eS1zZWxlY3RcIik7XG4gICAgICAgICAgICAgICAgbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChtZW51Lm9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gW107XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuZmluZCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnB1c2goJCh0aGlzKS5kYXRhKFwidmFsdWVcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayhzZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRlbGVtZW50RGl2LmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAvL3h4IH0gZWxzZSBpZiAodGhpcy4kb3B0aW9uU2VsZWN0VHJpZ2dlci5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8veHggICAgIHRoYXQuJG9wdGlvblNlbGVjdFRyaWdnZXIudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGVNZW51KG1lbnVPcHRpb25zLCBvcHRzLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBtZW51ID0gJChcIjxkaXY+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtdHlwZWRJbnB1dC1vcHRpb25zIHN0ZXJmaXZlLW9ubGluZS1tZW51XCIpO1xuICAgICAgICAgICAgICAgIG1lbnUub3B0cyA9IG9wdHM7XG4gICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgIG1lbnVPcHRpb25zLmZvckVhY2goKG9wdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0ID0geyB2YWx1ZTogb3B0LCBsYWJlbDogb3B0IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG9wID0gJCgnPGEgaHJlZj1cIiNcIj48L2E+JykuYXR0cihcInZhbHVlXCIsIG9wdC52YWx1ZSkuYXBwZW5kVG8obWVudSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnRleHQob3B0LmxhYmVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5wcm9wKFwidGl0bGVcIiwgb3B0LnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0Lmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiPFwiKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQob3B0Lmljb24pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiL1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogXCJtYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTsgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTtcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIjxpPlwiLCB7IGNsYXNzOiBcInJlZC11aS10eXBlZElucHV0LWljb24gXCIgKyBvcHQuaWNvbiB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AuY3NzKHsgcGFkZGluZ0xlZnQ6IFwiMThweFwiIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0Lmljb24gJiYgIW9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBjYjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNiID0gJCgnPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyhcInBvaW50ZXItZXZlbnRzXCIsIFwibm9uZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhKFwidmFsdWVcIiwgb3B0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmVwZW5kVG8ob3ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwibW91c2Vkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9wLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2IucHJvcChcImNoZWNrZWRcIiwgIWNiLnByb3AoXCJjaGVja2VkXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51Lm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRE9XTlxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5uZXh0KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAzOCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVUFxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5wcmV2KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAyNykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRVNDQVBFXG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVudTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNhcm1DbGljazogZmFsc2UsXG4gICAgICAgICAgICBfc2hvd01lbnUobWVudSwgcmVsYXRpdmVUbykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc2FybUNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYXJtQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIHBvcyA9IHJlbGF0aXZlVG8ub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IHJlbGF0aXZlVG8uaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIG1lbnVIZWlnaHQgPSBtZW51LmhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHZhciB0b3AgPSBoZWlnaHQgKyBwb3MudG9wO1xuICAgICAgICAgICAgICAgIGlmICh0b3AgKyBtZW51SGVpZ2h0IC0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgPiAkKHdpbmRvdykuaGVpZ2h0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wIC09IHRvcCArIG1lbnVIZWlnaHQgLSAkKHdpbmRvdykuaGVpZ2h0KCkgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodG9wIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBtZW51LmhlaWdodChtZW51SGVpZ2h0ICsgdG9wKTtcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHRvcCArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zLmxlZnQgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5zbGlkZURvd24oMTAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWxheShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QobWVudSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJChldmVudC50YXJnZXQpLmNsb3Nlc3QocmVsYXRpdmVUbykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5kaXNhcm1DbGljayA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3Nob3dUeXBlTWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93TWVudSh0aGF0LiRtZW51LCB0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGF0LnNlbGVjdGVkTWVudUl0ZW07XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhhdC4kbWVudS5maW5kKFwiW3ZhbHVlPSdcIiArIHR5cGUgKyBcIidcIik7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9LCAxMjApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbml0TWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLmF0dHIoXCJ0YWJpbmRleFwiLCAtMSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1mb2N1cy1ibG9ja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRtZW51KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGZhLWlkLWNhcmRcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlTGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJ0ZXh0XCIsIHZhbHVlOiBcInRcIiwgdGl0bGU6IFwiVmFsdWUgaXMgbm90IHZlcmlmaWVkXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWZvbnRcIi9pPiAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIm1zZy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIm1zZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwibm9kZSBpZCBvciAgYnJvd3NlIHBhdGggY29tZXMgZnJvbSBpbmplY3RlZCBtc2cgcGFyYW1ldGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1lbnZlbG9wZS1vcGVuLW9cIi8+JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWRcIiwgdmFsdWU6IFwiblwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+MSAmbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkFsaWFzZWQgTm9kZUlkXCIsIHZhbHVlOiBcIm5hXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiTm9kZUlkIHdpdGggbmFtZXNwYWNlIFVyblwiLCB2YWx1ZTogXCJuc3VcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtaWQtY2FyZFwiLz4mbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkJyb3dzZVBhdGhcIiwgdmFsdWU6IFwiYlwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+PGkgY2xhc3M9XCJmYSBmYS1maWdodGVyLWpldFwiLz4mbmJzcDsnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkFsaWFzZWQgQnJvd3NlIFBhdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcImFiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1ib29rbWFya1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZSh0aGF0LiRpbnB1dC52YWwoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IGEpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0dCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudSA9IHRoaXMuX2NyZWF0ZU1lbnUodHlwZUxpc3QsIHt9LCAodikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdG9Nb2RlKHYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24gTWVudSBzZWxlY3RlZCAhXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52ZXJpZnkobW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IHYpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSB2O1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbC5lbXB0eSgpLmFwcGVuZChgPHNwYW4gdGl0bGU9JHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnRpdGxlKSB8fCBcIlwifT4mbmJzcDsgJHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLmljb24pIHx8IFwiXCJ9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5zaG93KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbW9kZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9Nb2RlKHRoYXQuc2VsZWN0ZWRNZW51SXRlbSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0TW9kZShtb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IGZyb21Nb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5jc3MoXCJib3JkZXJcIiwgXCJub25lXCIpO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXRcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kZWxlbWVudERpdiA9IHRoYXQuJGlucHV0LndyYXAoXCI8ZGl2PlwiKS5wYXJlbnQoKS5hZGRDbGFzcyhcIm1haW4td3JhcHBlclwiKTtcbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIENvbWJvIGJyb3dzZXJcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1pbnB1dC13cmFwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gYWRkIGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdG9nZ2xlVHJlZUJ0blxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwib3BlbiBPUENVQSBBZGRyZXNzU3BhY2UgQnJvd3NlclwiPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdmVyaWZ5QnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbiB0aXRsZT1cInZlcmlmeSBub2RlSWQgb3IgYnJvd3NlUGF0aFwiPjxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZUlucHV0ID0gKGlucHV0KSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbm5lY3Rpb25EYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwganNvbiB9ID0geWllbGQgX2NhbGxDaGVja05vZGVJZChjb25uZWN0aW9uRGF0YSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgcHJlcGVuZGVkIGJ1dHRvblxuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QgPSAkKFwiPGRpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmJlZm9yZSh0aGF0LiR1aVNlbGVjdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIgPSAkKCc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIj48L2J1dHRvbj4nKS5wcmVwZW5kVG8odGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICAkKCc8aSBjbGFzcz1cInJlZC11aS10eXBlZElucHV0LWljb24gZmEgZmEtY2FyZXQtZG93blwiPjwvaT4nKS50b2dnbGUodHJ1ZSkuYXBwZW5kVG8odGhhdC4kc2VsZWN0VHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlclxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG93blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwiZm9jdXNcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImJsdXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyIG9wdCA9IHRoYXQudHlwZU1hcFt0aGF0LnByb3BlcnR5VHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAob3B0Lmhhc1ZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QucmVtb3ZlQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsID0gJCgnPHNwYW4gY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC10eXBlLWxhYmVsXCI+PC9zcGFuPicpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0TWVudSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdGVtcG9yYXR5IGluZm8gcGFuZWxcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBkcm9wIGRvd24gdHJlZVxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKS5hcHBlbmRUbyh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRkcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5zZXRNb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplSW5wdXQodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBjb250YWluaW5nOlxuICAgICAqICAtIHRoZSBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSxcbiAgICAgKiAgLSB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAqICAtIGNyZWRlbnRpYWxzXG4gICAgICogIC0gbmFtZXNwYWNlQWxpYXNlc1xuICAgICAqXG4gICAgICogZXh0cmFjdGVkIGZyb20gdGhlIHVpIHdpZGdldCAjbm9kZS1pbnB1dC1lbmRwb2ludFxuICAgICAqL1xuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMsIG5hbWVzcGFjZUFsaWFzZXMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROci5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IG5hbWVzcGFjZUFsaWFzZXMsIGlkOiBlbmRwb2ludElkIH0sIGVuZHBvaW50TnIpO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1IaXN0b3J5UmVhZFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwicmVhZC1oaXN0b3J5XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGhpc3RvcnlSZWFkUGFyYW06IHtcbiAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJhd1wiLFxuICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiBcIjFtIGFnb1wiLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IFwiMTFtIGFnb1wiLFxuICAgICAgICAgICAgICAgICAgICBudW1WYWx1ZXNQZXJOb2RlOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybkJvdW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiByZWFkIEhpc3RvcnlcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBvdXRwdXRUeXBlOiB7IHZhbHVlOiBcIlZhbHVlXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBDbGllbnQgSGlzdG9yeVJlYWRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnR5cGUpO1xuICAgICAgICAgICAgc3dpdGNoIChub2RlLmhpc3RvcnlSZWFkUGFyYW0udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJyYXdcIjpcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJhdy1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmF3LWVuZFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5lbmRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJhdy1udW1WYWx1ZXNQZXJOb2RlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0ubnVtVmFsdWVzUGVyTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLnJldHVybkJvdW5kcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtb2RpZmllZFwiOlxuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtc3RhcnRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uc3RhcnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLWVuZFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5lbmRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLW51bVZhbHVlc1Blck5vZGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5udW1WYWx1ZXNQZXJOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0ucmV0dXJuQm91bmRzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcInByb2Nlc3NlZC1kZXRhaWxzXCI6XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uID0gbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24gfHwge307XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtZW5kVGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmVuZFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtcHJvY2Vzc2luZ0ludGVydmFsXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0ucHJvY2Vzc2luZ0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZVR5cGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHNcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHMpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi10cmVhdFVuY2VydGFpbkFzQmFkXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnRyZWF0VW5jZXJ0YWluQXNCYWQpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUJhZFwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24ucGVyY2VudERhdGFCYWQpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUdvb2RcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnBlcmNlbnREYXRhR29vZCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXVzZVNsb3BlZEV4dHJhcG9sYXRpb25cIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udXNlU2xvcGVkRXh0cmFwb2xhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBhZHZhbmNlZCBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBoaWRlQWxsU2VjdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLXJhd1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1tb2RpZmllZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1wcm9jZXNzZWQtZGV0YWlsc1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1hdC10aW1lXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLWFubm90YXRpb24tZGF0YVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1ldmVudFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRvZ2dsZVNlY3Rpb25zKCkge1xuICAgICAgICAgICAgICAgICAgICBoaWRlQWxsU2VjdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9ICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxlcnQoXCJ0b2dnbGVTZWN0aW9ucyBcIiArIHNlbGVjdGVkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tXCIgKyBzZWxlY3RlZFZhbHVlKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS5vbihcImNoYW5nZVwiLCB0b2dnbGVTZWN0aW9ucyk7XG4gICAgICAgICAgICAgICAgdG9nZ2xlU2VjdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNUZXh0ID0gKGEpID0+IChhLnZhbCgpID09IHVuZGVmaW5lZCA/IFwiXCIgOiBhLnZhbCgpLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBc051bWJlciA9IChhKSA9PiAoYS52YWwoKSA9PSB1bmRlZmluZWQgPyAwIDogYS52YWwoKSk7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLnZhbCgpO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInJhd1wiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlSZWFkUGFyYW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJhd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcmF3LXN0YXJ0VGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcmF3LWVuZFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtVmFsdWVzUGVyTm9kZTogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcmF3LW51bVZhbHVlc1Blck5vZGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiAkKFwiI25vZGUtaW5wdXQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwibW9kaWZpZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5UmVhZFBhcmFtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJtb2RpZmllZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1lbmRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bVZhbHVlc1Blck5vZGU6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLW51bVZhbHVlc1Blck5vZGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicHJvY2Vzc2VkLWRldGFpbHNcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5UmVhZFBhcmFtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJwcm9jZXNzZWQtZGV0YWlsc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1lbmRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NpbmdJbnRlcnZhbDogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtcHJvY2Vzc2luZ0ludGVydmFsXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZVR5cGU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVUeXBlXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0czogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHNcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlYXRVbmNlcnRhaW5Bc0JhZDogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdHJlYXRVbmNlcnRhaW5Bc0JhZFwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50RGF0YUJhZDogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUJhZFwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudERhdGFHb29kOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhR29vZFwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU2xvcGVkRXh0cmFwb2xhdGlvbjogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2xvcGVkRXh0cmFwb2xhdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-HistoryRead">
11
11
  <style>