@opcua/for-node-red 2.16.0 → 2.18.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.
- package/all.js +348 -1
- package/config-panel/assets/{index-B2t8v8l8.css → index-QtyZbFyg.css} +1 -1
- package/config-panel/index.html +2 -2
- package/package.json +1 -32
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +2 -2
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.html +2 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
- /package/config-panel/assets/{index-DWlTPfa9.js → index-B-6Bptzq.js} +0 -0
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x4bfc(_0x48c820,_0x115b11){const _0x46b449=_0x46b4();return _0x4bfc=function(_0x4bfc6a,_0x4ae110){_0x4bfc6a=_0x4bfc6a-0x13c;let _0x5d22ff=_0x46b449[_0x4bfc6a];return _0x5d22ff;},_0x4bfc(_0x48c820,_0x115b11);}(function(_0x20cef9,_0x74a89c){const _0x5f53c5=_0x4bfc,_0x5fa125=_0x20cef9();while(!![]){try{const _0x574311=parseInt(_0x5f53c5(0x19f))/0x1*(-parseInt(_0x5f53c5(0x149))/0x2)+parseInt(_0x5f53c5(0x144))/0x3*(-parseInt(_0x5f53c5(0x209))/0x4)+-parseInt(_0x5f53c5(0x1f6))/0x5*(-parseInt(_0x5f53c5(0x210))/0x6)+parseInt(_0x5f53c5(0x1e0))/0x7+parseInt(_0x5f53c5(0x20d))/0x8*(-parseInt(_0x5f53c5(0x1ef))/0x9)+-parseInt(_0x5f53c5(0x198))/0xa+parseInt(_0x5f53c5(0x161))/0xb;if(_0x574311===_0x74a89c)break;else _0x5fa125['push'](_0x5fa125['shift']());}catch(_0x4d3bd0){_0x5fa125['push'](_0x5fa125['shift']());}}}(_0x46b4,0x5f527),(function(){'use strict';const _0x37b8e2=_0x4bfc;function _0x2ad32b(_0x34f324,_0x24d0da,_0x1d9fb0,_0x2c635d){function _0x5df6f3(_0x467a0a){return _0x467a0a instanceof _0x1d9fb0?_0x467a0a:new _0x1d9fb0(function(_0x533804){_0x533804(_0x467a0a);});}return new(_0x1d9fb0||(_0x1d9fb0=Promise))(function(_0x51ad39,_0x29d3ca){const _0x33f98d=_0x4bfc;function _0x2ca7b0(_0x3cc2ba){const _0x3c40d3=_0x4bfc;try{_0x11cbf0(_0x2c635d[_0x3c40d3(0x205)](_0x3cc2ba));}catch(_0x521dc0){_0x29d3ca(_0x521dc0);}}function _0x152c71(_0x4366e7){const _0xfe0c53=_0x4bfc;try{_0x11cbf0(_0x2c635d[_0xfe0c53(0x151)](_0x4366e7));}catch(_0x90d27b){_0x29d3ca(_0x90d27b);}}function _0x11cbf0(_0x356def){const _0x4274e3=_0x4bfc;_0x356def[_0x4274e3(0x1b4)]?_0x51ad39(_0x356def[_0x4274e3(0x159)]):_0x5df6f3(_0x356def[_0x4274e3(0x159)])['then'](_0x2ca7b0,_0x152c71);}_0x11cbf0((_0x2c635d=_0x2c635d[_0x33f98d(0x17c)](_0x34f324,_0x24d0da||[]))[_0x33f98d(0x205)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x1e1ab3,_0x2eb625,_0x44fd03){const _0x47c6ab=_0x4bfc;var _0x46db89=new Error(_0x44fd03);return _0x46db89[_0x47c6ab(0x181)]=_0x47c6ab(0x14b),_0x46db89[_0x47c6ab(0x1c6)]=_0x1e1ab3,_0x46db89[_0x47c6ab(0x1d8)]=_0x2eb625,_0x46db89;};const _0xa92ccb='ns=0;i=35',_0x285e61=_0x37b8e2(0x14f),_0x30773c='ns=0;i=47',_0x32d38d=_0x37b8e2(0x188),_0x1bc117=_0x37b8e2(0x174),_0x32e59a=_0x37b8e2(0x1fc),_0x14b10d=_0x37b8e2(0x1d6);var _0x1ddf59;(function(_0x56b8bd){const _0x5ec6f3=_0x37b8e2;_0x56b8bd[_0x56b8bd[_0x5ec6f3(0x18d)]=0x0]=_0x5ec6f3(0x18d),_0x56b8bd[_0x56b8bd['Inverse']=0x1]=_0x5ec6f3(0x180),_0x56b8bd[_0x56b8bd[_0x5ec6f3(0x17a)]=0x2]=_0x5ec6f3(0x17a),_0x56b8bd[_0x56b8bd[_0x5ec6f3(0x192)]=0x3]=_0x5ec6f3(0x192);}(_0x1ddf59||(_0x1ddf59={})));var _0x31e66d;(function(_0x49bff6){const _0x2789d0=_0x37b8e2;_0x49bff6[_0x49bff6['Unspecified']=0x0]='Unspecified',_0x49bff6[_0x49bff6[_0x2789d0(0x1e9)]=0x1]='Object',_0x49bff6[_0x49bff6[_0x2789d0(0x1cc)]=0x2]=_0x2789d0(0x1cc),_0x49bff6[_0x49bff6[_0x2789d0(0x1f3)]=0x4]='Method',_0x49bff6[_0x49bff6[_0x2789d0(0x204)]=0x8]='ObjectType',_0x49bff6[_0x49bff6[_0x2789d0(0x186)]=0x10]='VariableType',_0x49bff6[_0x49bff6[_0x2789d0(0x18b)]=0x20]=_0x2789d0(0x18b),_0x49bff6[_0x49bff6[_0x2789d0(0x173)]=0x40]=_0x2789d0(0x173),_0x49bff6[_0x49bff6[_0x2789d0(0x190)]=0x80]=_0x2789d0(0x190);}(_0x31e66d||(_0x31e66d={})));var _0x101364;(function(_0x496c40){const _0x49b1ec=_0x37b8e2;_0x496c40[_0x496c40[_0x49b1ec(0x1e9)]=0x1]='Object',_0x496c40[_0x496c40[_0x49b1ec(0x1cc)]=0x2]=_0x49b1ec(0x1cc),_0x496c40[_0x496c40[_0x49b1ec(0x1f3)]=0x4]='Method',_0x496c40[_0x496c40[_0x49b1ec(0x204)]=0x8]=_0x49b1ec(0x204),_0x496c40[_0x496c40[_0x49b1ec(0x186)]=0x10]=_0x49b1ec(0x186),_0x496c40[_0x496c40[_0x49b1ec(0x18b)]=0x20]=_0x49b1ec(0x18b),_0x496c40[_0x496c40['DataType']=0x40]=_0x49b1ec(0x173),_0x496c40[_0x496c40[_0x49b1ec(0x190)]=0x80]=_0x49b1ec(0x190);}(_0x101364||(_0x101364={})));function _0x532834(_0x339a7a,_0x55dede){const _0x4dfa77=_0x37b8e2;if(typeof _0x55dede===_0x4dfa77(0x1fb))return _0x55dede;const _0x1ee7fb=parseInt(_0x55dede,0xa);if(!isNaN(_0x1ee7fb))return _0x1ee7fb;const _0x407f6c=_0x55dede[_0x4dfa77(0x176)](/\||;|,/)[_0x4dfa77(0x147)](_0x340118=>_0x340118[_0x4dfa77(0x157)]());let _0x50b3bb=0x0;for(const _0x433a68 of _0x407f6c){_0x50b3bb|=_0x339a7a[_0x433a68];}return _0x50b3bb;}function _0x152b63(_0x4a9e42,_0x4cf662){const _0x16d777=_0x37b8e2;_0x4cf662=_0x532834(_0x4a9e42,_0x4cf662);const _0x5edcac=[];if(!_0x4a9e42)return _0x5edcac[_0x16d777(0x1e5)](_0x16d777(0x20e));for(const [_0x2526ef,_0x138871]of Object[_0x16d777(0x1dc)](_0x4a9e42)){typeof _0x4cf662===_0x16d777(0x1fb)&&((_0x4cf662&_0x138871)===_0x138871&&_0x5edcac['push'](_0x2526ef));}return _0x5edcac[_0x16d777(0x1e5)]('\x20|\x20');}var _0x494ded;(function(_0x576456){const _0x5c8584=_0x37b8e2;_0x576456[_0x576456[_0x5c8584(0x18b)]=0x1]=_0x5c8584(0x18b),_0x576456[_0x576456[_0x5c8584(0x1df)]=0x2]=_0x5c8584(0x1df),_0x576456[_0x576456[_0x5c8584(0x13e)]=0x4]='NodeClass',_0x576456[_0x576456[_0x5c8584(0x207)]=0x8]=_0x5c8584(0x207),_0x576456[_0x576456[_0x5c8584(0x1a8)]=0x10]=_0x5c8584(0x1a8),_0x576456[_0x576456[_0x5c8584(0x216)]=0x20]='TypeDefinition';}(_0x494ded||(_0x494ded={})));function _0x1573de(_0x4714d1){const _0x208d3a=_0x37b8e2;switch(_0x4714d1){case'Organizes':return _0xa92ccb;case _0x208d3a(0x17f):return _0x32d38d;case'HasComponent':return _0x30773c;case _0x208d3a(0x1c9):return _0x1bc117;case'HasSubtype':return _0x32e59a;case _0x208d3a(0x1e2):return _0x14b10d;}}const _0x9ceedb=_0x2cf494=>{const _0x5563c5=_0x37b8e2;switch(_0x2cf494[_0x5563c5(0x148)]){case _0x5563c5(0x1e9):if(_0x2cf494[_0x5563c5(0x1e8)]===_0xa92ccb);if(_0x2cf494[_0x5563c5(0x166)]===_0x285e61||_0x2cf494['referenceTypeId']==='i=61')return{'icon':_0x5563c5(0x1cf),'color':_0x5563c5(0x184)};return{'icon':_0x5563c5(0x1ee),'color':_0x5563c5(0x17d)};case _0x5563c5(0x1cc):if(_0x2cf494[_0x5563c5(0x1e8)]===_0x30773c)return{'icon':_0x5563c5(0x1b7),'color':_0x5563c5(0x178)};else return _0x2cf494['referenceTypeId']===_0x32d38d?{'icon':_0x5563c5(0x1b7),'color':'DodgerBlue'}:{'icon':'fa-list-alt','color':'CadetBlue'};case'Method':return{'icon':_0x5563c5(0x1e4),'color':_0x5563c5(0x194)};case'ObjectType':return{'icon':_0x5563c5(0x1ee),'color':_0x5563c5(0x202)};case _0x5563c5(0x186):return{'icon':_0x5563c5(0x20a),'color':_0x5563c5(0x202)};case _0x5563c5(0x173):return{'icon':_0x5563c5(0x1f4),'color':_0x5563c5(0x196)};}return{'icon':_0x5563c5(0x163),'color':'grey'};},_0x4d0b1b=(_0x3a4474,_0x209bfc,_0x36b351)=>_0x2ad32b(void 0x0,[_0x3a4474,_0x209bfc,_0x36b351],void 0x0,function*({endpointNode:_0x2a1317,endpoint:_0x23e37d,baseUrl:_0x3198d6},_0x38fc04,_0x344aef){const _0x24ee54=_0x37b8e2,_0x596379=_0x3198d6+_0x24ee54(0x15a),_0x140b7f=_0x596379+'/browse',_0x23cc3a=Object['assign'](Object['assign']({},_0x344aef),{'nodeId':_0x38fc04,'resultMask':0x3f}),_0x5bcb3d=yield fetch(_0x140b7f,{'method':_0x24ee54(0x1d3),'body':JSON[_0x24ee54(0x1db)]({'endpointNode':_0x2a1317,'endpoint':_0x23e37d,'browseDescription':_0x23cc3a}),'headers':{'Content-Type':_0x24ee54(0x1b1)}});if(_0x5bcb3d[_0x24ee54(0x1be)]!==0xc8)return console[_0x24ee54(0x1ab)]('fetching\x20failed\x20with\x20error',_0x5bcb3d[_0x24ee54(0x1be)],_0x5bcb3d['statusText']),{'references':[]};const _0x14fbed=yield _0x5bcb3d[_0x24ee54(0x140)](),_0x1c0778=_0x14fbed[_0x24ee54(0x200)]['references']||[];return{'references':_0x1c0778};}),_0x168e58={'referenceTypeId':_0x1573de('HasChild'),'includeSubtypes':!![],'browseDirection':_0x1ddf59[_0x37b8e2(0x18d)],'nodeClassMask':_0x31e66d[_0x37b8e2(0x1cc)]|_0x31e66d['Object']|_0x31e66d[_0x37b8e2(0x1f3)],'resultMask':0x3f},_0x47f8a0={'referenceTypeId':_0x1573de(_0x37b8e2(0x150)),'includeSubtypes':!![],'browseDirection':_0x1ddf59['Forward'],'nodeClassMask':_0x31e66d[_0x37b8e2(0x1cc)]|_0x31e66d[_0x37b8e2(0x1e9)]|_0x31e66d['Method'],'resultMask':0x3f},_0x12b9fa=(_0x44f641,_0x1febd1)=>_0x2ad32b(void 0x0,[_0x44f641,_0x1febd1],void 0x0,function*({endpointNode:_0x3dce2d,endpoint:_0x39c9ca,baseUrl:_0x34d917},{nodeId:_0x2db094,rootNodeId:_0xc488d7,isType:_0x387466}){const _0x28d6f4=_0x37b8e2,_0x3ec8e=_0x34d917+_0x28d6f4(0x15a),_0x2f22a8=_0x3ec8e+_0x28d6f4(0x206),_0x1aab3c=yield fetch(_0x2f22a8,{'method':_0x28d6f4(0x1d3),'body':JSON[_0x28d6f4(0x1db)]({'endpointNode':_0x3dce2d,'endpoint':_0x39c9ca,'nodeId':_0x2db094,'rootNodeId':_0xc488d7,'isType':_0x387466}),'headers':{'Content-Type':_0x28d6f4(0x1b1)}});if(_0x1aab3c[_0x28d6f4(0x1be)]!==0xc8)return null;const _0x6b2415=yield _0x1aab3c[_0x28d6f4(0x140)]();return _0x6b2415[_0x28d6f4(0x19d)];}),_0x2de5d1=(_0x83ff4f,_0x5f07ca,_0x698dbc)=>_0x2ad32b(void 0x0,[_0x83ff4f,_0x5f07ca,_0x698dbc],void 0x0,function*({endpointNode:_0x216cdf,endpoint:_0x214e25,baseUrl:_0x3c53e3},_0x2f5f3b,_0x3d96cc){const _0x588d35=_0x37b8e2,_0x2cfc5d=_0x3c53e3+'/opcua-endpoint2',_0x314fa6=_0x2cfc5d+_0x588d35(0x1f1),_0x2bb640=_0x2f5f3b[_0x588d35(0x20f)](),_0x3eb17f=yield fetch(_0x314fa6,{'method':_0x588d35(0x1d3),'body':JSON['stringify']({'endpointNode':_0x216cdf,'endpoint':_0x214e25,'nodeId':_0x2bb640}),'headers':{'Content-Type':_0x588d35(0x1b1)}}),_0x3850a5=(_0x3839eb,_0x342238)=>{const _0x51ebdc=_0x588d35;_0x3d96cc[_0x51ebdc(0x175)](_0x3839eb)['addClass'](_0x51ebdc(0x1ec))[_0x51ebdc(0x1da)](_0x342238),_0x3d96cc[_0x51ebdc(0x1d1)](),setTimeout(()=>{const _0x2416cd=_0x51ebdc;_0x3d96cc['removeClass'](_0x342238),_0x3d96cc[_0x2416cd(0x1fd)]();},0xbb8);},_0x1ff24a=yield _0x3eb17f[_0x588d35(0x140)]();_0x3eb17f['status']!==0xc8?_0x3850a5('!!failure!!'+_0x2bb640,_0x588d35(0x158)):_0x1ff24a['statusCode'][_0x588d35(0x1ce)](/Good/)?(_0x2f5f3b['val'](_0x1ff24a[_0x588d35(0x154)]),_0x2f5f3b[_0x588d35(0x14d)](_0x588d35(0x1f2)),_0x3850a5(_0x588d35(0x16a),'ok')):(_0x2f5f3b[_0x588d35(0x20f)](''+_0x2bb640),_0x3850a5(_0x1ff24a[_0x588d35(0x1cd)]+'\x20'+_0x3eb17f['statusText'],_0x588d35(0x158)));});function _0x576317(_0x10b35f,_0xe0e06f){return _0x2ad32b(this,void 0x0,void 0x0,function*(){const _0xf67874=_0x4bfc,_0x33763b=_0x10b35f[_0xf67874(0x1c3)](_0xf67874(0x159)),_0x40e4a1=yield _0x4d0b1b(_0xe0e06f,_0x33763b,_0x168e58),_0x57616d=yield _0x4d0b1b(_0xe0e06f,_0x33763b,_0x47f8a0);return{'references':[..._0x40e4a1[_0xf67874(0x1bb)],..._0x57616d[_0xf67874(0x1bb)]]};});}const _0x274df1={'referenceTypeId':_0x1573de(_0x37b8e2(0x1d7)),'includeSubtypes':!![],'browseDirection':_0x1ddf59[_0x37b8e2(0x18d)],'nodeClassMask':_0x31e66d[_0x37b8e2(0x18b)]|_0x31e66d[_0x37b8e2(0x204)]|_0x31e66d[_0x37b8e2(0x173)]|_0x31e66d['VariableType'],'resultMask':0x3f};function _0x43e4be(_0x465303,_0x344c55){return _0x2ad32b(this,void 0x0,void 0x0,function*(){const _0x532e58=_0x4bfc,_0x8303eb=_0x465303['data'](_0x532e58(0x159)),_0x11f3c2=yield _0x4d0b1b(_0x344c55,_0x8303eb,_0x274df1);return _0x11f3c2;});}const _0x3ed600=_0x5b4df6=>{const _0x4fdaaa=_0x37b8e2;var _0x46bc22,_0x1f9d8f,_0x293f66,_0x29acc4;if(!_0x5b4df6||!_0x5b4df6[_0x4fdaaa(0x146)]){const _0x5c43b7=$(_0x4fdaaa(0x179));return _0x5c43b7;}const _0x1c306b=_0x5b4df6[_0x4fdaaa(0x146)][_0x4fdaaa(0x1d0)](),_0xa47d4c=((_0x46bc22=_0x5b4df6[_0x4fdaaa(0x1a0)])===null||_0x46bc22===void 0x0?void 0x0:_0x46bc22['text'])||((_0x1f9d8f=_0x5b4df6['browseName'])===null||_0x1f9d8f===void 0x0?void 0x0:_0x1f9d8f['name'])||_0x5b4df6[_0x4fdaaa(0x146)][_0x4fdaaa(0x1d0)](),{icon:_0x552791,color:_0x11be82}=_0x9ceedb(_0x5b4df6),_0x450d2d='('+_0x5b4df6[_0x4fdaaa(0x146)][_0x4fdaaa(0x1d0)]()+')\x20'+(((_0x293f66=_0x5b4df6[_0x4fdaaa(0x15c)])===null||_0x293f66===void 0x0?void 0x0:_0x293f66[_0x4fdaaa(0x181)])||((_0x29acc4=_0x5b4df6['displayName'])===null||_0x29acc4===void 0x0?void 0x0:_0x29acc4[_0x4fdaaa(0x175)])||''),_0x51d6de=$('<li\x20key=\x22'+_0x5b4df6[_0x4fdaaa(0x146)][_0x4fdaaa(0x1d0)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x450d2d+'><i\x20class=\x22fa\x20'+_0x552791+_0x4fdaaa(0x212)+_0x11be82+_0x4fdaaa(0x1f7)+_0xa47d4c+_0x4fdaaa(0x183));return _0x51d6de[_0x4fdaaa(0x1da)](_0x4fdaaa(0x1e1)),_0x51d6de['data']('value',_0x1c306b),_0x51d6de['data'](_0x4fdaaa(0x1dd),_0x5b4df6),_0x51d6de;},_0x13b996=(_0x2595bd,_0xc42bdf)=>{const _0x3278a4=_0x37b8e2;return _0xc42bdf[_0x3278a4(0x1ed)](_0x3278a4(0x1a3)+_0x2595bd+'\x22]');},_0x14baac=(_0x3a6f22,_0x3ee0eb)=>{const _0x559435=_0x37b8e2;_0x3a6f22[_0x559435(0x13f)][_0x559435(0x1ed)](_0x559435(0x177))[_0x559435(0x18a)](_0x559435(0x1c5)),_0x3ee0eb[_0x559435(0x1ed)]('.tree-text:first')[_0x559435(0x1da)]('selected');},_0x4fcd21=(_0x8f21e1,_0x4c5b09,_0x46acfd)=>_0x2ad32b(void 0x0,void 0x0,void 0x0,function*(){const _0x2481fc=_0x37b8e2;let _0xe76b50=_0x46acfd[_0x2481fc(0x1a2)](_0x2481fc(0x1f5));_0x4c5b09[_0x2481fc(0x18f)][_0x2481fc(0x153)]||[];const _0x565f46=_0x4c5b09[_0x2481fc(0x1f8)]||[];if(_0x565f46[_0x2481fc(0x1bf)]===0x0)return;for(const _0x2d309e of _0x565f46){_0xe76b50[_0x2481fc(0x1d5)](_0x2481fc(0x1e1))&&(yield _0x126c05(_0x8f21e1,_0xe76b50));const _0x2d6b10=_0x13b996(_0x2d309e,_0xe76b50);if(_0x2d6b10['length']===0x0)return;_0xe76b50=_0x2d6b10;}_0x14baac(_0x8f21e1,_0xe76b50),_0x5edb40(_0x8f21e1[_0x2481fc(0x16b)],_0xe76b50);});function _0x5edb40(_0x15b8a9,_0x11712b){const _0x4d1223=_0x37b8e2,_0x15d3df=_0x11712b[_0x4d1223(0x156)]()[_0x4d1223(0x1f9)],_0x3991db=_0x15b8a9['scrollTop']();if(_0x3991db==undefined)return;const _0x5688ab=_0x3991db+_0x15d3df-_0x15b8a9[_0x4d1223(0x189)]()/0x2+_0x11712b[_0x4d1223(0x189)]()/0x2;_0x15b8a9[_0x4d1223(0x14e)]({'scrollTop':_0x5688ab},0x1f4);}const _0x24b20a=(_0x49ba60,_0x376908)=>_0x2ad32b(void 0x0,void 0x0,void 0x0,function*(){const _0x19e453=_0x37b8e2,_0x59f6b2=_0x49ba60[_0x19e453(0x171)][_0x19e453(0x20f)](),_0x529a6e={'nodeId':_0x59f6b2,'rootNodeId':_0x376908[_0x19e453(0x146)],'isType':_0x49ba60[_0x19e453(0x1bd)][_0x19e453(0x19c)]||![]},_0x19f05=_0x1ebf21(_0x49ba60),_0x15711e=yield _0x12b9fa(_0x19f05,_0x529a6e);if(!_0x15711e)return;yield _0x4fcd21(_0x49ba60,_0x15711e,_0x49ba60[_0x19e453(0x13f)]);});function _0xc10790(_0x3df3d5,_0x1ee2c4,_0x3a112a,_0xa294af){return _0x2ad32b(this,void 0x0,void 0x0,function*(){const _0xa9a752=_0x4bfc;if(_0x1ee2c4['hasClass'](_0xa9a752(0x1b3))){console[_0xa9a752(0x1ab)](_0xa9a752(0x142));return;}if(_0x1ee2c4[_0xa9a752(0x1d5)](_0xa9a752(0x1b2))){console[_0xa9a752(0x1ab)](_0xa9a752(0x1de));return;}_0x1ee2c4[_0xa9a752(0x1da)](_0xa9a752(0x1b2)),_0x1ee2c4[_0xa9a752(0x1e6)]('<div\x20class=\x22spinner\x22></div>');try{_0x1ee2c4['children']('ul')[_0xa9a752(0x19e)]();const {references:_0x44ab78}=yield _0x3a112a(_0x1ee2c4,_0xa294af);for(const _0x4fb472 of _0x44ab78){if(_0x3df3d5[_0xa9a752(0x1bd)][_0xa9a752(0x1c2)]&&!_0x3df3d5['options']['filter'](_0x4fb472))continue;const _0x28624d=_0x3ed600(_0x4fb472);_0x1ee2c4['children']('ul')['append'](_0x28624d);}_0x1ee2c4['addClass'](_0xa9a752(0x1b3));}catch(_0x5a0967){_0x1ee2c4[_0xa9a752(0x1a2)]('ul')[_0xa9a752(0x1e6)](_0xa9a752(0x208)+_0x5a0967[_0xa9a752(0x193)]+'</li>'),console[_0xa9a752(0x1ab)](_0xa9a752(0x199),_0x5a0967);}_0x1ee2c4[_0xa9a752(0x1ed)](_0xa9a752(0x1d2))[_0xa9a752(0x213)](),_0x1ee2c4[_0xa9a752(0x18a)](_0xa9a752(0x1b2));});}function _0x1ebf21(_0x3370da){const _0x180775=_0x37b8e2,_0x25a0da={'baseUrl':_0x3370da[_0x180775(0x1bd)]['baseUrl'],'endpointNode':typeof _0x3370da['options'][_0x180775(0x1eb)]===_0x180775(0x1c8)?_0x3370da[_0x180775(0x1bd)]['endpointNode']():_0x3370da[_0x180775(0x1bd)][_0x180775(0x1eb)],'endpoint':typeof _0x3370da['options'][_0x180775(0x20b)]===_0x180775(0x1c8)?_0x3370da['options'][_0x180775(0x20b)]():_0x3370da['options'][_0x180775(0x20b)]};return _0x25a0da;}function _0x126c05(_0x17ab74,_0x5f2b40){return _0x2ad32b(this,void 0x0,void 0x0,function*(){const _0x30b61b=_0x4bfc;if(_0x5f2b40['hasClass'](_0x30b61b(0x1b3))){_0x5f2b40[_0x30b61b(0x18a)](_0x30b61b(0x1e1))[_0x30b61b(0x1da)]('expanded'),_0x5f2b40[_0x30b61b(0x1a2)]('ul')[_0x30b61b(0x1fa)]();return;}const _0x29fe48=_0x1ebf21(_0x17ab74),_0x445325=!_0x17ab74[_0x30b61b(0x1bd)][_0x30b61b(0x19c)]?_0x576317:_0x43e4be;try{yield _0xc10790(_0x17ab74,_0x5f2b40,_0x445325,_0x29fe48),_0x5f2b40[_0x30b61b(0x18a)](_0x30b61b(0x1e1))[_0x30b61b(0x1da)](_0x30b61b(0x19b));}catch(_0x162324){_0x5f2b40['removeClass']('expandable')['addClass'](_0x30b61b(0x19b)),console[_0x30b61b(0x1ab)]('error',_0x162324);}});}const _0x13793e=()=>{const _0x1eafd1=_0x37b8e2;$[_0x1eafd1(0x162)](_0x1eafd1(0x19a),{'options':{'endpointNode':()=>({'endpoint':_0x1eafd1(0x16d)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x1eafd1(0x15b)},'nodeClass':_0x1eafd1(0x1e9),'nodeId':_0x1eafd1(0x1b6),'displayName':{'text':_0x1eafd1(0x15b)},'typeDefinition':_0x285e61}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2ad32b(this,void 0x0,void 0x0,function*(){const _0x19d367=_0x4bfc,_0x2b7f12=this;if(!_0x2b7f12[_0x19d367(0x15d)]){const _0x2f1d6c=typeof _0x2b7f12[_0x19d367(0x1bd)][_0x19d367(0x1b5)]===_0x19d367(0x1c8)?_0x2b7f12[_0x19d367(0x1bd)][_0x19d367(0x1b5)][_0x19d367(0x17b)](_0x2b7f12):_0x2b7f12[_0x19d367(0x1bd)]['parentNode'];if(_0x2f1d6c instanceof Promise){const _0x3f6370=yield _0x2f1d6c;_0x2b7f12[_0x19d367(0x15d)]=_0x3f6370;}else _0x2b7f12[_0x19d367(0x15d)]=_0x2f1d6c;}return _0x2b7f12[_0x19d367(0x15d)];});},'reset'(){return _0x2ad32b(this,void 0x0,void 0x0,function*(){const _0x3c804f=_0x4bfc,_0x197640=this,_0x10e6ab=_0x197640;_0x10e6ab[_0x3c804f(0x15d)]=undefined,_0x197640['$tree'][_0x3c804f(0x19e)]();const _0x578fd2=yield this[_0x3c804f(0x169)](),_0xb7ad2b=_0x3ed600(_0x578fd2);_0x197640[_0x3c804f(0x13f)]['append'](_0xb7ad2b),_0x197640['currentParent']=_0x578fd2;});},'verify'(){const _0x2ff387=this,_0x51054a=_0x1ebf21(_0x2ff387);_0x2de5d1(_0x51054a,_0x2ff387['$input'],_0x2ff387['$info']);},'_create'(){const _0x47b7ff=_0x1eafd1,_0x339643=this;_0x339643['$input']=this[_0x47b7ff(0x1a1)],_0x339643[_0x47b7ff(0x1b8)]=$(_0x47b7ff(0x201)),_0x339643[_0x47b7ff(0x1b8)][_0x47b7ff(0x1da)](_0x47b7ff(0x191)),this[_0x47b7ff(0x1a1)]['replaceWith'](_0x339643[_0x47b7ff(0x1b8)]),_0x339643[_0x47b7ff(0x17e)]=$(_0x47b7ff(0x201))['addClass'](_0x47b7ff(0x1c1)),_0x339643['$combo'][_0x47b7ff(0x1e6)](_0x339643[_0x47b7ff(0x17e)]),_0x339643[_0x47b7ff(0x17e)][_0x47b7ff(0x1e6)](_0x339643[_0x47b7ff(0x171)]),_0x339643[_0x47b7ff(0x1aa)]=$(_0x47b7ff(0x1bc)),_0x339643[_0x47b7ff(0x17e)][_0x47b7ff(0x1e6)](_0x339643[_0x47b7ff(0x1aa)]),_0x339643[_0x47b7ff(0x1aa)]['on']('click',function(){return _0x2ad32b(this,void 0x0,void 0x0,function*(){const _0x118ab4=_0x4bfc;var _0x54a666;let _0x1cbac8=![],_0x466fee;!_0x339643[_0x118ab4(0x16b)]['is'](_0x118ab4(0x1a7))&&(_0x339643['$info']['hide'](),_0x466fee=yield _0x339643[_0x118ab4(0x169)](),(_0x466fee!==_0x339643[_0x118ab4(0x165)]||((_0x54a666=_0x339643[_0x118ab4(0x165)])===null||_0x54a666===void 0x0?void 0x0:_0x54a666[_0x118ab4(0x146)])!==_0x466fee[_0x118ab4(0x146)])&&(yield _0x339643[_0x118ab4(0x16e)]()),_0x1cbac8=!![]),_0x339643[_0x118ab4(0x16b)][_0x118ab4(0x1fa)](),_0x1cbac8&&(yield _0x24b20a(_0x339643,_0x466fee));});}),_0x339643[_0x47b7ff(0x1ca)]=$(_0x47b7ff(0x1ff)),_0x339643[_0x47b7ff(0x17e)][_0x47b7ff(0x1e6)](_0x339643[_0x47b7ff(0x1ca)]),_0x339643[_0x47b7ff(0x1ca)]['on'](_0x47b7ff(0x203),()=>{this['verify']();});!_0x339643['$input'][_0x47b7ff(0x1a6)](_0x47b7ff(0x164))&&_0x339643[_0x47b7ff(0x171)]['attr'](_0x47b7ff(0x164),_0x47b7ff(0x1e7));_0x339643[_0x47b7ff(0x1a5)]=$(_0x47b7ff(0x1fe)),_0x339643['$info'][_0x47b7ff(0x1fd)](),_0x339643[_0x47b7ff(0x16b)]=$(_0x47b7ff(0x201))[_0x47b7ff(0x1da)](_0x47b7ff(0x143))[_0x47b7ff(0x1fd)](),_0x339643[_0x47b7ff(0x1b8)]['append'](_0x339643[_0x47b7ff(0x1a5)]),_0x339643['$combo'][_0x47b7ff(0x1e6)](_0x339643[_0x47b7ff(0x16b)]),_0x339643[_0x47b7ff(0x13f)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x47b7ff(0x1c7)](_0x339643[_0x47b7ff(0x16b)]),this[_0x47b7ff(0x16e)]();const _0x32ba4f=(_0x472f91,_0x4b8b45)=>{const _0x4a338b=_0x47b7ff,_0xd8f733=0x14,_0x3f2e4f=0x14,_0x109b1b=_0x472f91[_0x4a338b(0x1ac)](),_0x2e7b4d=_0x4b8b45;if(_0x2e7b4d[_0x4a338b(0x1ad)]>=_0x109b1b[_0x4a338b(0x215)]&&_0x2e7b4d[_0x4a338b(0x1ad)]<=_0x109b1b[_0x4a338b(0x215)]+_0xd8f733&&_0x2e7b4d[_0x4a338b(0x195)]>=_0x109b1b[_0x4a338b(0x1f9)]&&_0x2e7b4d['pageY']<=_0x109b1b[_0x4a338b(0x1f9)]+_0x3f2e4f)return!![];return![];},_0x162ae5=_0x505764=>_0x2ad32b(this,void 0x0,void 0x0,function*(){const _0x558ddd=_0x47b7ff;if(_0x505764[_0x558ddd(0x1d5)](_0x558ddd(0x1e1)))_0x126c05(_0x339643,_0x505764);else{if(_0x505764[_0x558ddd(0x1d5)](_0x558ddd(0x19b)))_0x505764[_0x558ddd(0x1a2)]('ul')[_0x558ddd(0x1fa)](),_0x505764['toggleClass'](_0x558ddd(0x15f));else{if(_0x505764[_0x558ddd(0x1a2)]('ul')[_0x558ddd(0x1a2)]()[_0x558ddd(0x1bf)]>0x0)_0x505764[_0x558ddd(0x1a2)]('ul')['toggle'](),_0x505764[_0x558ddd(0x16f)](_0x558ddd(0x15f));else;}}});_0x339643[_0x47b7ff(0x13f)]['on'](_0x47b7ff(0x14a),'li',function(_0x2988d7){const _0x2cd1de=_0x47b7ff;var _0x13d288,_0x2290a6;_0x2988d7[_0x2cd1de(0x16c)]();let _0x1faad5=$(this);if(_0x32ba4f(_0x1faad5,_0x2988d7))_0x162ae5(_0x1faad5);else{const _0xfc1fc=_0x1faad5[_0x2cd1de(0x1c3)]('value'),_0x4683ab=_0x1faad5[_0x2cd1de(0x1c3)](_0x2cd1de(0x1dd));if(_0x339643[_0x2cd1de(0x1bd)][_0x2cd1de(0x1d9)]&&!_0x339643[_0x2cd1de(0x1bd)][_0x2cd1de(0x1d9)](_0x4683ab))return;_0x339643[_0x2cd1de(0x171)][_0x2cd1de(0x1c3)](_0x2cd1de(0x1dd),_0x4683ab);const _0x240af7=((_0x13d288=_0x4683ab[_0x2cd1de(0x1a0)])===null||_0x13d288===void 0x0?void 0x0:_0x13d288[_0x2cd1de(0x175)])||((_0x2290a6=_0x4683ab[_0x2cd1de(0x15c)])===null||_0x2290a6===void 0x0?void 0x0:_0x2290a6[_0x2cd1de(0x181)])||_0x4683ab[_0x2cd1de(0x146)][_0x2cd1de(0x1d0)](),_0x195ca3='['+_0x240af7+']('+_0xfc1fc+')';_0x339643['$input'][_0x2cd1de(0x20f)](_0x195ca3),_0x339643[_0x2cd1de(0x171)][_0x2cd1de(0x14d)](_0x2cd1de(0x1f2)),_0x339643[_0x2cd1de(0x16b)]['hide']();}}),_0x339643[_0x47b7ff(0x13f)]['on'](_0x47b7ff(0x203),'li',function(_0x375d78){const _0xdbbdd0=_0x47b7ff;_0x375d78[_0xdbbdd0(0x16c)]();let _0x396b25=$(this);_0x32ba4f(_0x396b25,_0x375d78)&&_0x162ae5(_0x396b25),_0x14baac(_0x339643,_0x396b25);}),$(document)['on'](_0x47b7ff(0x203),function(_0x2761e4){const _0x58b36f=_0x47b7ff;!$(_0x2761e4[_0x58b36f(0x1d4)])[_0x58b36f(0x1b9)](_0x339643[_0x58b36f(0x1b8)])['length']&&_0x339643[_0x58b36f(0x16b)][_0x58b36f(0x1fd)]();});}});},_0x4c52c6=()=>{const _0x5a75e2=_0x37b8e2;$[_0x5a75e2(0x162)](_0x5a75e2(0x168),{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x533ba5=_0x5a75e2,_0x208a83=this;_0x208a83[_0x533ba5(0x171)]=this[_0x533ba5(0x1a1)],_0x208a83['$combo']=$(_0x533ba5(0x201)),_0x208a83[_0x533ba5(0x1b8)][_0x533ba5(0x1da)](_0x533ba5(0x191)),this[_0x533ba5(0x1a1)][0x0][_0x533ba5(0x15e)][_0x533ba5(0x13d)](_0x208a83[_0x533ba5(0x1b8)][0x0],this[_0x533ba5(0x1a1)][0x0]),_0x208a83[_0x533ba5(0x17e)]=$(_0x533ba5(0x201))[_0x533ba5(0x1da)]('input-group'),_0x208a83[_0x533ba5(0x1b8)][_0x533ba5(0x1e6)](_0x208a83[_0x533ba5(0x17e)]),_0x208a83[_0x533ba5(0x17e)][_0x533ba5(0x1e6)](_0x208a83[_0x533ba5(0x171)]),_0x208a83['$toggleTreeBtn']=$(_0x533ba5(0x1a9)),_0x208a83[_0x533ba5(0x17e)][_0x533ba5(0x1e6)](_0x208a83[_0x533ba5(0x1aa)]),_0x208a83[_0x533ba5(0x1aa)]['on'](_0x533ba5(0x203),function(){const _0x1acbc3=_0x533ba5;_0x208a83['$dropdown']['toggle'](),_0x208a83[_0x1acbc3(0x16b)]['is'](_0x1acbc3(0x1a7))&&(_0x44704a(),_0x208a83[_0x1acbc3(0x1b8)]['find'](_0x1acbc3(0x14c))['each'](function(){const _0x12fd1e=_0x1acbc3;let _0x2353ee=$(this)['text']();const _0x13f6b9=_0x208a83['options']['namesToBits'][_0x2353ee];if(_0x13f6b9===undefined)throw new Error('Unknown\x20bit\x20name');(_0x208a83[_0x12fd1e(0x1bd)][_0x12fd1e(0x159)]&_0x13f6b9)===_0x13f6b9?$(this)[_0x12fd1e(0x1da)](_0x12fd1e(0x1c5)):$(this)['removeClass'](_0x12fd1e(0x1c5));}),_0x208a83[_0x1acbc3(0x182)]());}),_0x208a83[_0x533ba5(0x16b)]=$(_0x533ba5(0x160))[_0x533ba5(0x1fd)]()[_0x533ba5(0x1ae)](this[_0x533ba5(0x1a1)]),$[_0x533ba5(0x18e)](this[_0x533ba5(0x1bd)][_0x533ba5(0x1ba)],function(_0x4da964){const _0x399c9f=_0x533ba5,_0x446d00=$(_0x399c9f(0x1a4)+_0x4da964+'\x22>'+_0x399c9f(0x214)+_0x4da964+_0x399c9f(0x18c));_0x208a83['$dropdown'][_0x399c9f(0x1e6)](_0x446d00);}),_0x208a83[_0x533ba5(0x16b)]['on'](_0x533ba5(0x203),'.custom-option',function(){const _0x5d099b=_0x533ba5;$(this)[_0x5d099b(0x16f)](_0x5d099b(0x1c5));const _0x33db24=$(this)[_0x5d099b(0x1c3)]('value');$(this)[_0x5d099b(0x1d5)](_0x5d099b(0x1c5))?_0x394573(_0x33db24):_0x3e95d2(_0x33db24),_0x208a83[_0x5d099b(0x182)]();}),_0x208a83[_0x533ba5(0x1b8)]['append'](_0x208a83[_0x533ba5(0x16b)]);const _0x44704a=()=>{const _0x13f364=_0x533ba5,_0x46e326=this[_0x13f364(0x1a1)][_0x13f364(0x20f)]();_0x208a83[_0x13f364(0x1bd)][_0x13f364(0x159)]=_0x532834(_0x208a83[_0x13f364(0x1bd)][_0x13f364(0x1ba)],_0x46e326);},_0x394573=_0x3d04eb=>{const _0xb654b7=_0x533ba5,_0x586a77=_0x208a83[_0xb654b7(0x1bd)][_0xb654b7(0x1ba)][_0x3d04eb];if(_0x586a77===undefined)throw new Error(_0xb654b7(0x1c4));this[_0xb654b7(0x1bd)][_0xb654b7(0x159)]|=_0x586a77;},_0x3e95d2=_0x33a652=>{const _0x196d1e=_0x533ba5,_0x55a634=_0x208a83[_0x196d1e(0x1bd)]['namesToBits'][_0x33a652];if(_0x55a634===undefined)throw new Error(_0x196d1e(0x1c4));this[_0x196d1e(0x1bd)][_0x196d1e(0x159)]&=~_0x55a634,this[_0x196d1e(0x1a1)][_0x196d1e(0x20f)](_0x152b63(_0x208a83[_0x196d1e(0x1bd)]['namesToBits'],this[_0x196d1e(0x1bd)][_0x196d1e(0x159)]));};_0x44704a();},'updateValue'(){const _0x37b5b6=_0x5a75e2,_0x5710aa=this;this[_0x37b5b6(0x1a1)]['val'](_0x152b63(_0x5710aa[_0x37b5b6(0x1bd)][_0x37b5b6(0x1ba)],this[_0x37b5b6(0x1bd)]['value']));},'_destroy'(){const _0x4476d6=_0x5a75e2,_0x223579=this;_0x223579[_0x4476d6(0x16b)][_0x4476d6(0x213)]();}});},_0x199cef=()=>{const _0x42016e=_0x37b8e2,_0x14597d=$(_0x42016e(0x1af)),_0x272972=_0x14597d[_0x42016e(0x20f)](),_0x2897be=RED[_0x42016e(0x145)]['node'](_0x272972);if(!_0x2897be)return undefined;const {endpoint:_0x513cc2,securityMode:_0x196bd0,securityPolicy:_0x46c135,userIdentityType:_0x3613e5,credentials:_0x41d980}=_0x2897be,_0x1faa07={'endpoint':_0x513cc2,'securityMode':_0x196bd0,'securityPolicy':_0x46c135,'userIdentityType':_0x3613e5,'credentials':_0x41d980};return _0x1faa07;},_0x4e57ff=()=>{return{'endpointNode':_0x5a2f77};},_0x5a2f77=()=>{const _0x4ea2a2=$('#node-input-endpoint'),_0xd5495=_0x4ea2a2['val'](),_0x4d8c4e=_0x199cef();if(!_0x4d8c4e)return undefined;return{'id':_0xd5495};};RED[_0x37b8e2(0x145)][_0x37b8e2(0x1e3)]('OpcUa-Client2-Browse',{'category':_0x37b8e2(0x155),'color':_0x37b8e2(0x13c),'align':_0x37b8e2(0x1c0),'icon':_0x37b8e2(0x152),'paletteLabel':_0x37b8e2(0x167),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':_0x37b8e2(0x1c9),'required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':'Forward','required':!![]},'nodeClassMask':{'value':_0x37b8e2(0x1f0),'required':![]},'resultMask':{'value':_0x37b8e2(0x1ea),'required':![]}},'outputs':0x1,'label'(){const _0x288c5d=_0x37b8e2;return this[_0x288c5d(0x181)]||_0x288c5d(0x1cb);},'labelStyle'(){const _0x4d1852=_0x37b8e2;return this[_0x4d1852(0x181)]?_0x4d1852(0x172):'';},'oneditprepare'(){const _0x2cc7c2=_0x37b8e2,_0x2dd2fe=this;_0x13793e(),_0x4c52c6(),_0x2dd2fe[_0x2cc7c2(0x141)]=0x1;const _0x6bde17=$(_0x2cc7c2(0x20c));_0x6bde17[_0x2cc7c2(0x170)]({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x3308a0=$('#node-input-resultMask');_0x3308a0[_0x2cc7c2(0x170)]({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x3f006=$(_0x2cc7c2(0x185));_0x3f006[_0x2cc7c2(0x211)](Object[_0x2cc7c2(0x1b0)](Object[_0x2cc7c2(0x1b0)]({},_0x4e57ff()),{'isSelectable'(_0x12bb33){const _0x32b6c2=_0x2cc7c2;return _0x12bb33[_0x32b6c2(0x148)]===_0x32b6c2(0x1cc)||_0x12bb33['nodeClass']===_0x32b6c2(0x1e9);}}));const _0x303989={'nodeId':'i=31','referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x2cc7c2(0x187)},'displayName':{'text':_0x2cc7c2(0x187)},'nodeClass':'ReferenceType','typeDefinition':'i=31'},_0x5c90f9=$(_0x2cc7c2(0x197));_0x5c90f9[_0x2cc7c2(0x211)](Object[_0x2cc7c2(0x1b0)](Object['assign']({},_0x4e57ff()),{'parentNode':()=>_0x303989,'isSelectable'(_0x267456){const _0x4e1afb=_0x2cc7c2;return _0x267456[_0x4e1afb(0x148)]===_0x4e1afb(0x18b);},'isTypeRef':!![]}));},'oneditsave'(){}});}()));function _0x46b4(){const _0x17aa3c=['</div>','Forward','each','relativePath','View','sterfive-combo-box','Invalid','message','SandyBrown','pageY','CadetBlue','#node-input-referenceTypeId','5181390RgwGFd','err','sterfive.nodeBrowser','expanded','isTypeRef','browsePath','empty','87888yaVZJo','displayName','element','children','li[key=\x22','<div\x20class=\x22custom-option\x22\x20data-value=\x22','$info','attr',':visible','DisplayName','<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>','$toggleTreeBtn','log','offset','pageX','insertAfter','#node-input-endpoint','assign','application/json','loading','fetched','done','parentNode','ns=0;i=85','fa-list-alt','$combo','closest','namesToBits','references','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','options','status','length','right','input-group','filter','data','Unknown\x20bit\x20name','selected','error','appendTo','function','HasChild','$verifyBtn','OPCUA\x20Browse','Variable','statusCode','match','fa-folder','toString','show','.spinner','POST','target','hasClass','ns=0;i=40','HasSubtype','suppressed','isSelectable','addClass','stringify','entries','reference','already\x20loading','IsForward','3968090Spzptf','expandable','HasTypeDefinition','registerType','fa-cog','join','append','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','referenceTypeId','Object','ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','endpointNode','sterfive-info','find','fa-object-group','2841255QcQQtc','Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','/checkNodeId','change','Method','fa-text-width',':first','19025PBJncA',';\x22></i>\x20','nodeIds','top','toggle','number','ns=0;i=45','hide','<div\x20class=\x22info-text\x22></div>','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','browseResult','<div/>','DarkOrange','click','ObjectType','next','/walk-backward','BrowseName','<li>error\x20','1284oPxhqx','fa-sliders','endpoint','#node-input-nodeClassMask','8akRbmG','\x20|\x20','val','390VkfKlj','nodeBrowser','\x22\x20style=\x22color:','remove','<span\x20class=\x22custom-checkbox\x22></span>','left','TypeDefinition','#C0DEED','replaceChild','NodeClass','$tree','json','inputs','already\x20fetched','sterfive-dropdown','5685UnIIAI','nodes','nodeId','map','nodeClass','8ACqsbg','dblclick','SuppressedError','.custom-option','trigger','animate','ns=0;i=61','Organizes','throw','../../icons/opcuanodeLogo.png','elements','nodeAddressString','opcua','position','trim','failure','value','/opcua-endpoint2','Objects','browseName','__parentNode','parentElement','expandable\x20expanded','<div\x20class=\x22custom-select\x22></div>','15069175yooZLk','widget','fa-question','placeholder','currentParent','typeDefinition','browse','sterfive.flagEditor','resolveParentNode','Good','$dropdown','stopPropagation','opc.tcp://opcuademo.sterfive.com:26543','reset','toggleClass','flagEditor','$input','node_label_italic','DataType','ns=0;i=34','text','split','li\x20>\x20.tree-text','SteelBlue','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','Both','call','apply','SeaGreen','$inputGroup','HasProperty','Inverse','name','updateValue','</span><ul></ul></li>','rgba(61,\x2060,\x204,\x200.525)','#node-input-nodeId','VariableType','References','ns=0;i=46','height','removeClass','ReferenceType'];_0x46b4=function(){return _0x17aa3c;};return _0x46b4();}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyYWQzMmIiLCJfMHgzNGYzMjQiLCJfMHgyNGQwZGEiLCJfMHgxZDlmYjAiLCJfMHgyYzYzNWQiLCJfMHg1ZGY2ZjMiLCJfMHg0NjdhMGEiLCJfMHg1MzM4MDQiLCJQcm9taXNlIiwiXzB4NTFhZDM5IiwiXzB4MjlkM2NhIiwiXzB4MmNhN2IwIiwiXzB4M2NjMmJhIiwiXzB4MTFjYmYwIiwiXzB4NTIxZGMwIiwiXzB4MTUyYzcxIiwiXzB4NDM2NmU3IiwiXzB4OTBkMjdiIiwiXzB4MzU2ZGVmIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MWUxYWIzIiwiXzB4MmViNjI1IiwiXzB4NDRmZDAzIiwiXzB4NDZkYjg5IiwiRXJyb3IiLCJfMHhhOTJjY2IiLCJfMHgyODVlNjEiLCJfMHgzMDc3M2MiLCJfMHgzMmQzOGQiLCJfMHgxYmMxMTciLCJfMHgzMmU1OWEiLCJfMHgxNGIxMGQiLCJfMHgxZGRmNTkiLCJfMHg1NmI4YmQiLCJfMHgzMWU2NmQiLCJfMHg0OWJmZjYiLCJfMHgxMDEzNjQiLCJfMHg0OTZjNDAiLCJfMHg1MzI4MzQiLCJfMHgzMzlhN2EiLCJfMHg1NWRlZGUiLCJfMHgxZWU3ZmIiLCJwYXJzZUludCIsImlzTmFOIiwiXzB4NDA3ZjZjIiwiXzB4MzQwMTE4IiwiXzB4NTBiM2JiIiwiXzB4NDMzYTY4IiwiXzB4MTUyYjYzIiwiXzB4NGE5ZTQyIiwiXzB4NGNmNjYyIiwiXzB4NWVkY2FjIiwiXzB4MjUyNmVmIiwiXzB4MTM4ODcxIiwiT2JqZWN0IiwiXzB4NDk0ZGVkIiwiXzB4NTc2NDU2IiwiXzB4MTU3M2RlIiwiXzB4NDcxNGQxIiwiXzB4OWNlZWRiIiwiXzB4MmNmNDk0IiwiXzB4NGQwYjFiIiwiXzB4M2E0NDc0IiwiXzB4MjA5YmZjIiwiXzB4MzZiMzUxIiwiZW5kcG9pbnROb2RlIiwiXzB4MmExMzE3IiwiZW5kcG9pbnQiLCJfMHgyM2UzN2QiLCJiYXNlVXJsIiwiXzB4MzE5OGQ2IiwiXzB4MzhmYzA0IiwiXzB4MzQ0YWVmIiwiXzB4NTk2Mzc5IiwiXzB4MTQwYjdmIiwiXzB4MjNjYzNhIiwiXzB4NWJjYjNkIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDE0ZmJlZCIsIl8weDFjMDc3OCIsIl8weDE2OGU1OCIsIl8weDQ3ZjhhMCIsIl8weDEyYjlmYSIsIl8weDQ0ZjY0MSIsIl8weDFmZWJkMSIsIl8weDNkY2UyZCIsIl8weDM5YzljYSIsIl8weDM0ZDkxNyIsIm5vZGVJZCIsIl8weDJkYjA5NCIsInJvb3ROb2RlSWQiLCJfMHhjNDg4ZDciLCJpc1R5cGUiLCJfMHgzODc0NjYiLCJfMHgzZWM4ZSIsIl8weDJmMjJhOCIsIl8weDFhYWIzYyIsIl8weDZiMjQxNSIsIl8weDJkZTVkMSIsIl8weDgzZmY0ZiIsIl8weDVmMDdjYSIsIl8weDY5OGRiYyIsIl8weDIxNmNkZiIsIl8weDIxNGUyNSIsIl8weDNjNTNlMyIsIl8weDJmNWYzYiIsIl8weDNkOTZjYyIsIl8weDJjZmM1ZCIsIl8weDMxNGZhNiIsIl8weDJiYjY0MCIsIl8weDNlYjE3ZiIsIl8weDM4NTBhNSIsIl8weDM4MzllYiIsIl8weDM0MjIzOCIsInNldFRpbWVvdXQiLCJfMHgxZmYyNGEiLCJfMHg1NzYzMTciLCJfMHgxMGIzNWYiLCJfMHhlMGUwNmYiLCJfMHgzMzc2M2IiLCJfMHg0MGU0YTEiLCJfMHg1NzYxNmQiLCJfMHgyNzRkZjEiLCJfMHg0M2U0YmUiLCJfMHg0NjUzMDMiLCJfMHgzNDRjNTUiLCJfMHg4MzAzZWIiLCJfMHgxMWYzYzIiLCJfMHgzZWQ2MDAiLCJfMHg1YjRkZjYiLCJfMHg0NmJjMjIiLCJfMHgxZjlkOGYiLCJfMHgyOTNmNjYiLCJfMHgyOWFjYzQiLCJfMHg1YzQzYjciLCIkIiwiXzB4MWMzMDZiIiwiXzB4YTQ3ZDRjIiwiaWNvbiIsIl8weDU1Mjc5MSIsImNvbG9yIiwiXzB4MTFiZTgyIiwiXzB4NDUwZDJkIiwiXzB4NTFkNmRlIiwiXzB4MTNiOTk2IiwiXzB4MjU5NWJkIiwiXzB4YzQyYmRmIiwiXzB4MTRiYWFjIiwiXzB4M2E2ZjIyIiwiXzB4M2VlMGViIiwiXzB4NGZjZDIxIiwiXzB4OGYyMWUxIiwiXzB4NGM1YjA5IiwiXzB4NDZhY2ZkIiwiXzB4ZTc2YjUwIiwiXzB4NTY1ZjQ2IiwiXzB4MmQzMDllIiwiXzB4MTI2YzA1IiwiXzB4MmQ2YjEwIiwiXzB4NWVkYjQwIiwiXzB4MTViOGE5IiwiXzB4MTE3MTJiIiwiXzB4MTVkM2RmIiwiXzB4Mzk5MWRiIiwidW5kZWZpbmVkIiwiXzB4NTY4OGFiIiwiXzB4MjRiMjBhIiwiXzB4NDliYTYwIiwiXzB4Mzc2OTA4IiwiXzB4NTlmNmIyIiwiXzB4NTI5YTZlIiwiXzB4MTlmMDUiLCJfMHgxZWJmMjEiLCJfMHgxNTcxMWUiLCJfMHhjMTA3OTAiLCJfMHgzZGYzZDUiLCJfMHgxZWUyYzQiLCJfMHgzYTExMmEiLCJfMHhhMjk0YWYiLCJyZWZlcmVuY2VzIiwiXzB4NDRhYjc4IiwiXzB4NGZiNDcyIiwiXzB4Mjg2MjRkIiwiXzB4NWEwOTY3IiwiXzB4MzM3MGRhIiwiXzB4MjVhMGRhIiwiXzB4MTdhYjc0IiwiXzB4NWYyYjQwIiwiXzB4MjlmZTQ4IiwiXzB4NDQ1MzI1IiwiXzB4MTYyMzI0IiwiXzB4MTM3OTNlIiwiXzB4MmI3ZjEyIiwiXzB4MmYxZDZjIiwiXzB4M2Y2MzcwIiwiXzB4MTk3NjQwIiwiXzB4MTBlNmFiIiwiXzB4NTc4ZmQyIiwiXzB4YjdhZDJiIiwiXzB4MmZmMzg3IiwiXzB4NTEwNTRhIiwiXzB4MzM5NjQzIiwiXzB4NTRhNjY2IiwiXzB4MWNiYWM4IiwiXzB4NDY2ZmVlIiwiXzB4MzJiYTRmIiwiXzB4NDcyZjkxIiwiXzB4NGI4YjQ1IiwiXzB4ZDhmNzMzIiwiXzB4M2YyZTRmIiwiXzB4MTA5YjFiIiwiXzB4MmU3YjRkIiwiXzB4MTYyYWU1IiwiXzB4NTA1NzY0IiwiXzB4Mjk4OGQ3IiwiXzB4MTNkMjg4IiwiXzB4MjI5MGE2IiwiXzB4MWZhYWQ1IiwiXzB4ZmMxZmMiLCJfMHg0NjgzYWIiLCJfMHgyNDBhZjciLCJfMHgxOTVjYTMiLCJfMHgzNzVkNzgiLCJfMHgzOTZiMjUiLCJkb2N1bWVudCIsIl8weDI3NjFlNCIsIl8weDRjNTJjNiIsIl8weDIwOGE4MyIsIl8weDQ0NzA0YSIsIl8weDIzNTNlZSIsIl8weDEzZjZiOSIsIl8weDRkYTk2NCIsIl8weDQ0NmQwMCIsIl8weDMzZGIyNCIsIl8weDM5NDU3MyIsIl8weDNlOTVkMiIsIl8weDQ2ZTMyNiIsIl8weDNkMDRlYiIsIl8weDU4NmE3NyIsIl8weDMzYTY1MiIsIl8weDU1YTYzNCIsIl8weDU3MTBhYSIsIl8weDIyMzU3OSIsIl8weDE5OWNlZiIsIl8weDE0NTk3ZCIsIl8weDI3Mjk3MiIsIl8weDI4OTdiZSIsIlJFRCIsIl8weDUxM2NjMiIsInNlY3VyaXR5TW9kZSIsIl8weDE5NmJkMCIsInNlY3VyaXR5UG9saWN5IiwiXzB4NDZjMTM1IiwidXNlcklkZW50aXR5VHlwZSIsIl8weDM2MTNlNSIsImNyZWRlbnRpYWxzIiwiXzB4NDFkOTgwIiwiXzB4MWZhYTA3IiwiXzB4NGU1N2ZmIiwiXzB4NWEyZjc3IiwiXzB4NGVhMmEyIiwiXzB4ZDU0OTUiLCJfMHg0ZDhjNGUiLCJfMHgyZGQyZmUiLCJfMHg2YmRlMTciLCJfMHgzMzA4YTAiLCJfMHgzZjAwNiIsIl8weDEyYmIzMyIsIl8weDMwMzk4OSIsIl8weDVjOTBmOSIsIl8weDI2NzQ1NiJdLCJtYXBwaW5ncyI6InMwQkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMs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QUYrRSxDLFdBR3ZGLEMsSUFIdUYsQ0FBakUsQ0FBN0IsQyxFQXZFdUMsQyxZQTRFM0MsRSxFQTVFMkMsQ0FBL0MsQyxFQTN1QkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICBmdW5jdGlvbiBjb2VyY2VGbGFnTWFza1RvTnVtYmVyKHR5cGUsIHN0cikge1xuICAgICAgICBpZiAodHlwZW9mIHN0ciA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdHJBc051bSA9IHBhcnNlSW50KHN0ciwgMTApO1xuICAgICAgICBpZiAoIWlzTmFOKHN0ckFzTnVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ckFzTnVtO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZsYWdzID0gc3RyLnNwbGl0KC9cXHx8O3wsLykubWFwKChhKSA9PiBhLnRyaW0oKSk7XG4gICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGZsYWcgb2YgZmxhZ3MpIHtcbiAgICAgICAgICAgIHJlc3VsdCB8PSB0eXBlW2ZsYWddO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodHlwZSwgdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBjb2VyY2VGbGFnTWFza1RvTnVtYmVyKHR5cGUsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgciA9IFtdO1xuICAgICAgICBpZiAoIXR5cGUpXG4gICAgICAgICAgICByZXR1cm4gci5qb2luKFwiIHwgXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGJpdE1hc2tdIG9mIE9iamVjdC5lbnRyaWVzKHR5cGUpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCh2YWx1ZSAmIGJpdE1hc2spID09PSBiaXRNYXNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHIucHVzaChrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gci5qb2luKFwiIHwgXCIpO1xuICAgIH1cbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGRlY2xhcmVGbGFnRWRpdG9yV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmZsYWdFZGl0b3JcIiwge1xuICAgICAgICAgICAgLy8gZGVmYXVsdCBvcHRpb25zXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgbmFtZXNUb0JpdHM6IHtcbiAgICAgICAgICAgICAgICAvLyBBZGQgbW9yZSBuYW1lcyBhbmQgYml0IHZhbHVlc1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBDdXN0b20gRHJvcGRvd25cbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50WzBdLnBhcmVudEVsZW1lbnQucmVwbGFjZUNoaWxkKHRoYXQuJGNvbWJvWzBdLCB0aGlzLmVsZW1lbnRbMF0pO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIC8vIHRoZSB0b2dnbGUgdHJlZSBidXR0b246XG4gICAgICAgICAgICAgICAgLy8gICB3aGVuIHdlIGNsaWNrIGl0IHRoZSBkcm9wIGRvd24gcGFuZWwgaXMgZGlzcGxheWVkXG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1leWVcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRzZWxlY3QuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUZyb21JbnB1dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uZmluZChcIi5jdXN0b20tb3B0aW9uXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBvcHRpb25OYW1lID0gJCh0aGlzKS50ZXh0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYml0VmFsdWUgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbb3B0aW9uTmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJpdFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh0aGF0Lm9wdGlvbnMudmFsdWUgJiBiaXRWYWx1ZSkgPT09IGJpdFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgaGlkZGVuIHNlbGVjdCBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnVwZGF0ZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyB0aGUgZHJvcCBkb3duIHBhbmVsXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKCc8ZGl2IGNsYXNzPVwiY3VzdG9tLXNlbGVjdFwiPjwvZGl2PicpLmhpZGUoKS5pbnNlcnRBZnRlcih0aGlzLmVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICQuZWFjaCh0aGlzLm9wdGlvbnMubmFtZXNUb0JpdHMsIGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRvcHRpb24gPSAkKCc8ZGl2IGNsYXNzPVwiY3VzdG9tLW9wdGlvblwiIGRhdGEtdmFsdWU9XCInICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJ1wiPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgJzxzcGFuIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94XCI+PC9zcGFuPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSArXG4gICAgICAgICAgICAgICAgICAgICAgICBcIjwvZGl2PlwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uYXBwZW5kKCRvcHRpb24pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIHdoZW4gYSBvcHRpb25zIGluIHRoZSBkcm9wIGRvd24gcGFuZWwgaXMgY2xpY2tlZCxcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5vbihcImNsaWNrXCIsIFwiLmN1c3RvbS1vcHRpb25cIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnRvZ2dsZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJCh0aGlzKS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKFwic2VsZWN0ZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldEJpdCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bnNldEJpdCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhhdC51cGRhdGVWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlRnJvbUlucHV0ID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZWxlbWVudC52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5vcHRpb25zLnZhbHVlID0gY29lcmNlRmxhZ01hc2tUb051bWJlcih0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHMsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNldEJpdCA9IChiaXROYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpdCA9IHRoYXQub3B0aW9ucy5uYW1lc1RvQml0c1tiaXROYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJpdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGJpdCBuYW1lXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy52YWx1ZSB8PSBiaXQ7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB1bnNldEJpdCA9IChiaXROYW1lKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpdCA9IHRoYXQub3B0aW9ucy5uYW1lc1RvQml0c1tiaXROYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJpdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGJpdCBuYW1lXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy52YWx1ZSAmPSB+Yml0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudmFsKGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB0aGlzLm9wdGlvbnMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHVwZGF0ZUZyb21JbnB1dCgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVwZGF0ZVZhbHVlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC52YWwoY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHMsIHRoaXMub3B0aW9ucy52YWx1ZSkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9kZXN0cm95KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnJlbW92ZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgfTtcbiAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHhcIiwgcmV0VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgLy8gZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICAvLyBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbDogZW5kcG9pbnROci5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICAvLyB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItQnJvd3NlXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJicm93c2VcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiByZWFkXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiB7IHZhbHVlOiBcIkhhc0NoaWxkXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB7IHZhbHVlOiBmYWxzZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGJyb3dzZURpcmVjdGlvbjogeyB2YWx1ZTogXCJGb3J3YXJkXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBub2RlQ2xhc3NNYXNrOiB7IHZhbHVlOiBcIlZhcmlhYmxlIHwgT2JqZWN0IHwgTWV0aG9kIHwgT2JqZWN0VHlwZSB8IFZhcmlhYmxlVHlwZVwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHJlc3VsdE1hc2s6IHsgdmFsdWU6IFwiUmVmZXJlbmNlVHlwZSB8IEJyb3dzZU5hbWUgfCBUeXBlRGVmaW5pdGlvbiB8IERpc3BsYXlOYW1lIHwgTm9kZUNsYXNzIHwgSXNGb3J3YXJkXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICB9LFxuICAgICAgICBvdXRwdXRzOiAxLFxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBCcm93c2VcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIGRlY2xhcmVGbGFnRWRpdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUNsYXNzTWFzayA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlQ2xhc3NNYXNrXCIpO1xuICAgICAgICAgICAgJG5vZGVDbGFzc01hc2suZmxhZ0VkaXRvcih7XG4gICAgICAgICAgICAgICAgbmFtZXNUb0JpdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0OiAxLFxuICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZTogMixcbiAgICAgICAgICAgICAgICAgICAgTWV0aG9kOiA0LFxuICAgICAgICAgICAgICAgICAgICBPYmplY3RUeXBlOiA4LFxuICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZVR5cGU6IDE2LFxuICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VUeXBlOiAzMixcbiAgICAgICAgICAgICAgICAgICAgRGF0YVR5cGU6IDY0LFxuICAgICAgICAgICAgICAgICAgICBWaWV3OiAxMjgsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgJHJlc3VsdE1hc2sgPSAkKFwiI25vZGUtaW5wdXQtcmVzdWx0TWFza1wiKTtcbiAgICAgICAgICAgICRyZXN1bHRNYXNrLmZsYWdFZGl0b3Ioe1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZVR5cGU6IDEsXG4gICAgICAgICAgICAgICAgICAgIElzRm9yd2FyZDogMixcbiAgICAgICAgICAgICAgICAgICAgTm9kZUNsYXNzOiA0LFxuICAgICAgICAgICAgICAgICAgICBCcm93c2VOYW1lOiA4LFxuICAgICAgICAgICAgICAgICAgICBEaXNwbGF5TmFtZTogMTYsXG4gICAgICAgICAgICAgICAgICAgIFR5cGVEZWZpbml0aW9uOiAzMixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiA2MyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZXNOb2RlRGVzYyA9IHtcbiAgICAgICAgICAgICAgICBub2RlSWQ6IFwiaT0zMVwiLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZVR5cGVJZDogXCJcIixcbiAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIlJlZmVyZW5jZXNcIiB9LFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiUmVmZXJlbmNlc1wiIH0sXG4gICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIlJlZmVyZW5jZVR5cGVcIixcbiAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogXCJpPTMxXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgJHJlZmVyZW5jZVR5cGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1yZWZlcmVuY2VUeXBlSWRcIik7XG4gICAgICAgICAgICAkcmVmZXJlbmNlVHlwZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBwYXJlbnROb2RlOiAoKSA9PiByZWZlcmVuY2VzTm9kZURlc2MsIC8vIFJlZmVyZW5jZXMsXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICAgICAgICAgIH0sIGlzVHlwZVJlZjogdHJ1ZSB9KSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
7
|
+
function _0x21de(_0x2711bd,_0x50816c){const _0xc2535d=_0xc253();return _0x21de=function(_0x21dee4,_0x42a682){_0x21dee4=_0x21dee4-0xb6;let _0x5b45d0=_0xc2535d[_0x21dee4];return _0x5b45d0;},_0x21de(_0x2711bd,_0x50816c);}(function(_0x42c3fa,_0x160c76){const _0x2d653a=_0x21de,_0x10b069=_0x42c3fa();while(!![]){try{const _0x2c3fe3=-parseInt(_0x2d653a(0x117))/0x1+parseInt(_0x2d653a(0x11f))/0x2*(parseInt(_0x2d653a(0x103))/0x3)+-parseInt(_0x2d653a(0xd5))/0x4*(-parseInt(_0x2d653a(0x120))/0x5)+-parseInt(_0x2d653a(0x167))/0x6+parseInt(_0x2d653a(0xed))/0x7*(-parseInt(_0x2d653a(0x160))/0x8)+-parseInt(_0x2d653a(0x17a))/0x9+parseInt(_0x2d653a(0x184))/0xa*(parseInt(_0x2d653a(0x16f))/0xb);if(_0x2c3fe3===_0x160c76)break;else _0x10b069['push'](_0x10b069['shift']());}catch(_0x2bd623){_0x10b069['push'](_0x10b069['shift']());}}}(_0xc253,0x3f7bd),(function(){'use strict';const _0x24a4d0=_0x21de;function _0x2cac5e(_0x27477b,_0x192107,_0x3907b6,_0x1139b4){function _0x1b7c1e(_0x2dc61a){return _0x2dc61a instanceof _0x3907b6?_0x2dc61a:new _0x3907b6(function(_0xb8fa43){_0xb8fa43(_0x2dc61a);});}return new(_0x3907b6||(_0x3907b6=Promise))(function(_0x1bb02f,_0x550bd0){const _0x547c6f=_0x21de;function _0x44fcd8(_0xcecc5a){try{_0x28819e(_0x1139b4['next'](_0xcecc5a));}catch(_0x35591a){_0x550bd0(_0x35591a);}}function _0x409c1a(_0x29b87e){const _0xf56a19=_0x21de;try{_0x28819e(_0x1139b4[_0xf56a19(0x10e)](_0x29b87e));}catch(_0x13577a){_0x550bd0(_0x13577a);}}function _0x28819e(_0x1607ef){const _0x7aaaa3=_0x21de;_0x1607ef[_0x7aaaa3(0x12c)]?_0x1bb02f(_0x1607ef['value']):_0x1b7c1e(_0x1607ef[_0x7aaaa3(0x10b)])['then'](_0x44fcd8,_0x409c1a);}_0x28819e((_0x1139b4=_0x1139b4[_0x547c6f(0xd9)](_0x27477b,_0x192107||[]))[_0x547c6f(0xfc)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x4345e9,_0xb8a65a,_0x13c20b){const _0x4b90d9=_0x21de;var _0x1fafc8=new Error(_0x13c20b);return _0x1fafc8[_0x4b90d9(0xbc)]='SuppressedError',_0x1fafc8[_0x4b90d9(0x101)]=_0x4345e9,_0x1fafc8[_0x4b90d9(0x15f)]=_0xb8a65a,_0x1fafc8;};const _0x3ccaf9='ns=0;i=35',_0x36239b=_0x24a4d0(0x182),_0x6c9844=_0x24a4d0(0xfe),_0x5c28c4='ns=0;i=46',_0x4b2732=_0x24a4d0(0xc1),_0x5c5df0=_0x24a4d0(0x14f),_0x13d07b=_0x24a4d0(0xe0);var _0x5acac8;(function(_0x41f25f){const _0x4d58e6=_0x24a4d0;_0x41f25f[_0x41f25f[_0x4d58e6(0x11e)]=0x0]=_0x4d58e6(0x11e),_0x41f25f[_0x41f25f[_0x4d58e6(0x110)]=0x1]=_0x4d58e6(0x110),_0x41f25f[_0x41f25f[_0x4d58e6(0x10f)]=0x2]=_0x4d58e6(0x10f),_0x41f25f[_0x41f25f[_0x4d58e6(0x14c)]=0x3]=_0x4d58e6(0x14c);}(_0x5acac8||(_0x5acac8={})));var _0x53c201;(function(_0x59cc93){const _0x4c73b1=_0x24a4d0;_0x59cc93[_0x59cc93[_0x4c73b1(0x111)]=0x0]='Unspecified',_0x59cc93[_0x59cc93['Object']=0x1]=_0x4c73b1(0xc8),_0x59cc93[_0x59cc93[_0x4c73b1(0xf5)]=0x2]=_0x4c73b1(0xf5),_0x59cc93[_0x59cc93[_0x4c73b1(0x149)]=0x4]='Method',_0x59cc93[_0x59cc93['ObjectType']=0x8]=_0x4c73b1(0x162),_0x59cc93[_0x59cc93[_0x4c73b1(0x100)]=0x10]=_0x4c73b1(0x100),_0x59cc93[_0x59cc93['ReferenceType']=0x20]=_0x4c73b1(0x12f),_0x59cc93[_0x59cc93[_0x4c73b1(0x113)]=0x40]=_0x4c73b1(0x113),_0x59cc93[_0x59cc93[_0x4c73b1(0x125)]=0x80]='View';}(_0x53c201||(_0x53c201={})));var _0x3fded6;(function(_0x2e8c66){const _0x198862=_0x24a4d0;_0x2e8c66[_0x2e8c66['Object']=0x1]=_0x198862(0xc8),_0x2e8c66[_0x2e8c66[_0x198862(0xf5)]=0x2]='Variable',_0x2e8c66[_0x2e8c66[_0x198862(0x149)]=0x4]=_0x198862(0x149),_0x2e8c66[_0x2e8c66[_0x198862(0x162)]=0x8]=_0x198862(0x162),_0x2e8c66[_0x2e8c66[_0x198862(0x100)]=0x10]=_0x198862(0x100),_0x2e8c66[_0x2e8c66[_0x198862(0x12f)]=0x20]=_0x198862(0x12f),_0x2e8c66[_0x2e8c66['DataType']=0x40]='DataType',_0x2e8c66[_0x2e8c66[_0x198862(0x125)]=0x80]=_0x198862(0x125);}(_0x3fded6||(_0x3fded6={})));function _0x1e4061(_0x1e7e34,_0x2c7c7b){const _0x151737=_0x24a4d0;if(typeof _0x2c7c7b===_0x151737(0x105))return _0x2c7c7b;const _0x2f79cd=parseInt(_0x2c7c7b,0xa);if(!isNaN(_0x2f79cd))return _0x2f79cd;const _0x3943db=_0x2c7c7b['split'](/\||;|,/)[_0x151737(0x124)](_0x58092a=>_0x58092a[_0x151737(0x154)]());let _0x40da6a=0x0;for(const _0x27928a of _0x3943db){_0x40da6a|=_0x1e7e34[_0x27928a];}return _0x40da6a;}function _0x2ac948(_0x66dd10,_0x35ae8b){const _0x426791=_0x24a4d0;_0x35ae8b=_0x1e4061(_0x66dd10,_0x35ae8b);const _0x2c20d4=[];if(!_0x66dd10)return _0x2c20d4[_0x426791(0x10d)](_0x426791(0xbe));for(const [_0x2a6a78,_0x1d2dbd]of Object[_0x426791(0x161)](_0x66dd10)){typeof _0x35ae8b===_0x426791(0x105)&&((_0x35ae8b&_0x1d2dbd)===_0x1d2dbd&&_0x2c20d4[_0x426791(0x131)](_0x2a6a78));}return _0x2c20d4['join']('\x20|\x20');}var _0xd0a69f;(function(_0x1cee86){const _0x1f70f9=_0x24a4d0;_0x1cee86[_0x1cee86[_0x1f70f9(0x12f)]=0x1]=_0x1f70f9(0x12f),_0x1cee86[_0x1cee86['IsForward']=0x2]=_0x1f70f9(0xf2),_0x1cee86[_0x1cee86['NodeClass']=0x4]='NodeClass',_0x1cee86[_0x1cee86[_0x1f70f9(0xe8)]=0x8]=_0x1f70f9(0xe8),_0x1cee86[_0x1cee86[_0x1f70f9(0x173)]=0x10]='DisplayName',_0x1cee86[_0x1cee86['TypeDefinition']=0x20]='TypeDefinition';}(_0xd0a69f||(_0xd0a69f={})));function _0x5a55b0(_0x5d4330){const _0x30a828=_0x24a4d0;switch(_0x5d4330){case'Organizes':return _0x3ccaf9;case'HasProperty':return _0x5c28c4;case'HasComponent':return _0x6c9844;case _0x30a828(0xc4):return _0x4b2732;case _0x30a828(0xf3):return _0x5c5df0;case _0x30a828(0x11d):return _0x13d07b;}}const _0x1c0d85=_0x483371=>{const _0x1a7569=_0x24a4d0;switch(_0x483371[_0x1a7569(0x144)]){case'Object':if(_0x483371[_0x1a7569(0x177)]===_0x3ccaf9);if(_0x483371[_0x1a7569(0xd2)]===_0x36239b||_0x483371['referenceTypeId']===_0x1a7569(0xe2))return{'icon':_0x1a7569(0x17b),'color':_0x1a7569(0xd0)};return{'icon':_0x1a7569(0x121),'color':_0x1a7569(0x13f)};case _0x1a7569(0xf5):if(_0x483371[_0x1a7569(0x177)]===_0x6c9844)return{'icon':'fa-list-alt','color':_0x1a7569(0x142)};else return _0x483371[_0x1a7569(0x177)]===_0x5c28c4?{'icon':_0x1a7569(0xdd),'color':_0x1a7569(0xb7)}:{'icon':_0x1a7569(0xdd),'color':'CadetBlue'};case _0x1a7569(0x149):return{'icon':'fa-cog','color':_0x1a7569(0x14a)};case'ObjectType':return{'icon':_0x1a7569(0x121),'color':_0x1a7569(0xb6)};case'VariableType':return{'icon':'fa-sliders','color':_0x1a7569(0xb6)};case'DataType':return{'icon':_0x1a7569(0xe1),'color':'CadetBlue'};}return{'icon':_0x1a7569(0xc7),'color':_0x1a7569(0x10c)};},_0x538f92=(_0x5da49e,_0x1cb217,_0x42f09f)=>_0x2cac5e(void 0x0,[_0x5da49e,_0x1cb217,_0x42f09f],void 0x0,function*({endpointNode:_0x3aa4f6,endpoint:_0xf0b7b7,baseUrl:_0x1ef2b2},_0x2c87a6,_0x2a4338){const _0x4a1731=_0x24a4d0,_0x19d4f2=_0x1ef2b2+_0x4a1731(0x109),_0xc84257=_0x19d4f2+_0x4a1731(0x181),_0x4624d3=Object[_0x4a1731(0x15a)](Object[_0x4a1731(0x15a)]({},_0x2a4338),{'nodeId':_0x2c87a6,'resultMask':0x3f}),_0x28e086=yield fetch(_0xc84257,{'method':'POST','body':JSON[_0x4a1731(0x166)]({'endpointNode':_0x3aa4f6,'endpoint':_0xf0b7b7,'browseDescription':_0x4624d3}),'headers':{'Content-Type':_0x4a1731(0x168)}});if(_0x28e086['status']!==0xc8)return console[_0x4a1731(0xf4)](_0x4a1731(0x114),_0x28e086['status'],_0x28e086[_0x4a1731(0x180)]),{'references':[]};const _0x17a582=yield _0x28e086[_0x4a1731(0x128)](),_0x15b5be=_0x17a582['browseResult'][_0x4a1731(0x10a)]||[];return{'references':_0x15b5be};}),_0x39014c={'referenceTypeId':_0x5a55b0(_0x24a4d0(0xc4)),'includeSubtypes':!![],'browseDirection':_0x5acac8[_0x24a4d0(0x11e)],'nodeClassMask':_0x53c201[_0x24a4d0(0xf5)]|_0x53c201[_0x24a4d0(0xc8)]|_0x53c201[_0x24a4d0(0x149)],'resultMask':0x3f},_0x3253bf={'referenceTypeId':_0x5a55b0(_0x24a4d0(0x15e)),'includeSubtypes':!![],'browseDirection':_0x5acac8['Forward'],'nodeClassMask':_0x53c201[_0x24a4d0(0xf5)]|_0x53c201['Object']|_0x53c201['Method'],'resultMask':0x3f},_0x4850f7=(_0xe50cd6,_0x534477)=>_0x2cac5e(void 0x0,[_0xe50cd6,_0x534477],void 0x0,function*({endpointNode:_0xa5d228,endpoint:_0x279f6a,baseUrl:_0x13f887},{nodeId:_0xa87977,rootNodeId:_0x3d2519,isType:_0x8775af}){const _0x138813=_0x24a4d0,_0x2725a4=_0x13f887+'/opcua-endpoint2',_0x1be420=_0x2725a4+_0x138813(0x15d),_0xc9fcd2=yield fetch(_0x1be420,{'method':_0x138813(0xdc),'body':JSON[_0x138813(0x166)]({'endpointNode':_0xa5d228,'endpoint':_0x279f6a,'nodeId':_0xa87977,'rootNodeId':_0x3d2519,'isType':_0x8775af}),'headers':{'Content-Type':'application/json'}});if(_0xc9fcd2[_0x138813(0x130)]!==0xc8)return null;const _0x2f1371=yield _0xc9fcd2['json']();return _0x2f1371[_0x138813(0x17f)];}),_0x4c975d=(_0x1bb01c,_0x1a703,_0x40641c)=>_0x2cac5e(void 0x0,[_0x1bb01c,_0x1a703,_0x40641c],void 0x0,function*({endpointNode:_0x25aefd,endpoint:_0x1bc328,baseUrl:_0x18b57e},_0x19d85b,_0x5b4825){const _0x4f18c5=_0x24a4d0,_0x199a07=_0x18b57e+_0x4f18c5(0x109),_0x1396e3=_0x199a07+_0x4f18c5(0x112),_0x35bf5b=_0x19d85b[_0x4f18c5(0xc2)](),_0x10c50c=yield fetch(_0x1396e3,{'method':_0x4f18c5(0xdc),'body':JSON['stringify']({'endpointNode':_0x25aefd,'endpoint':_0x1bc328,'nodeId':_0x35bf5b}),'headers':{'Content-Type':'application/json'}}),_0x53ad5c=(_0x3d9bbc,_0x25f677)=>{const _0x20109b=_0x4f18c5;_0x5b4825[_0x20109b(0x183)](_0x3d9bbc)[_0x20109b(0x15b)](_0x20109b(0x104))[_0x20109b(0x15b)](_0x25f677),_0x5b4825[_0x20109b(0x178)](),setTimeout(()=>{const _0x2909e8=_0x20109b;_0x5b4825[_0x2909e8(0x186)](_0x25f677),_0x5b4825[_0x2909e8(0x187)]();},0xbb8);},_0x2f3524=yield _0x10c50c[_0x4f18c5(0x128)]();_0x10c50c[_0x4f18c5(0x130)]!==0xc8?_0x53ad5c(_0x4f18c5(0x16a)+_0x35bf5b,'failure'):_0x2f3524[_0x4f18c5(0x119)][_0x4f18c5(0xcf)](/Good/)?(_0x19d85b[_0x4f18c5(0xc2)](_0x2f3524[_0x4f18c5(0xd3)]),_0x19d85b[_0x4f18c5(0x175)](_0x4f18c5(0x147)),_0x53ad5c(_0x4f18c5(0x174),'ok')):(_0x19d85b['val'](''+_0x35bf5b),_0x53ad5c(_0x2f3524[_0x4f18c5(0x119)]+'\x20'+_0x10c50c['statusText'],_0x4f18c5(0x172)));});function _0x746c14(_0xcc75e9,_0x942241){return _0x2cac5e(this,void 0x0,void 0x0,function*(){const _0x1ba4c0=_0x21de,_0x558827=_0xcc75e9[_0x1ba4c0(0x151)](_0x1ba4c0(0x10b)),_0x531d88=yield _0x538f92(_0x942241,_0x558827,_0x39014c),_0x59cc92=yield _0x538f92(_0x942241,_0x558827,_0x3253bf);return{'references':[..._0x531d88[_0x1ba4c0(0x10a)],..._0x59cc92['references']]};});}const _0x3d6c0e={'referenceTypeId':_0x5a55b0(_0x24a4d0(0xf3)),'includeSubtypes':!![],'browseDirection':_0x5acac8[_0x24a4d0(0x11e)],'nodeClassMask':_0x53c201[_0x24a4d0(0x12f)]|_0x53c201[_0x24a4d0(0x162)]|_0x53c201[_0x24a4d0(0x113)]|_0x53c201[_0x24a4d0(0x100)],'resultMask':0x3f};function _0x1d4939(_0x2e42b6,_0x47990d){return _0x2cac5e(this,void 0x0,void 0x0,function*(){const _0x4d995f=_0x21de,_0xa382b7=_0x2e42b6[_0x4d995f(0x151)](_0x4d995f(0x10b)),_0x4da3ca=yield _0x538f92(_0x47990d,_0xa382b7,_0x3d6c0e);return _0x4da3ca;});}const _0x37fcbc=_0x1b1033=>{const _0x448d10=_0x24a4d0;var _0x2b048b,_0x4e50fd,_0x485d2d,_0x5afad8;if(!_0x1b1033||!_0x1b1033[_0x448d10(0x13a)]){const _0x22810a=$(_0x448d10(0x14b));return _0x22810a;}const _0x3c04d9=_0x1b1033[_0x448d10(0x13a)][_0x448d10(0x134)](),_0x11d0be=((_0x2b048b=_0x1b1033[_0x448d10(0x189)])===null||_0x2b048b===void 0x0?void 0x0:_0x2b048b[_0x448d10(0x183)])||((_0x4e50fd=_0x1b1033[_0x448d10(0xfd)])===null||_0x4e50fd===void 0x0?void 0x0:_0x4e50fd[_0x448d10(0xbc)])||_0x1b1033[_0x448d10(0x13a)][_0x448d10(0x134)](),{icon:_0x16e7e3,color:_0x1056ba}=_0x1c0d85(_0x1b1033),_0x194dd9='('+_0x1b1033[_0x448d10(0x13a)][_0x448d10(0x134)]()+')\x20'+(((_0x485d2d=_0x1b1033[_0x448d10(0xfd)])===null||_0x485d2d===void 0x0?void 0x0:_0x485d2d[_0x448d10(0xbc)])||((_0x5afad8=_0x1b1033[_0x448d10(0x189)])===null||_0x5afad8===void 0x0?void 0x0:_0x5afad8['text'])||''),_0xc69078=$(_0x448d10(0x13c)+_0x1b1033[_0x448d10(0x13a)][_0x448d10(0x134)]()+_0x448d10(0x145)+_0x194dd9+'><i\x20class=\x22fa\x20'+_0x16e7e3+_0x448d10(0x11b)+_0x1056ba+_0x448d10(0x11c)+_0x11d0be+_0x448d10(0x133));return _0xc69078[_0x448d10(0x15b)]('expandable'),_0xc69078[_0x448d10(0x151)](_0x448d10(0x10b),_0x3c04d9),_0xc69078[_0x448d10(0x151)](_0x448d10(0x135),_0x1b1033),_0xc69078;},_0x455f1b=(_0x5b0c00,_0x4e8748)=>{return _0x4e8748['find']('li[key=\x22'+_0x5b0c00+'\x22]');},_0x93d1ab=(_0x1b256f,_0x583e06)=>{const _0xa9eef5=_0x24a4d0;_0x1b256f[_0xa9eef5(0xde)][_0xa9eef5(0x157)](_0xa9eef5(0x146))[_0xa9eef5(0x186)](_0xa9eef5(0x129)),_0x583e06[_0xa9eef5(0x157)]('.tree-text:first')['addClass'](_0xa9eef5(0x129));},_0x256ced=(_0x4065de,_0x40b2eb,_0x46ebc6)=>_0x2cac5e(void 0x0,void 0x0,void 0x0,function*(){const _0x105506=_0x24a4d0;let _0x56c2a9=_0x46ebc6[_0x105506(0xbf)](_0x105506(0xff));_0x40b2eb[_0x105506(0xc3)][_0x105506(0x176)]||[];const _0x526561=_0x40b2eb[_0x105506(0x170)]||[];if(_0x526561[_0x105506(0xf9)]===0x0)return;for(const _0x582fa3 of _0x526561){_0x56c2a9['hasClass'](_0x105506(0x12e))&&(yield _0x22ad18(_0x4065de,_0x56c2a9));const _0x5022c7=_0x455f1b(_0x582fa3,_0x56c2a9);if(_0x5022c7[_0x105506(0xf9)]===0x0)return;_0x56c2a9=_0x5022c7;}_0x93d1ab(_0x4065de,_0x56c2a9),_0x1bbc82(_0x4065de[_0x105506(0x16e)],_0x56c2a9);});function _0x1bbc82(_0x22dc27,_0x2f32cc){const _0xb0358c=_0x24a4d0,_0xa2981f=_0x2f32cc[_0xb0358c(0xee)]()[_0xb0358c(0x118)],_0x1752ff=_0x22dc27[_0xb0358c(0xd8)]();if(_0x1752ff==undefined)return;const _0x351f4d=_0x1752ff+_0xa2981f-_0x22dc27[_0xb0358c(0x17e)]()/0x2+_0x2f32cc[_0xb0358c(0x17e)]()/0x2;_0x22dc27[_0xb0358c(0x13b)]({'scrollTop':_0x351f4d},0x1f4);}const _0x654efc=(_0x530b73,_0x59bd2d)=>_0x2cac5e(void 0x0,void 0x0,void 0x0,function*(){const _0xee4f2c=_0x24a4d0,_0x17aafd=_0x530b73[_0xee4f2c(0xba)]['val'](),_0x5e51f2={'nodeId':_0x17aafd,'rootNodeId':_0x59bd2d[_0xee4f2c(0x13a)],'isType':_0x530b73['options'][_0xee4f2c(0x143)]||![]},_0x32cc0d=_0x5c92d0(_0x530b73),_0x865b1e=yield _0x4850f7(_0x32cc0d,_0x5e51f2);if(!_0x865b1e)return;yield _0x256ced(_0x530b73,_0x865b1e,_0x530b73[_0xee4f2c(0xde)]);});function _0x4ae1e6(_0x40f24b,_0x7634df,_0x5b5add,_0x4a3b19){return _0x2cac5e(this,void 0x0,void 0x0,function*(){const _0x4197de=_0x21de;if(_0x7634df[_0x4197de(0xec)](_0x4197de(0x139))){console[_0x4197de(0xf4)](_0x4197de(0x136));return;}if(_0x7634df[_0x4197de(0xec)](_0x4197de(0x158))){console[_0x4197de(0xf4)](_0x4197de(0x132));return;}_0x7634df['addClass'](_0x4197de(0x158)),_0x7634df[_0x4197de(0x159)](_0x4197de(0x140));try{_0x7634df[_0x4197de(0xbf)]('ul')['empty']();const {references:_0x1e3938}=yield _0x5b5add(_0x7634df,_0x4a3b19);for(const _0xe3ad51 of _0x1e3938){if(_0x40f24b[_0x4197de(0xea)][_0x4197de(0x163)]&&!_0x40f24b['options'][_0x4197de(0x163)](_0xe3ad51))continue;const _0x8a0f02=_0x37fcbc(_0xe3ad51);_0x7634df[_0x4197de(0xbf)]('ul')['append'](_0x8a0f02);}_0x7634df[_0x4197de(0x15b)](_0x4197de(0x139));}catch(_0x41b746){_0x7634df[_0x4197de(0xbf)]('ul')[_0x4197de(0x159)]('<li>error\x20'+_0x41b746['message']+_0x4197de(0x150)),console[_0x4197de(0xf4)](_0x4197de(0x16d),_0x41b746);}_0x7634df[_0x4197de(0x157)]('.spinner')[_0x4197de(0x123)](),_0x7634df[_0x4197de(0x186)](_0x4197de(0x158));});}function _0x5c92d0(_0x10c8a7){const _0x1a66fa=_0x24a4d0,_0x17c166={'baseUrl':_0x10c8a7[_0x1a66fa(0xea)][_0x1a66fa(0x106)],'endpointNode':typeof _0x10c8a7[_0x1a66fa(0xea)][_0x1a66fa(0x12d)]==='function'?_0x10c8a7[_0x1a66fa(0xea)][_0x1a66fa(0x12d)]():_0x10c8a7[_0x1a66fa(0xea)]['endpointNode'],'endpoint':typeof _0x10c8a7[_0x1a66fa(0xea)][_0x1a66fa(0x12b)]===_0x1a66fa(0xdb)?_0x10c8a7[_0x1a66fa(0xea)][_0x1a66fa(0x12b)]():_0x10c8a7[_0x1a66fa(0xea)]['endpoint']};return _0x17c166;}function _0x22ad18(_0x12046a,_0x46cc9d){return _0x2cac5e(this,void 0x0,void 0x0,function*(){const _0x4bf2c4=_0x21de;if(_0x46cc9d[_0x4bf2c4(0xec)](_0x4bf2c4(0x139))){_0x46cc9d['removeClass'](_0x4bf2c4(0x12e))['addClass'](_0x4bf2c4(0x164)),_0x46cc9d['children']('ul')[_0x4bf2c4(0xc9)]();return;}const _0x579cca=_0x5c92d0(_0x12046a),_0x5bd6e6=!_0x12046a[_0x4bf2c4(0xea)][_0x4bf2c4(0x143)]?_0x746c14:_0x1d4939;try{yield _0x4ae1e6(_0x12046a,_0x46cc9d,_0x5bd6e6,_0x579cca),_0x46cc9d[_0x4bf2c4(0x186)](_0x4bf2c4(0x12e))['addClass']('expanded');}catch(_0x4e3a32){_0x46cc9d[_0x4bf2c4(0x186)]('expandable')[_0x4bf2c4(0x15b)](_0x4bf2c4(0x164)),console[_0x4bf2c4(0xf4)](_0x4bf2c4(0x101),_0x4e3a32);}});}const _0x61ac0f=()=>{const _0x51d065=_0x24a4d0;$[_0x51d065(0xe7)](_0x51d065(0x15c),{'options':{'endpointNode':()=>({'endpoint':_0x51d065(0x102)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x51d065(0x116)},'nodeClass':_0x51d065(0xc8),'nodeId':_0x51d065(0x137),'displayName':{'text':_0x51d065(0x116)},'typeDefinition':_0x36239b}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2cac5e(this,void 0x0,void 0x0,function*(){const _0x142b37=_0x21de,_0x14cab3=this;if(!_0x14cab3['__parentNode']){const _0x60623b=typeof _0x14cab3[_0x142b37(0xea)][_0x142b37(0x17d)]==='function'?_0x14cab3['options']['parentNode']['call'](_0x14cab3):_0x14cab3[_0x142b37(0xea)]['parentNode'];if(_0x60623b instanceof Promise){const _0x43f825=yield _0x60623b;_0x14cab3[_0x142b37(0x12a)]=_0x43f825;}else _0x14cab3[_0x142b37(0x12a)]=_0x60623b;}return _0x14cab3[_0x142b37(0x12a)];});},'reset'(){return _0x2cac5e(this,void 0x0,void 0x0,function*(){const _0x3dee62=_0x21de,_0x5b3b6b=this,_0x23c1a7=_0x5b3b6b;_0x23c1a7['__parentNode']=undefined,_0x5b3b6b['$tree']['empty']();const _0x1bdb8e=yield this['resolveParentNode'](),_0x2f5f91=_0x37fcbc(_0x1bdb8e);_0x5b3b6b['$tree'][_0x3dee62(0x159)](_0x2f5f91),_0x5b3b6b['currentParent']=_0x1bdb8e;});},'verify'(){const _0x158c60=_0x51d065,_0x133aab=this,_0x4fbd25=_0x5c92d0(_0x133aab);_0x4c975d(_0x4fbd25,_0x133aab[_0x158c60(0xba)],_0x133aab['$info']);},'_create'(){const _0x3aca97=_0x51d065,_0x5cff13=this;_0x5cff13[_0x3aca97(0xba)]=this[_0x3aca97(0xdf)],_0x5cff13['$combo']=$('<div/>'),_0x5cff13['$combo']['addClass'](_0x3aca97(0x138)),this[_0x3aca97(0xdf)][_0x3aca97(0xce)](_0x5cff13[_0x3aca97(0x115)]),_0x5cff13[_0x3aca97(0x188)]=$(_0x3aca97(0x13e))['addClass'](_0x3aca97(0x156)),_0x5cff13['$combo']['append'](_0x5cff13[_0x3aca97(0x188)]),_0x5cff13['$inputGroup']['append'](_0x5cff13[_0x3aca97(0xba)]),_0x5cff13[_0x3aca97(0x171)]=$(_0x3aca97(0xb9)),_0x5cff13[_0x3aca97(0x188)][_0x3aca97(0x159)](_0x5cff13[_0x3aca97(0x171)]),_0x5cff13[_0x3aca97(0x171)]['on'](_0x3aca97(0xf6),function(){return _0x2cac5e(this,void 0x0,void 0x0,function*(){const _0x91e40f=_0x21de;var _0x33bc4a;let _0x2fa2a5=![],_0x40a6cd;!_0x5cff13[_0x91e40f(0x16e)]['is'](_0x91e40f(0x11a))&&(_0x5cff13[_0x91e40f(0x14e)][_0x91e40f(0x187)](),_0x40a6cd=yield _0x5cff13[_0x91e40f(0xc6)](),(_0x40a6cd!==_0x5cff13[_0x91e40f(0xbb)]||((_0x33bc4a=_0x5cff13[_0x91e40f(0xbb)])===null||_0x33bc4a===void 0x0?void 0x0:_0x33bc4a['nodeId'])!==_0x40a6cd['nodeId'])&&(yield _0x5cff13[_0x91e40f(0xb8)]()),_0x2fa2a5=!![]),_0x5cff13[_0x91e40f(0x16e)]['toggle'](),_0x2fa2a5&&(yield _0x654efc(_0x5cff13,_0x40a6cd));});}),_0x5cff13[_0x3aca97(0x126)]=$(_0x3aca97(0xef)),_0x5cff13[_0x3aca97(0x188)]['append'](_0x5cff13[_0x3aca97(0x126)]),_0x5cff13['$verifyBtn']['on'](_0x3aca97(0xf6),()=>{const _0x42ad34=_0x3aca97;this[_0x42ad34(0x16c)]();});!_0x5cff13['$input'][_0x3aca97(0xe4)]('placeholder')&&_0x5cff13[_0x3aca97(0xba)][_0x3aca97(0xe4)](_0x3aca97(0x107),_0x3aca97(0x122));_0x5cff13[_0x3aca97(0x14e)]=$(_0x3aca97(0x148)),_0x5cff13[_0x3aca97(0x14e)]['hide'](),_0x5cff13[_0x3aca97(0x16e)]=$(_0x3aca97(0x13e))[_0x3aca97(0x15b)]('sterfive-dropdown')['hide'](),_0x5cff13['$combo'][_0x3aca97(0x159)](_0x5cff13[_0x3aca97(0x14e)]),_0x5cff13[_0x3aca97(0x115)][_0x3aca97(0x159)](_0x5cff13['$dropdown']),_0x5cff13[_0x3aca97(0xde)]=$(_0x3aca97(0xfa))[_0x3aca97(0xe9)](_0x5cff13['$dropdown']),this[_0x3aca97(0xb8)]();const _0x437ce4=(_0x3bcb0b,_0x2e6fca)=>{const _0x1f65c4=_0x3aca97,_0x24ac2a=0x14,_0x148e2c=0x14,_0x297824=_0x3bcb0b['offset'](),_0x116b34=_0x2e6fca;if(_0x116b34[_0x1f65c4(0x152)]>=_0x297824[_0x1f65c4(0xd4)]&&_0x116b34[_0x1f65c4(0x152)]<=_0x297824[_0x1f65c4(0xd4)]+_0x24ac2a&&_0x116b34['pageY']>=_0x297824[_0x1f65c4(0x118)]&&_0x116b34[_0x1f65c4(0x141)]<=_0x297824[_0x1f65c4(0x118)]+_0x148e2c)return!![];return![];},_0x19b6d9=_0x59de7f=>_0x2cac5e(this,void 0x0,void 0x0,function*(){const _0x33059f=_0x3aca97;if(_0x59de7f[_0x33059f(0xec)](_0x33059f(0x12e)))_0x22ad18(_0x5cff13,_0x59de7f);else{if(_0x59de7f[_0x33059f(0xec)](_0x33059f(0x164)))_0x59de7f[_0x33059f(0xbf)]('ul')[_0x33059f(0xc9)](),_0x59de7f[_0x33059f(0xcd)]('expandable\x20expanded');else{if(_0x59de7f[_0x33059f(0xbf)]('ul')[_0x33059f(0xbf)]()[_0x33059f(0xf9)]>0x0)_0x59de7f[_0x33059f(0xbf)]('ul')[_0x33059f(0xc9)](),_0x59de7f[_0x33059f(0xcd)](_0x33059f(0xda));else;}}});_0x5cff13[_0x3aca97(0xde)]['on'](_0x3aca97(0xc0),'li',function(_0x8ef4b3){const _0x904912=_0x3aca97;var _0x2daf1c,_0x48449f;_0x8ef4b3[_0x904912(0xd1)]();let _0x58d0c4=$(this);if(_0x437ce4(_0x58d0c4,_0x8ef4b3))_0x19b6d9(_0x58d0c4);else{const _0xa7c743=_0x58d0c4[_0x904912(0x151)](_0x904912(0x10b)),_0x407a3f=_0x58d0c4[_0x904912(0x151)](_0x904912(0x135));if(_0x5cff13[_0x904912(0xea)][_0x904912(0xe5)]&&!_0x5cff13[_0x904912(0xea)][_0x904912(0xe5)](_0x407a3f))return;_0x5cff13[_0x904912(0xba)]['data']('reference',_0x407a3f);const _0x1a8a18=((_0x2daf1c=_0x407a3f[_0x904912(0x189)])===null||_0x2daf1c===void 0x0?void 0x0:_0x2daf1c[_0x904912(0x183)])||((_0x48449f=_0x407a3f['browseName'])===null||_0x48449f===void 0x0?void 0x0:_0x48449f[_0x904912(0xbc)])||_0x407a3f[_0x904912(0x13a)][_0x904912(0x134)](),_0x397a21='['+_0x1a8a18+']('+_0xa7c743+')';_0x5cff13['$input'][_0x904912(0xc2)](_0x397a21),_0x5cff13[_0x904912(0xba)][_0x904912(0x175)](_0x904912(0x147)),_0x5cff13[_0x904912(0x16e)][_0x904912(0x187)]();}}),_0x5cff13['$tree']['on'](_0x3aca97(0xf6),'li',function(_0xe77aee){_0xe77aee['stopPropagation']();let _0x290679=$(this);_0x437ce4(_0x290679,_0xe77aee)&&_0x19b6d9(_0x290679),_0x93d1ab(_0x5cff13,_0x290679);}),$(document)['on'](_0x3aca97(0xf6),function(_0x1f8521){const _0x5a9fb6=_0x3aca97;!$(_0x1f8521['target'])['closest'](_0x5cff13[_0x5a9fb6(0x115)])['length']&&_0x5cff13['$dropdown'][_0x5a9fb6(0x187)]();});}});},_0xdadcc8=()=>{const _0x10ded3=_0x24a4d0;$[_0x10ded3(0xe7)]('sterfive.flagEditor',{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x3eac01=_0x10ded3,_0xcd0298=this;_0xcd0298[_0x3eac01(0xba)]=this[_0x3eac01(0xdf)],_0xcd0298[_0x3eac01(0x115)]=$('<div/>'),_0xcd0298[_0x3eac01(0x115)]['addClass'](_0x3eac01(0x138)),this['element'][0x0][_0x3eac01(0x155)][_0x3eac01(0x13d)](_0xcd0298['$combo'][0x0],this[_0x3eac01(0xdf)][0x0]),_0xcd0298[_0x3eac01(0x188)]=$(_0x3eac01(0x13e))[_0x3eac01(0x15b)]('input-group'),_0xcd0298['$combo'][_0x3eac01(0x159)](_0xcd0298[_0x3eac01(0x188)]),_0xcd0298['$inputGroup'][_0x3eac01(0x159)](_0xcd0298[_0x3eac01(0xba)]),_0xcd0298[_0x3eac01(0x171)]=$(_0x3eac01(0xbd)),_0xcd0298[_0x3eac01(0x188)][_0x3eac01(0x159)](_0xcd0298[_0x3eac01(0x171)]),_0xcd0298['$toggleTreeBtn']['on'](_0x3eac01(0xf6),function(){const _0x2958d8=_0x3eac01;_0xcd0298[_0x2958d8(0x16e)]['toggle'](),_0xcd0298[_0x2958d8(0x16e)]['is'](_0x2958d8(0x11a))&&(_0x55d044(),_0xcd0298['$combo'][_0x2958d8(0x157)](_0x2958d8(0xca))[_0x2958d8(0xe6)](function(){const _0x51f624=_0x2958d8;let _0x427512=$(this)[_0x51f624(0x183)]();const _0x56764c=_0xcd0298[_0x51f624(0xea)][_0x51f624(0xf0)][_0x427512];if(_0x56764c===undefined)throw new Error(_0x51f624(0xe3));(_0xcd0298[_0x51f624(0xea)][_0x51f624(0x10b)]&_0x56764c)===_0x56764c?$(this)[_0x51f624(0x15b)](_0x51f624(0x129)):$(this)[_0x51f624(0x186)]('selected');}),_0xcd0298[_0x2958d8(0x16b)]());}),_0xcd0298[_0x3eac01(0x16e)]=$('<div\x20class=\x22custom-select\x22></div>')[_0x3eac01(0x187)]()['insertAfter'](this[_0x3eac01(0xdf)]),$[_0x3eac01(0xe6)](this[_0x3eac01(0xea)]['namesToBits'],function(_0xffc2e1){const _0x2559c0=_0x3eac01,_0x69dab4=$(_0x2559c0(0x14d)+_0xffc2e1+'\x22>'+_0x2559c0(0xeb)+_0xffc2e1+_0x2559c0(0x108));_0xcd0298['$dropdown'][_0x2559c0(0x159)](_0x69dab4);}),_0xcd0298[_0x3eac01(0x16e)]['on'](_0x3eac01(0xf6),_0x3eac01(0xca),function(){const _0x495f2f=_0x3eac01;$(this)[_0x495f2f(0xcd)]('selected');const _0xdb45d9=$(this)[_0x495f2f(0x151)](_0x495f2f(0x10b));$(this)[_0x495f2f(0xec)](_0x495f2f(0x129))?_0x3a1c61(_0xdb45d9):_0x2ca0ad(_0xdb45d9),_0xcd0298[_0x495f2f(0x16b)]();}),_0xcd0298[_0x3eac01(0x115)][_0x3eac01(0x159)](_0xcd0298[_0x3eac01(0x16e)]);const _0x55d044=()=>{const _0x550b36=_0x3eac01,_0x14f235=this['element'][_0x550b36(0xc2)]();_0xcd0298[_0x550b36(0xea)][_0x550b36(0x10b)]=_0x1e4061(_0xcd0298[_0x550b36(0xea)]['namesToBits'],_0x14f235);},_0x3a1c61=_0x396824=>{const _0x1c1752=_0x3eac01,_0x2f9157=_0xcd0298[_0x1c1752(0xea)]['namesToBits'][_0x396824];if(_0x2f9157===undefined)throw new Error('Unknown\x20bit\x20name');this[_0x1c1752(0xea)][_0x1c1752(0x10b)]|=_0x2f9157;},_0x2ca0ad=_0x4848a6=>{const _0x3a28b5=_0x3eac01,_0x281c6a=_0xcd0298[_0x3a28b5(0xea)][_0x3a28b5(0xf0)][_0x4848a6];if(_0x281c6a===undefined)throw new Error(_0x3a28b5(0xe3));this[_0x3a28b5(0xea)][_0x3a28b5(0x10b)]&=~_0x281c6a,this[_0x3a28b5(0xdf)][_0x3a28b5(0xc2)](_0x2ac948(_0xcd0298[_0x3a28b5(0xea)][_0x3a28b5(0xf0)],this[_0x3a28b5(0xea)]['value']));};_0x55d044();},'updateValue'(){const _0x22bff0=_0x10ded3,_0x4518ac=this;this['element'][_0x22bff0(0xc2)](_0x2ac948(_0x4518ac[_0x22bff0(0xea)][_0x22bff0(0xf0)],this[_0x22bff0(0xea)][_0x22bff0(0x10b)]));},'_destroy'(){const _0x3c684f=_0x10ded3,_0x197483=this;_0x197483[_0x3c684f(0x16e)][_0x3c684f(0x123)]();}});},_0x4d66e2=()=>{const _0x5c30db=_0x24a4d0,_0x50118f=$(_0x5c30db(0xf8)),_0x12a844=_0x50118f[_0x5c30db(0xc2)](),_0x2e4da1=RED[_0x5c30db(0x179)]['node'](_0x12a844);if(!_0x2e4da1)return undefined;const {endpoint:_0x3feba0,securityMode:_0x5de13a,securityPolicy:_0x3fab1d,userIdentityType:_0x99b819,credentials:_0x43a571}=_0x2e4da1,_0x44c862={'endpoint':_0x3feba0,'securityMode':_0x5de13a,'securityPolicy':_0x3fab1d,'userIdentityType':_0x99b819,'credentials':_0x43a571};return _0x44c862;},_0x29af7f=()=>{return{'endpointNode':_0x37bb5a};},_0x37bb5a=()=>{const _0x56a2bc=_0x24a4d0,_0x1ae282=$(_0x56a2bc(0xf8)),_0x9da71f=_0x1ae282['val'](),_0x496b53=_0x4d66e2();if(!_0x496b53)return undefined;return{'id':_0x9da71f};};RED[_0x24a4d0(0x179)]['registerType'](_0x24a4d0(0xf1),{'category':_0x24a4d0(0xcb),'color':_0x24a4d0(0xfb),'align':_0x24a4d0(0x17c),'icon':_0x24a4d0(0xcc),'paletteLabel':_0x24a4d0(0xc5),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x24a4d0(0x169)},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':_0x24a4d0(0xc4),'required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':'Forward','required':!![]},'nodeClassMask':{'value':_0x24a4d0(0x127),'required':![]},'resultMask':{'value':_0x24a4d0(0xd7),'required':![]}},'outputs':0x1,'label'(){const _0x542891=_0x24a4d0;return this['name']||_0x542891(0xf7);},'labelStyle'(){const _0x3d1268=_0x24a4d0;return this[_0x3d1268(0xbc)]?'node_label_italic':'';},'oneditprepare'(){const _0x2c9acb=_0x24a4d0,_0x3b99bf=this;_0x61ac0f(),_0xdadcc8(),_0x3b99bf['inputs']=0x1;const _0x381b11=$('#node-input-nodeClassMask');_0x381b11[_0x2c9acb(0xd6)]({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x16043a=$('#node-input-resultMask');_0x16043a[_0x2c9acb(0xd6)]({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x46219c=$('#node-input-nodeId');_0x46219c[_0x2c9acb(0x165)](Object[_0x2c9acb(0x15a)](Object['assign']({},_0x29af7f()),{'isSelectable'(_0x2c8bd5){const _0x182be3=_0x2c9acb;return _0x2c8bd5[_0x182be3(0x144)]===_0x182be3(0xf5)||_0x2c8bd5[_0x182be3(0x144)]===_0x182be3(0xc8);}}));const _0x1000df={'nodeId':'i=31','referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x2c9acb(0x185)},'displayName':{'text':_0x2c9acb(0x185)},'nodeClass':_0x2c9acb(0x12f),'typeDefinition':_0x2c9acb(0x153)},_0x52e191=$('#node-input-referenceTypeId');_0x52e191[_0x2c9acb(0x165)](Object[_0x2c9acb(0x15a)](Object[_0x2c9acb(0x15a)]({},_0x29af7f()),{'parentNode':()=>_0x1000df,'isSelectable'(_0x16844e){const _0x465b1c=_0x2c9acb;return _0x16844e[_0x465b1c(0x144)]===_0x465b1c(0x12f);},'isTypeRef':!![]}));},'oneditsave'(){}});}()));function _0xc253(){const _0x1e3c26=['assign','addClass','sterfive.nodeBrowser','/walk-backward','Organizes','suppressed','108248erpJSK','entries','ObjectType','filter','expanded','nodeBrowser','stringify','453060qfpogE','application/json','OpcUa-Endpoint2','!!failure!!','updateValue','verify','err','$dropdown','6673315aSOnTm','nodeIds','$toggleTreeBtn','failure','DisplayName','Good','trigger','elements','referenceTypeId','show','nodes','959634YWaWat','fa-folder','right','parentNode','height','browsePath','statusText','/browse','ns=0;i=61','text','10szKWrl','References','removeClass','hide','$inputGroup','displayName','DarkOrange','DodgerBlue','reset','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','$input','currentParent','name','<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>','\x20|\x20','children','dblclick','ns=0;i=34','val','relativePath','HasChild','browse','resolveParentNode','fa-question','Object','toggle','.custom-option','opcua','../../icons/opcuanodeLogo.png','toggleClass','replaceWith','match','rgba(61,\x2060,\x204,\x200.525)','stopPropagation','typeDefinition','nodeAddressString','left','60YyrXbJ','flagEditor','ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','scrollTop','apply','expandable\x20expanded','function','POST','fa-list-alt','$tree','element','ns=0;i=40','fa-text-width','i=61','Unknown\x20bit\x20name','attr','isSelectable','each','widget','BrowseName','appendTo','options','<span\x20class=\x22custom-checkbox\x22></span>','hasClass','203mhiScs','position','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','namesToBits','OpcUa-Client2-Browse','IsForward','HasSubtype','log','Variable','click','OPCUA\x20Browse','#node-input-endpoint','length','<ul\x20class=\x22sterfive-tree\x22></ul>','#C0DEED','next','browseName','ns=0;i=47',':first','VariableType','error','opc.tcp://opcuademo.sterfive.com:26543','3nIWVah','sterfive-info','number','baseUrl','placeholder','</div>','/opcua-endpoint2','references','value','grey','join','throw','Both','Inverse','Unspecified','/checkNodeId','DataType','fetching\x20failed\x20with\x20error','$combo','Objects','420775nKCyAX','top','statusCode',':visible','\x22\x20style=\x22color:',';\x22></i>\x20','HasTypeDefinition','Forward','588778dTeWIn','118095PnDISZ','fa-object-group','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','remove','map','View','$verifyBtn','Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','json','selected','__parentNode','endpoint','done','endpointNode','expandable','ReferenceType','status','push','already\x20loading','</span><ul></ul></li>','toString','reference','already\x20fetched','ns=0;i=85','sterfive-combo-box','fetched','nodeId','animate','<li\x20key=\x22','replaceChild','<div/>','SeaGreen','<div\x20class=\x22spinner\x22></div>','pageY','SteelBlue','isTypeRef','nodeClass','\x22}><span\x20class=\x22tree-text\x22\x20title=','li\x20>\x20.tree-text','change','<div\x20class=\x22info-text\x22></div>','Method','SandyBrown','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','Invalid','<div\x20class=\x22custom-option\x22\x20data-value=\x22','$info','ns=0;i=45','</li>','data','pageX','i=31','trim','parentElement','input-group','find','loading','append'];_0xc253=function(){return _0x1e3c26;};return _0xc253();}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyY2FjNWUiLCJfMHgyNzQ3N2IiLCJfMHgxOTIxMDciLCJfMHgzOTA3YjYiLCJfMHgxMTM5YjQiLCJfMHgxYjdjMWUiLCJfMHgyZGM2MWEiLCJfMHhiOGZhNDMiLCJQcm9taXNlIiwiXzB4MWJiMDJmIiwiXzB4NTUwYmQwIiwiXzB4NDRmY2Q4IiwiXzB4Y2VjYzVhIiwiXzB4Mjg4MTllIiwiXzB4MzU1OTFhIiwiXzB4NDA5YzFhIiwiXzB4MjliODdlIiwiXzB4MTM1NzdhIiwiXzB4MTYwN2VmIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NDM0NWU5IiwiXzB4YjhhNjVhIiwiXzB4MTNjMjBiIiwiXzB4MWZhZmM4IiwiRXJyb3IiLCJfMHgzY2NhZjkiLCJfMHgzNjIzOWIiLCJfMHg2Yzk4NDQiLCJfMHg1YzI4YzQiLCJfMHg0YjI3MzIiLCJfMHg1YzVkZjAiLCJfMHgxM2QwN2IiLCJfMHg1YWNhYzgiLCJfMHg0MWYyNWYiLCJfMHg1M2MyMDEiLCJfMHg1OWNjOTMiLCJfMHgzZmRlZDYiLCJfMHgyZThjNjYiLCJfMHgxZTQwNjEiLCJfMHgxZTdlMzQiLCJfMHgyYzdjN2IiLCJfMHgyZjc5Y2QiLCJwYXJzZUludCIsImlzTmFOIiwiXzB4Mzk0M2RiIiwiXzB4NTgwOTJhIiwiXzB4NDBkYTZhIiwiXzB4Mjc5MjhhIiwiXzB4MmFjOTQ4IiwiXzB4NjZkZDEwIiwiXzB4MzVhZThiIiwiXzB4MmMyMGQ0IiwiXzB4MmE2YTc4IiwiXzB4MWQyZGJkIiwiT2JqZWN0IiwiXzB4ZDBhNjlmIiwiXzB4MWNlZTg2IiwiXzB4NWE1NWIwIiwiXzB4NWQ0MzMwIiwiXzB4MWMwZDg1IiwiXzB4NDgzMzcxIiwiXzB4NTM4ZjkyIiwiXzB4NWRhNDllIiwiXzB4MWNiMjE3IiwiXzB4NDJmMDlmIiwiZW5kcG9pbnROb2RlIiwiXzB4M2FhNGY2IiwiZW5kcG9pbnQiLCJfMHhmMGI3YjciLCJiYXNlVXJsIiwiXzB4MWVmMmIyIiwiXzB4MmM4N2E2IiwiXzB4MmE0MzM4IiwiXzB4MTlkNGYyIiwiXzB4Yzg0MjU3IiwiXzB4NDYyNGQzIiwiXzB4MjhlMDg2IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDE3YTU4MiIsIl8weDE1YjViZSIsIl8weDM5MDE0YyIsIl8weDMyNTNiZiIsIl8weDQ4NTBmNyIsIl8weGU1MGNkNiIsIl8weDUzNDQ3NyIsIl8weGE1ZDIyOCIsIl8weDI3OWY2YSIsIl8weDEzZjg4NyIsIm5vZGVJZCIsIl8weGE4Nzk3NyIsInJvb3ROb2RlSWQiLCJfMHgzZDI1MTkiLCJpc1R5cGUiLCJfMHg4Nzc1YWYiLCJfMHgyNzI1YTQiLCJfMHgxYmU0MjAiLCJfMHhjOWZjZDIiLCJfMHgyZjEzNzEiLCJfMHg0Yzk3NWQiLCJfMHgxYmIwMWMiLCJfMHgxYTcwMyIsIl8weDQwNjQxYyIsIl8weDI1YWVmZCIsIl8weDFiYzMyOCIsIl8weDE4YjU3ZSIsIl8weDE5ZDg1YiIsIl8weDViNDgyNSIsIl8weDE5OWEwNyIsIl8weDEzOTZlMyIsIl8weDM1YmY1YiIsIl8weDEwYzUwYyIsIl8weDUzYWQ1YyIsIl8weDNkOWJiYyIsIl8weDI1ZjY3NyIsInNldFRpbWVvdXQiLCJfMHgyZjM1MjQiLCJfMHg3NDZjMTQiLCJfMHhjYzc1ZTkiLCJfMHg5NDIyNDEiLCJfMHg1NTg4MjciLCJfMHg1MzFkODgiLCJfMHg1OWNjOTIiLCJfMHgzZDZjMGUiLCJfMHgxZDQ5MzkiLCJfMHgyZTQyYjYiLCJfMHg0Nzk5MGQiLCJfMHhhMzgyYjciLCJfMHg0ZGEzY2EiLCJfMHgzN2ZjYmMiLCJfMHgxYjEwMzMiLCJfMHgyYjA0OGIiLCJfMHg0ZTUwZmQiLCJfMHg0ODVkMmQiLCJfMHg1YWZhZDgiLCJfMHgyMjgxMGEiLCIkIiwiXzB4M2MwNGQ5IiwiXzB4MTFkMGJlIiwiaWNvbiIsIl8weDE2ZTdlMyIsImNvbG9yIiwiXzB4MTA1NmJhIiwiXzB4MTk0ZGQ5IiwiXzB4YzY5MDc4IiwiXzB4NDU1ZjFiIiwiXzB4NWIwYzAwIiwiXzB4NGU4NzQ4IiwiXzB4OTNkMWFiIiwiXzB4MWIyNTZmIiwiXzB4NTgzZTA2IiwiXzB4MjU2Y2VkIiwiXzB4NDA2NWRlIiwiXzB4NDBiMmViIiwiXzB4NDZlYmM2IiwiXzB4NTZjMmE5IiwiXzB4NTI2NTYxIiwiXzB4NTgyZmEzIiwiXzB4MjJhZDE4IiwiXzB4NTAyMmM3IiwiXzB4MWJiYzgyIiwiXzB4MjJkYzI3IiwiXzB4MmYzMmNjIiwiXzB4YTI5ODFmIiwiXzB4MTc1MmZmIiwidW5kZWZpbmVkIiwiXzB4MzUxZjRkIiwiXzB4NjU0ZWZjIiwiXzB4NTMwYjczIiwiXzB4NTliZDJkIiwiXzB4MTdhYWZkIiwiXzB4NWU1MWYyIiwiXzB4MzJjYzBkIiwiXzB4NWM5MmQwIiwiXzB4ODY1YjFlIiwiXzB4NGFlMWU2IiwiXzB4NDBmMjRiIiwiXzB4NzYzNGRmIiwiXzB4NWI1YWRkIiwiXzB4NGEzYjE5IiwicmVmZXJlbmNlcyIsIl8weDFlMzkzOCIsIl8weGUzYWQ1MSIsIl8weDhhMGYwMiIsIl8weDQxYjc0NiIsIl8weDEwYzhhNyIsIl8weDE3YzE2NiIsIl8weDEyMDQ2YSIsIl8weDQ2Y2M5ZCIsIl8weDU3OWNjYSIsIl8weDViZDZlNiIsIl8weDRlM2EzMiIsIl8weDYxYWMwZiIsIl8weDE0Y2FiMyIsIl8weDYwNjIzYiIsIl8weDQzZjgyNSIsIl8weDViM2I2YiIsIl8weDIzYzFhNyIsIl8weDFiZGI4ZSIsIl8weDJmNWY5MSIsIl8weDEzM2FhYiIsIl8weDRmYmQyNSIsIl8weDVjZmYxMyIsIl8weDMzYmM0YSIsIl8weDJmYTJhNSIsIl8weDQwYTZjZCIsIl8weDQzN2NlNCIsIl8weDNiY2IwYiIsIl8weDJlNmZjYSIsIl8weDI0YWMyYSIsIl8weDE0OGUyYyIsIl8weDI5NzgyNCIsIl8weDExNmIzNCIsIl8weDE5YjZkOSIsIl8weDU5ZGU3ZiIsIl8weDhlZjRiMyIsIl8weDJkYWYxYyIsIl8weDQ4NDQ5ZiIsIl8weDU4ZDBjNCIsIl8weGE3Yzc0MyIsIl8weDQwN2EzZiIsIl8weDFhOGExOCIsIl8weDM5N2EyMSIsIl8weGU3N2FlZSIsIl8weDI5MDY3OSIsImRvY3VtZW50IiwiXzB4MWY4NTIxIiwiXzB4ZGFkY2M4IiwiXzB4Y2QwMjk4IiwiXzB4NTVkMDQ0IiwiXzB4NDI3NTEyIiwiXzB4NTY3NjRjIiwiXzB4ZmZjMmUxIiwiXzB4NjlkYWI0IiwiXzB4ZGI0NWQ5IiwiXzB4M2ExYzYxIiwiXzB4MmNhMGFkIiwiXzB4MTRmMjM1IiwiXzB4Mzk2ODI0IiwiXzB4MmY5MTU3IiwiXzB4NDg0OGE2IiwiXzB4MjgxYzZhIiwiXzB4NDUxOGFjIiwiXzB4MTk3NDgzIiwiXzB4NGQ2NmUyIiwiXzB4NTAxMThmIiwiXzB4MTJhODQ0IiwiXzB4MmU0ZGExIiwiUkVEIiwiXzB4M2ZlYmEwIiwic2VjdXJpdHlNb2RlIiwiXzB4NWRlMTNhIiwic2VjdXJpdHlQb2xpY3kiLCJfMHgzZmFiMWQiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4OTliODE5IiwiY3JlZGVudGlhbHMiLCJfMHg0M2E1NzEiLCJfMHg0NGM4NjIiLCJfMHgyOWFmN2YiLCJfMHgzN2JiNWEiLCJfMHgxYWUyODIiLCJfMHg5ZGE3MWYiLCJfMHg0OTZiNTMiLCJfMHgzYjk5YmYiLCJfMHgzODFiMTEiLCJfMHgxNjA0M2EiLCJfMHg0NjIxOWMiLCJfMHgyYzhiZDUiLCJfMHgxMDAwZGYiLCJfMHg1MmUxOTEiLCJfMHgxNjg0NGUiXSwibWFwcGluZ3MiOiJtMEJBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMsQ0FBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxNQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLGdCQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLE9BQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxnQkFBQSxDQUFOLEUsTUFBQSxFQUF5QlAsU0FBekIsQ0FBb0NJLFNBQXBDLEMsRUFDOURGLFNBQUEsQ0FBTSxDQUFBVCxTQUFBLENBQVlBLFNBQUEsQyxlQUFBLEVBQWdCSCxTQUFoQixDQUF5QkMsU0FBQSxFQUFjLEVBQXZDLENBQVosQ0FBRCxDLGVBQUEsR0FBTCxDLEVBSkcsQyxFQVFYLE9BQU9pQixlQUFQLEcsVUFBQSxDQUF3Q0EsZUFBeEMsQ0FBMEQsU0FBVUMsU0FBVixDQUFpQkMsU0FBakIsQ0FBNkJDLFNBQTdCLEMseUJBQ3RELElBQUlDLFNBQUEsQ0FBSSxJQUFJQyxLQUFKLENBQVVGLFNBQVYsQ0FBUixDLE9BQ09DLFNBQUEsQyxlQUFBLEUsaUJBQUEsQ0FBNEJBLFNBQUEsQyxnQkFBQSxFQUFVSCxTQUF0QyxDQUE2Q0csU0FBQSxDLGdCQUFBLEVBQWVGLFNBQTVELENBQXdFRSxTLEVBRm5GLENBS0EsTUFBTUUsU0FBQSxDLFdBQU4sQ0FDTUMsU0FBQSxDLGdCQUROLENBRU1DLFNBQUEsQyxlQUZOLENBR01DLFNBQUEsQyxXQUhOLENBSU1DLFNBQUEsQyxlQUpOLENBS01DLFNBQUEsQyxnQkFMTixDQU1NQyxTQUFBLEMsZUFOTixDQVFBLElBQUlDLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxrQkFKSixDQUtHRCxTQUFBLEVBQW9CLENBQUFBLFNBQUEsQ0FBa0IsRUFBbEIsQ0FMdkIsR0FNQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGNBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFFBQUEsRSxHQUFWLEUsZ0JBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGVBQUEsRSxHQUFWLEUsZ0JBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLFNBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFlBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsUUFUSixDQVVHRCxTQUFBLEVBQWMsQ0FBQUEsU0FBQSxDQUFZLEVBQVosQ0FWakIsR0FXQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBY0EsU0FBQSxDLFFBQUEsRSxHQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxHQUFkLEUsV0FDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLFVBQUEsRSxJQUFkLEUsV0FDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsa0JBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsU0FBU0UsU0FBVCxDQUFnQ0MsU0FBaEMsQ0FBc0NDLFNBQXRDLEMsOEJBQ1EsT0FBT0EsU0FBUCxHLHdCQUNPQSxTLENBRVgsTUFBTUMsU0FBQSxDQUFXQyxRQUFBLENBQVNGLFNBQVQsQyxHQUFBLENBQWpCLEMsR0FDSSxDQUFDRyxLQUFBLENBQU1GLFNBQU4sQyxRQUNNQSxTLENBRVgsTUFBTUcsU0FBQSxDQUFRSixTQUFBLEMsT0FBQSxFQUFVLFFBQVYsRSxnQkFBQSxFQUF5QkssU0FBRCxFQUFPQSxTQUFBLEMsZ0JBQUEsR0FBL0IsQ0FBZCxDQUNBLElBQUlDLFNBQUEsQyxHQUFKLENBQ0EsVUFBV0MsU0FBWCxJQUFtQkgsU0FBbkIsQyxDQUNJRSxTQUFBLEVBQVVQLFNBQUEsQ0FBS1EsU0FBTCxDLFNBRVBELFMsRUFFWCxTQUFTRSxTQUFULENBQWdDQyxTQUFoQyxDQUFzQ0MsU0FBdEMsQywyQkFDSUEsU0FBQSxDQUFRWixTQUFBLENBQXVCVyxTQUF2QixDQUE2QkMsU0FBN0IsQ0FBUixDQUNBLE1BQU1DLFNBQUEsQ0FBSSxFQUFWLEMsR0FDSSxDQUFDRixTLENBQ0QsT0FBT0UsU0FBQSxDLGdCQUFBLEUsZUFBQSxDQUFQLENBQ0osVUFBVyxDQUFDQyxTQUFELENBQU1DLFNBQU4sQ0FBWCxHQUE2QkMsTUFBQSxDLGdCQUFBLEVBQWVMLFNBQWYsQ0FBN0IsQyxDQUNRLE9BQU9DLFNBQVAsRyxtQkFDSyxDQUFBQSxTQUFBLENBQVFHLFNBQVIsQ0FBRCxHQUFzQkEsUyxFQUN0QkYsU0FBQSxDLGdCQUFBLEVBQU9DLFNBQVAsQyxVQUlMRCxTQUFBLEMsTUFBQSxFLFdBQUEsQyxFQUVYLElBQUlJLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLFdBQUEsRSxHQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLFdBQUEsRSxHQUFYLEUsWUFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZUFBQSxFLEdBQVgsRSxnQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxJQUFYLEUsY0FDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxJQUFYLEUsa0JBTkosQ0FPR0QsU0FBQSxFQUFlLENBQUFBLFNBQUEsQ0FBYSxFQUFiLENBUGxCLEdBU0EsU0FBU0UsU0FBVCxDQUF1QkMsU0FBdkIsQywyQkFDSSxPQUFRQSxTQUFSLEVBQ0ksSSxXQUFBLENBQ0ksT0FBT2pDLFNBQVAsQ0FDSixJLGFBQUEsQ0FDSSxPQUFPRyxTQUFQLENBQ0osSSxjQUFBLENBQ0ksT0FBT0QsU0FBUCxDQUNKLEssZUFBQSxDQUNJLE9BQU9FLFNBQVAsQ0FDSixLLGVBQUEsQ0FDSSxPQUFPQyxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9DLFNBQVAsQ0FaUixDLENBZ0JKLE1BQU00QixTQUFBLENBQVdDLFNBQUQsRSwyQkFDWixPQUFRQSxTQUFBLEMsZ0JBQUEsQ0FBUixFQUNJLEksUUFBQSxDLEdBQ1FBLFNBQUEsQyxnQkFBQSxJQUE4Qm5DLFMsS0FDOUJtQyxTQUFBLEMsZUFBQSxJQUE2QmxDLFNBQTdCLEVBQTJDa0MsU0FBQSxDLGlCQUFBLEksc0JBQ3BDLEMsTUFBRSxDLGdCQUFGLEMsT0FBcUIsQyxlQUFyQixDLENBRVgsTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQTJCLEMsZ0JBQTNCLENBQVAsQ0FDSixLLGVBQUEsQyxHQUNRQSxTQUFBLEMsZ0JBQUEsSUFBOEJqQyxTLE9BQ3ZCLEMsTUFBRSxDLGFBQUYsQyxPQUF1QixDLGdCQUF2QixDLGFBRUZpQyxTQUFBLEMsZ0JBQUEsSUFBOEJoQyxTLENBQzVCLEMsTUFBRSxDLGVBQUYsQyxPQUF1QixDLGVBQXZCLEMsQ0FHQSxDLE1BQUUsQyxlQUFGLEMsT0FBdUIsQyxXQUF2QixDLENBRWYsSyxnQkFBQSxDQUNJLE1BQU8sQyxNQUFFLEMsUUFBRixDLE9BQWtCLEMsZ0JBQWxCLENBQVAsQ0FDSixJLFlBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBMkIsQyxlQUEzQixDQUFQLENBQ0osSSxjQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxZQUFGLEMsT0FBc0IsQyxlQUF0QixDQUFQLENBQ0osSSxVQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxlQUFGLEMsT0FBeUIsQyxXQUF6QixDQUFQLENBeEJSLEMsTUEwQk8sQyxNQUFFLEMsZUFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsRUEzQlgsQ0E4Qk1pQyxTQUFBLENBQVMsQ0FBQ0MsU0FBRCxDQUFLQyxTQUFMLENBQWVDLFNBQWYsR0FBOEJoRSxTQUFBLENBQVUsSyxHQUFWLENBQWtCLENBQUM4RCxTQUFELENBQUtDLFNBQUwsQ0FBZUMsU0FBZixDQUFsQixDQUE4QyxLLEdBQTlDLENBQXNELFVBQVcsQ0FBRUMsWUFBQSxDQUFBQyxTQUFGLENBQWdCQyxRQUFBLENBQUFDLFNBQWhCLENBQTBCQyxPQUFBLENBQUFDLFNBQTFCLENBQVgsQ0FBZ0RDLFNBQWhELENBQXdEQyxTQUF4RCxDLDJCQUN6RkMsU0FBQSxDQUFVSCxTLGtCQUNWSSxTQUFBLENBQVNELFMsa0JBQ1RFLFNBQUEsQ0FBb0JyQixNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQmtCLFNBQWxCLENBQWQsQ0FBMkMsQyxRQUFFLENBQUFELFNBQUYsQyxZQUFVLEMsSUFBVixDQUEzQyxDLENBQ3BCSyxTQUFBLENBQU8sTUFBTUMsS0FBQSxDQUFNSCxTQUFOLENBQVcsQyxRQUMxQixDLE1BRDBCLEMsTUFFMUIsQ0FBTUksSUFBQSxDLGdCQUFBLEVBQWUsQyxjQUNqQixDQUFBWixTQURpQixDLFVBRWpCLENBQUFFLFNBRmlCLEMsbUJBR2pCLENBQUFPLFNBSGlCLENBQWYsQ0FGb0IsQyxTQU8xQixDQUFTLEMsY0FBRSxDLGdCQUFGLENBUGlCLENBQVgsQyxJQVNmQyxTQUFBLEMsUUFBQSxJLFlBQ0FHLE9BQUEsQyxlQUFBLEUsZ0JBQUEsQ0FBMENILFNBQUEsQyxRQUFBLENBQTFDLENBQXVEQSxTQUFBLEMsZ0JBQUEsQ0FBdkQsQyxDQUNPLEMsWUFBRSxDQUFZLEVBQWQsQyxDQUdYLE1BQU1JLFNBQUEsQ0FBVyxNQUFNSixTQUFBLEMsZ0JBQUEsR0FBdkIsQ0FDTUssU0FBQSxDQUFhRCxTQUFBLEMsY0FBQSxFLGdCQUFBLEdBQW9DLEVBRHZELEMsTUFFTyxDLFlBQUUsQ0FBQUMsU0FBRixDLEVBcEJrQyxDQTlCN0MsQ0FxRE1DLFNBQUEsQ0FBWSxDLGlCQUNkLENBQWlCekIsU0FBQSxDLGVBQUEsQ0FESCxDLGlCQUVkLEMsSUFGYyxDLGlCQUdkLENBQWlCekIsU0FBQSxDLGdCQUFBLENBSEgsQyxlQUlkLENBQWVFLFNBQUEsQyxlQUFBLEVBQXFCQSxTQUFBLEMsZUFBQSxDQUFyQixDQUF3Q0EsU0FBQSxDLGdCQUFBLENBSnpDLEMsWUFVZCxDLElBVmMsQ0FyRGxCLENBaUVNaUQsU0FBQSxDQUFZLEMsaUJBQ2QsQ0FBaUIxQixTQUFBLEMsZ0JBQUEsQ0FESCxDLGlCQUVkLEMsSUFGYyxDLGlCQUdkLENBQWlCekIsU0FBQSxDLFNBQUEsQ0FISCxDLGVBSWQsQ0FBZUUsU0FBQSxDLGVBQUEsRUFBcUJBLFNBQUEsQyxRQUFBLENBQXJCLENBQXdDQSxTQUFBLEMsUUFBQSxDQUp6QyxDLFlBVWQsQyxJQVZjLENBakVsQixDQTZFTWtELFNBQUEsQ0FBZSxDQUFDQyxTQUFELENBQUtDLFNBQUwsR0FBWXRGLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsQ0FBQ3FGLFNBQUQsQ0FBS0MsU0FBTCxDQUFsQixDQUE0QixLLEdBQTVCLENBQW9DLFVBQVcsQ0FBRXJCLFlBQUEsQ0FBQXNCLFNBQUYsQ0FBZ0JwQixRQUFBLENBQUFxQixTQUFoQixDQUEwQm5CLE9BQUEsQ0FBQW9CLFNBQTFCLENBQVgsQ0FBZ0QsQ0FBRUMsTUFBQSxDQUFBQyxTQUFGLENBQVVDLFVBQUEsQ0FBQUMsU0FBVixDQUFzQkMsTUFBQSxDQUFBQyxTQUF0QixDQUFoRCxDLDJCQUMzREMsU0FBQSxDQUFVUCxTLG9CQUNWUSxTQUFBLENBQVNELFMsa0JBQ1RFLFNBQUEsQ0FBTyxNQUFNckIsS0FBQSxDQUFNb0IsU0FBTixDQUFXLEMsUUFDMUIsQyxlQUQwQixDLE1BRTFCLENBQU1uQixJQUFBLEMsZ0JBQUEsRUFBZSxDLGNBQ2pCLENBQUFTLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBRyxTQUhpQixDLFlBSWpCLENBQUFFLFNBSmlCLEMsUUFLakIsQ0FBQUUsU0FMaUIsQ0FBZixDQUZvQixDLFNBUzFCLENBQVMsQyxjQUFFLEMsa0JBQUYsQ0FUaUIsQ0FBWCxDLElBV2ZHLFNBQUEsQyxnQkFBQSxJLFlBQ08sSSxDQUVYLE1BQU1DLFNBQUEsQ0FBUSxNQUFNRCxTQUFBLEMsTUFBQSxHQUFwQixDLE9BQ09DLFNBQUEsQyxnQkFBQSxDLEVBbEJzQixDQTdFakMsQ0FpR01DLFNBQUEsQ0FBaUIsQ0FBQ0MsU0FBRCxDQUFLQyxRQUFMLENBQXNCQyxTQUF0QixHQUFrQ3ZHLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsQ0FBQ3FHLFNBQUQsQ0FBS0MsUUFBTCxDQUFzQkMsU0FBdEIsQ0FBbEIsQ0FBa0QsSyxHQUFsRCxDQUEwRCxVQUFXLENBQUV0QyxZQUFBLENBQUF1QyxTQUFGLENBQWdCckMsUUFBQSxDQUFBc0MsU0FBaEIsQ0FBMEJwQyxPQUFBLENBQUFxQyxTQUExQixDQUFYLENBQWdEQyxTQUFoRCxDQUErREMsU0FBL0QsQywyQkFDekdDLFNBQUEsQ0FBVUgsUyxrQkFDVkksU0FBQSxDQUFTRCxTLGtCQUNURSxTQUFBLENBQVNKLFNBQUEsQyxlQUFBLEcsQ0FDVEssU0FBQSxDQUFPLE1BQU1uQyxLQUFBLENBQU1pQyxTQUFOLENBQVcsQyxRQUMxQixDLGVBRDBCLEMsTUFFMUIsQ0FBTWhDLElBQUEsQyxXQUFBLEVBQWUsQyxjQUNqQixDQUFBMEIsU0FEaUIsQyxVQUVqQixDQUFBQyxTQUZpQixDLFFBR2pCLENBQUFNLFNBSGlCLENBQWYsQ0FGb0IsQyxTQU8xQixDQUFTLEMsY0FBRSxDLGtCQUFGLENBUGlCLENBQVgsQyxDQVNiRSxTQUFBLENBQWtCLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxHLDJCQUNwQlAsU0FBQSxDLGdCQUFBLEVBQVdNLFNBQVgsRSxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRUFBb0RDLFNBQXBELEMsQ0FDQVAsU0FBQSxDLGdCQUFBLEcsQ0FDQVEsVUFBQSxDQUFXLEksMkJBQ1BSLFNBQUEsQyxnQkFBQSxFQUFrQk8sU0FBbEIsQyxDQUNBUCxTQUFBLEMsZ0JBQUEsRyxFQUZKLEMsS0FBQSxDLEdBS0VTLFNBQUEsQ0FBUSxNQUFNTCxTQUFBLEMsZ0JBQUEsRyxDQUNoQkEsU0FBQSxDLGdCQUFBLEksS0FFQUMsU0FBQSxDLGdCQUFnQixDQUFnQkYsU0FBaEMsQyxTQUFBLEMsQ0FHSU0sU0FBQSxDLGdCQUFBLEUsZUFBQSxFQUFzQixNQUF0QixDLEVBRUFWLFNBQUEsQyxlQUFBLEVBQWtCVSxTQUFBLEMsZUFBQSxDQUFsQixDLENBQ0FWLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDQU0sU0FBQSxDLGdCQUFBLEMsSUFBQSxDLEdBR0FOLFNBQUEsQyxLQUFBLEUsR0FBcUJJLFNBQXJCLEMsQ0FDQUUsU0FBQSxDQUFtQkksU0FBQSxDLGdCQUFBLEMsUUFBbUJMLFNBQUEsQyxZQUFBLENBQXRDLEMsZ0JBQUEsQyxHQW5DNkMsQ0FqR3pELENBd0lBLFNBQVNNLFNBQVQsQ0FBdUJDLFNBQXZCLENBQThCQyxTQUE5QixDLFFBQ1d4SCxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0J5SCxTQUFBLENBQVNGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNN0QsU0FBQSxDQUFPMkQsU0FBUCxDQUFhQyxTQUFiLENBQXFCdkMsU0FBckIsQyxDQUN0QnlDLFNBQUEsQ0FBZ0IsTUFBTTlELFNBQUEsQ0FBTzJELFNBQVAsQ0FBYUMsU0FBYixDQUFxQnRDLFNBQXJCLEMsT0FDckIsQyxZQUNILENBQVksQ0FBQyxHQUFHdUMsU0FBQSxDLGdCQUFBLENBQUosQ0FBOEIsR0FBR0MsU0FBQSxDLFlBQUEsQ0FBakMsQ0FEVCxDLEVBSkosQyxFQVNYLE1BQU1DLFNBQUEsQ0FBYSxDLGlCQUNmLENBQWlCbkUsU0FBQSxDLGVBQUEsQ0FERixDLGlCQUVmLEMsSUFGZSxDLGlCQUdmLENBQWlCekIsU0FBQSxDLGdCQUFBLENBSEYsQyxlQUlmLENBQWVFLFNBQUEsQyxnQkFBQSxFQUEwQkEsU0FBQSxDLGdCQUFBLENBQTFCLENBQWlEQSxTQUFBLEMsZ0JBQUEsQ0FBakQsQ0FBc0VBLFNBQUEsQyxnQkFBQSxDQUp0RSxDLFlBS2YsQyxJQUxlLENBQW5CLENBT0EsU0FBUzJGLFNBQVQsQ0FBdUJDLFNBQXZCLENBQThCQyxTQUE5QixDLFFBQ1cvSCxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0JnSSxTQUFBLENBQVNGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNcEUsU0FBQSxDQUFPa0UsU0FBUCxDQUFhQyxTQUFiLENBQXFCSixTQUFyQixDLFFBQ3JCSyxTLEVBSEosQyxFQU1YLE1BQU1DLFNBQUEsQ0FBZUMsU0FBRCxFLDJCQUNoQixJQUFJQyxTQUFKLENBQVFDLFNBQVIsQ0FBWUMsU0FBWixDQUFnQkMsU0FBaEIsQyxHQUNJLENBQUNKLFNBQUQsRUFBYyxDQUFDQSxTQUFBLEMsZ0JBQUEsQyxFQUNmLE1BQU1LLFNBQUEsQ0FBV0MsQ0FBQSxDLGdCQUFBLENBQWpCLEMsT0FDT0QsUyxFQUVYLE1BQU1FLFNBQUEsQ0FBSVAsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBVixDQUNNUSxTQUFBLENBQUssQ0FBQyxDQUFBUCxTQUFBLENBQUtELFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBaUMsSUFBakMsRUFBeUNDLFNBQUEsR0FBTyxLLEdBQWhELENBQXlELEssR0FBekQsQ0FBa0VBLFNBQUEsQyxnQkFBQSxDQUFsRSxDQUFELEVBQWdGLENBQUMsQ0FBQUMsU0FBQSxDQUFLRixTQUFBLEMsZUFBQSxDQUFMLENBQUQsR0FBZ0MsSUFBaEMsRUFBd0NFLFNBQUEsR0FBTyxLLEdBQS9DLENBQXdELEssR0FBeEQsQ0FBaUVBLFNBQUEsQyxlQUFBLENBQWpFLENBQWhGLEVBQTZKRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUR2SyxDQUVNLENBQUVTLElBQUEsQ0FBQUMsU0FBRixDQUFRQyxLQUFBLENBQUFDLFNBQVIsRUFBa0JwRixTQUFBLENBQVF3RSxTQUFSLENBRnhCLENBR01hLFNBQUEsQyxJQUFZYixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLFNBQWdDLENBQUMsQ0FBQyxDQUFBRyxTQUFBLENBQUtILFNBQUEsQyxlQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q0csU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGVBQUEsQ0FBakUsQ0FBRCxFQUErRSxDQUFDLENBQUFDLFNBQUEsQ0FBS0osU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0ksU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLE1BQUEsQ0FBbEUsQ0FBL0UsRSxFQUFBLENBSGxELENBSU1VLFNBQUEsQ0FBV1IsQ0FBQSxDLGlCQUFjTixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLGtCQUErRGEsUywyQkFBc0JILFMsa0JBQXNCRSxTLGtCQUFnQkosUyxpQkFBekksQ0FKakIsQyxPQUtBTSxTQUFBLEMsZ0JBQUEsRSxZQUFBLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBdUJQLFNBQXZCLEMsQ0FDQU8sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBMkJkLFNBQTNCLEMsQ0FDT2MsUyxFQWRYLENBZ0JNQyxTQUFBLENBQWMsQ0FBQ0MsU0FBRCxDQUFTQyxTQUFULEcsUUFDVEEsU0FBQSxDLE1BQUEsRSxjQUFzQkQsUyxRQUF0QixDLEVBakJYLENBbUJNRSxTQUFBLENBQWUsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEcsMkJBQ2pCRCxTQUFBLEMsZUFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FFQUMsU0FBQSxDLGdCQUFBLEUsa0JBQUEsRSxVQUFBLEUsZ0JBQUEsQyxFQXRCSixDQXdCTUMsU0FBQSxDQUFhLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxDQUFtQkMsU0FBbkIsR0FBNkIzSixTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUU5RSxJQUFJNEosU0FBQSxDQUFXRCxTQUFBLEMsZUFBQSxFLGVBQUEsQ0FBZixDQUNBRCxTQUFBLEMsZUFBQSxFLGdCQUFBLEdBQW9DLEVBQXBDLENBQ0EsTUFBTUcsU0FBQSxDQUFVSCxTQUFBLEMsZ0JBQUEsR0FBc0IsRUFBdEMsQyxHQUNJRyxTQUFBLEMsZUFBQSxJLElBQ0EsT0FFSixVQUFXQyxTQUFYLElBQWdCRCxTQUFoQixDLENBQ1FELFNBQUEsQyxVQUFBLEUsZ0JBQUEsQyxFQUVBLE9BQU1HLFNBQUEsQ0FBVU4sU0FBVixDQUFnQkcsU0FBaEIsQ0FBTixDLENBRUosTUFBTUksU0FBQSxDQUFXZCxTQUFBLENBQVlZLFNBQVosQ0FBZUYsU0FBZixDQUFqQixDLEdBQ0lJLFNBQUEsQyxlQUFBLEksSUFDQSxPQUVKSixTQUFBLENBQVdJLFMsRUFFZlgsU0FBQSxDQUFhSSxTQUFiLENBQW1CRyxTQUFuQixDLENBQ0FLLFNBQUEsQ0FBV1IsU0FBQSxDLGdCQUFBLENBQVgsQ0FBMkJHLFNBQTNCLEMsRUFwQjRDLENBeEJoRCxDQThDQSxTQUFTSyxTQUFULENBQW9CQyxTQUFwQixDQUFnQ0MsU0FBaEMsQywyQkFFVUMsU0FBQSxDQUFRRCxTQUFBLEMsZUFBQSxJLGdCQUFBLEMsQ0FFUkUsU0FBQSxDQUFxQkgsU0FBQSxDLGVBQUEsRyxJQUN2QkcsU0FBQSxFQUFzQkMsUyxDQUN0QixPQUlKLE1BQU1DLFNBQUEsQ0FBV0YsU0FBQSxDQUFxQkQsU0FBckIsQ0FBNkJGLFNBQUEsQyxnQkFBQSxJLEdBQTdCLENBQXVEQyxTQUFBLEMsZ0JBQUEsSSxHQUF4RSxDQUVBRCxTQUFBLEMsZ0JBQUEsRUFBbUIsQyxXQUNmLENBQVdLLFNBREksQ0FBbkIsQyxLQUFBLEMsRUFJSixNQUFNQyxTQUFBLENBQWlCLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxHQUFzQjFLLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsSyxHQUFsQixDQUEwQixLLEdBQTFCLENBQWtDLFcsMkJBQ3JFMkssU0FBQSxDQUFTRixTQUFBLEMsZUFBQSxFLEtBQUEsRyxDQUNURyxTQUFBLENBQVUsQyxRQUNaLENBQUFELFNBRFksQyxZQUVaLENBQVlELFNBQUEsQyxnQkFBQSxDQUZBLEMsUUFHWixDQUFRRCxTQUFBLEMsU0FBQSxFLGdCQUFBLEcsR0FISSxDLENBS1ZJLFNBQUEsQ0FBT0MsU0FBQSxDQUFlTCxTQUFmLEMsQ0FDUE0sU0FBQSxDQUFhLE1BQU0zRixTQUFBLENBQWF5RixTQUFiLENBQW1CRCxTQUFuQixDLElBQ3JCLENBQUNHLFMsQ0FDRCxPQUVKLE1BQU12QixTQUFBLENBQVdpQixTQUFYLENBQWlCTSxTQUFqQixDQUE2Qk4sU0FBQSxDLGVBQUEsQ0FBN0IsQyxFQVptQyxDQUE3QyxDQWNBLFNBQVNPLFNBQVQsQ0FBMkJDLFNBQTNCLENBQWlDQyxTQUFqQyxDQUF3Q0MsU0FBeEMsQ0FBbURDLFNBQW5ELEMsUUFDV3BMLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLDRCQUMvQmtMLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQyxFQUNBbkcsT0FBQSxDLGVBQUEsRSxnQkFBQSxFQUNBLE8sSUFFQW1HLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQyxFQUNBbkcsT0FBQSxDLGVBQUEsRSxnQkFBQSxFQUNBLE8sQ0FFSm1HLFNBQUEsQyxVQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQURBLENBRUEsRyxDQUNJQSxTQUFBLEMsZUFBQSxFLElBQUEsRSxPQUFBLElBQ0EsTUFBTSxDQUFFRyxVQUFBLENBQUFDLFNBQUYsRUFBaUIsTUFBTUgsU0FBQSxDQUFVRCxTQUFWLENBQWlCRSxTQUFqQixDQUE3QixDQUNBLFVBQVdHLFNBQVgsSUFBd0JELFNBQXhCLEMsSUFDUUwsU0FBQSxDLGVBQUEsRSxnQkFBQSxHQUF1QixDQUFDQSxTQUFBLEMsU0FBQSxFLGdCQUFBLEVBQW9CTSxTQUFwQixDLENBQ3hCLFNBRUosTUFBTUMsU0FBQSxDQUFXdEQsU0FBQSxDQUFZcUQsU0FBWixDQUFqQixDQUNBTCxTQUFBLEMsZUFBQSxFLElBQUEsRSxRQUFBLEVBQTRCTSxTQUE1QixDLEVBRUpOLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUFFSixNQUFPTyxTQUFQLEMsQ0FDSVAsU0FBQSxDLGVBQUEsRSxJQUFBLEUsZ0JBQUEsRSxnQkFBeUNPLFNBQUEsQyxTQUFBLEMsaUJBQXpDLEMsQ0FDQTFHLE9BQUEsQyxlQUFBLEUsZ0JBQUEsQ0FBbUIwRyxTQUFuQixDLEVBRUpQLFNBQUEsQyxnQkFBQSxFLFVBQUEsRSxnQkFBQSxHLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUE1QkcsQyxFQStCWCxTQUFTSixTQUFULENBQXdCWSxTQUF4QixDLDJCQUNVQyxTQUFBLENBQU8sQyxTQUNULENBQVNELFNBQUEsQyxlQUFBLEUsZ0JBQUEsQ0FEQSxDLGNBRVQsQ0FBYyxPQUFPQSxTQUFBLEMsZUFBQSxFLGdCQUFBLENBQVAsRyxVQUFBLENBQWtEQSxTQUFBLEMsZUFBQSxFLGdCQUFBLEdBQWxELENBQWdGQSxTQUFBLEMsZUFBQSxFLGNBQUEsQ0FGckYsQyxVQUdULENBQVUsT0FBT0EsU0FBQSxDLGVBQUEsRSxnQkFBQSxDQUFQLEcsZUFBQSxDQUE4Q0EsU0FBQSxDLGVBQUEsRSxnQkFBQSxHQUE5QyxDQUF3RUEsU0FBQSxDLGVBQUEsRSxVQUFBLENBSHpFLEMsUUFLTkMsUyxFQUVYLFNBQVM1QixTQUFULENBQW1CNkIsU0FBbkIsQ0FBeUJDLFNBQXpCLEMsUUFDVzdMLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLDRCQUMvQjZMLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQyxFQUNBQSxTQUFBLEMsYUFBQSxFLGdCQUFBLEUsVUFBQSxFLGdCQUFBLEMsQ0FDQUEsU0FBQSxDLFVBQUEsRSxJQUFBLEUsZUFBQSxHQURBLENBRUEsTyxDQUdKLE1BQU1DLFNBQUEsQ0FBT2hCLFNBQUEsQ0FBZWMsU0FBZixDQUFiLENBQ01HLFNBQUEsQ0FBSSxDQUFDSCxTQUFBLEMsZUFBQSxFLGdCQUFBLENBQUQsQ0FBMEJ0RSxTQUExQixDQUEwQ08sU0FEcEQsQ0FFQSxHLENBQ0ksTUFBTW1ELFNBQUEsQ0FBa0JZLFNBQWxCLENBQXdCQyxTQUF4QixDQUE2QkUsU0FBN0IsQ0FBZ0NELFNBQWhDLEMsQ0FFTkQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxVQUFBLEUsVUFBQSxDLEVBRUosTUFBT0csU0FBUCxDLENBQ0lILFNBQUEsQyxnQkFBQSxFLFlBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDQTlHLE9BQUEsQyxlQUFBLEUsZ0JBQUEsQ0FBcUJpSCxTQUFyQixDLEdBaEJELEMsRUFvQlgsTUFBTUMsU0FBQSxDQUEyQixJLDJCQVE3QnhELENBQUEsQyxlQUFBLEUsZ0JBQUEsQ0FBaUMsQyxTQUU3QixDQUFTLEMsY0FDTCxDQUFjLEtBQU8sQyxVQUFFLEMsZ0JBQUYsQ0FBUCxDQURULEMsVUFFTCxDQUFVLElBQU02QixTQUZYLEMsWUFHTCxDQUFZLEtBQU8sQyxZQUNmLENBQVksQyxnQkFBRSxDLEdBQUYsQyxNQUFxQixDLGdCQUFyQixDQURHLEMsV0FFZixDLGVBRmUsQyxRQUdmLEMsZ0JBSGUsQyxhQUlmLENBQWEsQyxNQUFFLEMsZ0JBQUYsQ0FKRSxDLGdCQUtmLENBQWdCNUksU0FMRCxDQUFQLENBSFAsQyxRQVVMLENBQVEsSSxJQVZILEMsU0FXTCxDLEVBWEssQyxXQVlMLEMsR0FaSyxDQUZvQixDLG1CQWdCN0IsRSxRQUNXMUIsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCa00sU0FBQSxDQUFPLEksSUFDVCxDQUFDQSxTQUFBLEMsY0FBQSxDLEVBQ0QsTUFBTUMsU0FBQSxDQUFJLE9BQU9ELFNBQUEsQyxlQUFBLEUsZ0JBQUEsQ0FBUCxHLFVBQUEsQ0FBZ0RBLFNBQUEsQyxTQUFBLEUsWUFBQSxFLE1BQUEsRUFBNkJBLFNBQTdCLENBQWhELENBQXFGQSxTQUFBLEMsZUFBQSxFLFlBQUEsQ0FBL0YsQyxHQUNJQyxTQUFBLFlBQWEzTCxPLEVBQ2IsTUFBTTRMLFNBQUEsQ0FBTyxNQUFNRCxTQUFuQixDQUNBRCxTQUFBLEMsZ0JBQUEsRUFBb0JFLFMsT0FHcEJGLFNBQUEsQyxnQkFBQSxFQUFvQkMsUyxTQUdyQkQsU0FBQSxDLGdCQUFBLEMsRUFaSixDLEVBakJrQixDLE9BZ0M3QixFLFFBQ1dsTSxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0JxTSxTQUFBLENBQU8sSSxDQUVQQyxTQUFBLENBQUlELFMsQ0FDVkMsU0FBQSxDLGNBQUEsRUFBaUJoQyxTLENBQ2pCK0IsU0FBQSxDLE9BQUEsRSxPQUFBLEdBREEsQ0FFQSxNQUFNRSxTQUFBLENBQWEsTUFBTSxLLG1CQUFBLEdBQXpCLENBQ01DLFNBQUEsQ0FBV3RFLFNBQUEsQ0FBWXFFLFNBQVosQ0FEakIsQ0FFQUYsU0FBQSxDLE9BQUEsRSxnQkFBQSxFQUFrQkcsU0FBbEIsQyxDQUNBSCxTQUFBLEMsZUFBQSxFQUFxQkUsUyxFQVRsQixDLEVBakNrQixDLFFBNkM3QixFLDJCQUNVRSxTQUFBLENBQU8sSSxDQUVQQyxTQUFBLENBQU81QixTQUFBLENBQWUyQixTQUFmLEMsQ0FDYnJHLFNBQUEsQ0FBZXNHLFNBQWYsQ0FBcUJELFNBQUEsQyxlQUFBLENBQXJCLENBQWtDQSxTQUFBLEMsT0FBQSxDQUFsQyxDLEVBakR5QixDLFNBbUQ3QixFLDJCQUNVRSxTQUFBLENBQU8sSSxDQUNiQSxTQUFBLEMsZUFBQSxFQUFjLEssZUFBQSxDLENBQ2RBLFNBQUEsQyxRQUFBLEVBQWNsRSxDQUFBLEMsUUFBQSxDLENBQ2RrRSxTQUFBLEMsUUFBQSxFLFVBQUEsRSxnQkFBQSxDLENBQ0EsSyxlQUFBLEUsZUFBQSxFQUF5QkEsU0FBQSxDLGdCQUFBLENBQXpCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQW1CbEUsQ0FBQSxDLGdCQUFBLEUsVUFBQSxFLGdCQUFBLEMsQ0FDbkJrRSxTQUFBLEMsUUFBQSxFLFFBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxhQUFBLEUsUUFBQSxFQUF3QkEsU0FBQSxDLGVBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBc0JsRSxDQUFBLEMsZUFBQSxDLENBQ3RCa0UsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBd0JBLFNBQUEsQyxnQkFBQSxDQUF4QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxlQUFBLENBQWdDLFUsUUFDckIzTSxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDbkMsSUFBSTRNLFNBQUosQ0FDQSxJQUFJQyxTQUFBLEMsR0FBSixDQUNJQyxTQURKLENBRUksQ0FBQ0gsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEMsR0FDREEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUVBRyxTQUFBLENBQWEsTUFBTUgsU0FBQSxDLGVBQUEsRyxDQUNmLENBQUFHLFNBQUEsR0FBZUgsU0FBQSxDLGVBQUEsQ0FBZixFQUFzQyxDQUFDLENBQUFDLFNBQUEsQ0FBS0QsU0FBQSxDLGVBQUEsQ0FBTCxDQUFELEdBQThCLElBQTlCLEVBQXNDQyxTQUFBLEdBQU8sSyxHQUE3QyxDQUFzRCxLLEdBQXRELENBQStEQSxTQUFBLEMsUUFBQSxDQUEvRCxDQUFELEdBQStFRSxTQUFBLEMsUUFBQSxDQUFwSCxDLEVBQ0EsT0FBTUgsU0FBQSxDLGVBQUEsR0FBTixDLENBRUpFLFNBQUEsQyxNQUVKRixTQUFBLEMsZ0JBQUEsRSxRQUFBLEcsQ0FDQUUsU0FBQSxFQUF5QixPQUFNckMsU0FBQSxDQUFlbUMsU0FBZixDQUFxQkcsU0FBckIsQ0FBTixDLEVBZHRCLEMsRUFEWCxDLENBa0JBSCxTQUFBLEMsZ0JBQUEsRUFBa0JsRSxDQUFBLEMsZUFBQSxDLENBQ2xCa0UsU0FBQSxDLGdCQUFBLEUsUUFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLFlBQUEsRSxJQUFBLEUsZUFBQSxDQUE0QixJLDJCQUN4QixLLGdCQUFBLEcsRUFESixDQTdCQSxDQWdDSSxDQUFDQSxTQUFBLEMsUUFBQSxFLGVBQUEsRSxhQUFBLEMsRUFDREEsU0FBQSxDLGVBQUEsRSxlQUFBLEUsZ0JBQUEsQyxnQkFBQSxDLENBRUpBLFNBQUEsQyxnQkFBQSxFQUFhbEUsQ0FBQSxDLGdCQUFBLEMsQ0FDYmtFLFNBQUEsQyxnQkFBQSxFLE1BQUEsRyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBaUJsRSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLG1CQUFBLEUsTUFBQSxHLENBQ2pCa0UsU0FBQSxDLFFBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLGdCQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxXQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGVBQUEsRUFBYWxFLENBQUEsQyxlQUFBLEUsZUFBQSxFQUE4Q2tFLFNBQUEsQyxXQUFBLENBQTlDLEMsQ0FDYixLLGVBQUEsR0FOQSxDQU9BLE1BQU1JLFNBQUEsQ0FBZSxDQUFDQyxTQUFELENBQU1DLFNBQU4sRywyQkFDWEMsU0FBQSxDLEtBQ0FDLFNBQUEsQyxLQUNBQyxTQUFBLENBQWFKLFNBQUEsQyxRQUFBLEcsQ0FDYkssU0FBQSxDQUFJSixTLElBQ05JLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsZUFBQSxDQUFYLEVBQ0FDLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsZUFBQSxFQUFrQkYsU0FEN0IsRUFFQUcsU0FBQSxDLE9BQUEsR0FBV0QsU0FBQSxDLGdCQUFBLENBRlgsRUFHQUMsU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxFQUFpQkQsUyx1QkFScEMsQ0FhTUcsU0FBQSxDQUFtQkMsU0FBRCxFQUFTdk4sU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcsOEJBQ3pEdU4sU0FBQSxDLGVBQUEsRSxnQkFBQSxDLENBQ0F4RCxTQUFBLENBQVU0QyxTQUFWLENBQWdCWSxTQUFoQixDLFNBRUtBLFNBQUEsQyxlQUFBLEUsZ0JBQUEsQyxDQUVMQSxTQUFBLEMsZUFBQSxFLElBQUEsRSxlQUFBLEcsQ0FFQUEsU0FBQSxDLGVBQUEsRSx3QkFBQSxDLFNBRUtBLFNBQUEsQyxlQUFBLEUsSUFBQSxFLGVBQUEsSSxlQUFBLEUsSUFDTEEsU0FBQSxDLGVBQUEsRSxJQUFBLEUsZUFBQSxHLENBRUFBLFNBQUEsQyxlQUFBLEUsZUFBQSxDLFNBYnlCLENBYmpDLENBOEJBWixTQUFBLEMsZUFBQSxFLElBQUEsRSxlQUFBLEMsSUFBQSxDQUFnQyxTQUFVYSxTQUFWLEMsMkJBQzVCLElBQUlDLFNBQUosQ0FBUUMsU0FBUixDQUNBRixTQUFBLEMsZUFBQSxJQUNBLElBQUlHLFNBQUEsQ0FBTWxGLENBQUEsQ0FBRSxJQUFGLENBQVYsQyxHQUNJc0UsU0FBQSxDQUFhWSxTQUFiLENBQWtCSCxTQUFsQixDLENBQ0FGLFNBQUEsQ0FBZ0JLLFNBQWhCLEMsTUFHQSxNQUFNQyxTQUFBLENBQVFELFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQWQsQ0FDTUUsU0FBQSxDQUFZRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQURsQixDLEdBRUloQixTQUFBLEMsZUFBQSxFLGVBQUEsR0FBNkIsQ0FBQ0EsU0FBQSxDLGVBQUEsRSxlQUFBLEVBQTBCa0IsU0FBMUIsQyxDQUM5QixPQUVKbEIsU0FBQSxDLGVBQUEsRSxNQUFBLEUsV0FBQSxDQUE4QmtCLFNBQTlCLEVBQ0EsTUFBTUMsU0FBQSxDQUFlLENBQUMsQ0FBQUwsU0FBQSxDQUFLSSxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDSixTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsZ0JBQUEsQ0FBbEUsQ0FBRCxFQUFnRixDQUFDLENBQUFDLFNBQUEsQ0FBS0csU0FBQSxDLFlBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDSCxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsZUFBQSxDQUFqRSxDQUFoRixFQUE2SkcsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBakwsQ0FDTUUsU0FBQSxDLElBQVlELFMsTUFBZ0JGLFMsSUFEbEMsQ0FFQWpCLFNBQUEsQyxRQUFBLEUsZUFBQSxFQUFnQm9CLFNBQWhCLEMsQ0FDQXBCLFNBQUEsQyxlQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsR0FsQlIsQyxDQXFCQUEsU0FBQSxDLE9BQUEsRSxJQUFBLEUsZUFBQSxDLElBQUEsQ0FBNkIsU0FBVXFCLFNBQVYsQyxDQUN6QkEsU0FBQSxDLGlCQUFBLElBQ0EsSUFBSUMsU0FBQSxDQUFNeEYsQ0FBQSxDQUFFLElBQUYsQ0FBVixDQUNJc0UsU0FBQSxDQUFha0IsU0FBYixDQUFrQkQsU0FBbEIsQyxFQUNBVixTQUFBLENBQWdCVyxTQUFoQixDLENBRUo1RSxTQUFBLENBQWFzRCxTQUFiLENBQW1Cc0IsU0FBbkIsQyxFQU5KLEMsQ0FRQXhGLENBQUEsQ0FBRXlGLFFBQUYsRSxJQUFBLEUsZUFBQSxDQUF3QixTQUFVQyxTQUFWLEMsMkJBRWhCLENBQUMxRixDQUFBLENBQUUwRixTQUFBLEMsUUFBQSxDQUFGLEUsU0FBQSxFQUF3QnhCLFNBQUEsQyxnQkFBQSxDQUF4QixFLFFBQUEsQyxFQUNEQSxTQUFBLEMsV0FBQSxFLGdCQUFBLEcsRUFIUixDLEVBMUp5QixDQUFqQyxDLEVBUkosQ0E0S015QixTQUFBLENBQTBCLEksMkJBQzVCM0YsQ0FBQSxDLGVBQUEsRSxxQkFBQSxDQUFnQyxDLFNBRTVCLENBQVMsQyxhQUNMLENBQWEsRUFEUixDLE9BSUwsQyxHQUpLLENBRm1CLEMsU0FRNUIsRSwyQkFDVTRGLFNBQUEsQ0FBTyxJLENBRWJBLFNBQUEsQyxlQUFBLEVBQWMsSyxlQUFBLEMsQ0FDZEEsU0FBQSxDLGdCQUFBLEVBQWM1RixDQUFBLEMsUUFBQSxDLENBQ2Q0RixTQUFBLEMsZ0JBQUEsRSxVQUFBLEUsZ0JBQUEsQyxDQUNBLEssU0FBQSxFLEdBQUEsRSxnQkFBQSxFLGdCQUFBLEVBQTJDQSxTQUFBLEMsUUFBQSxFLEdBQUEsQ0FBM0MsQ0FBMkQsSyxlQUFBLEUsR0FBQSxDQUEzRCxDLENBRUFBLFNBQUEsQyxnQkFBQSxFQUFtQjVGLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsYUFBQSxDLENBQ25CNEYsU0FBQSxDLFFBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLGdCQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGFBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGVBQUEsQ0FBeEIsQyxDQUdBQSxTQUFBLEMsZ0JBQUEsRUFBc0I1RixDQUFBLEMsZUFBQSxDLENBQ3RCNEYsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBd0JBLFNBQUEsQyxnQkFBQSxDQUF4QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxlQUFBLENBQWdDLFUsMkJBQzVCQSxTQUFBLEMsZ0JBQUEsRSxRQUFBLEcsQ0FDSUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEMsR0FFQUMsU0FBQSxFLENBQ0FELFNBQUEsQyxRQUFBLEUsZ0JBQUEsRSxlQUFBLEUsZUFBQSxFQUF3QyxVLDJCQUNwQyxJQUFJRSxTQUFBLENBQWE5RixDQUFBLENBQUUsSUFBRixFLGdCQUFBLEdBQWpCLENBQ0EsTUFBTStGLFNBQUEsQ0FBV0gsU0FBQSxDLGVBQUEsRSxlQUFBLEVBQXlCRSxTQUF6QixDQUFqQixDLEdBQ0lDLFNBQUEsR0FBYWxFLFMsQ0FDYixNQUFNLElBQUk5SSxLQUFKLEMsZUFBQSxDQUFOLENBRUMsQ0FBQTZNLFNBQUEsQyxlQUFBLEUsZ0JBQUEsRUFBcUJHLFNBQXJCLENBQUQsR0FBb0NBLFMsQ0FDcEMvRixDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsZ0JBQUEsQyxDQUdBQSxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsVUFBQSxDLEVBVlIsQyxDQWNBNEYsU0FBQSxDLGdCQUFBLEcsR0FuQlIsQyxDQXVCQUEsU0FBQSxDLGdCQUFBLEVBQWlCNUYsQ0FBQSxDLDRDQUFBLEUsZ0JBQUEsSSxhQUFBLEVBQTBELEssZUFBQSxDQUExRCxDLENBQ2pCQSxDQUFBLEMsZUFBQSxFQUFPLEssZUFBQSxFLGFBQUEsQ0FBUCxDQUFpQyxTQUFVZ0csU0FBVixDLDJCQUN2QkMsU0FBQSxDQUFVakcsQ0FBQSxDLGdCQUFFLENBQ2RnRyxTQURjLEMsT0FBQSxDLGVBQUEsQ0FJZEEsU0FKYyxDLGdCQUFGLEMsQ0FNaEJKLFNBQUEsQyxXQUFBLEUsZ0JBQUEsRUFBc0JLLFNBQXRCLEMsRUFQSixDLENBVUFMLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxlQUFBLEMsZUFBQSxDQUE2QyxVLDJCQUN6QzVGLENBQUEsQ0FBRSxJQUFGLEUsZUFBQSxFLFVBQUEsRUFDQSxNQUFNa0csU0FBQSxDQUFRbEcsQ0FBQSxDQUFFLElBQUYsRSxnQkFBQSxFLGdCQUFBLENBQWQsQ0FDSUEsQ0FBQSxDQUFFLElBQUYsRSxlQUFBLEUsZ0JBQUEsQyxDQUNBbUcsU0FBQSxDQUFPRCxTQUFQLEMsQ0FHQUUsU0FBQSxDQUFTRixTQUFULEMsQ0FFSk4sU0FBQSxDLGdCQUFBLEcsRUFUSixDLENBV0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQW1CQSxTQUFBLEMsZ0JBQUEsQ0FBbkIsQ0F6REEsQ0EwREEsTUFBTUMsU0FBQSxDQUFrQixJLDJCQUNkUSxTQUFBLENBQVEsSyxTQUFBLEUsZUFBQSxHLENBQ2RULFNBQUEsQyxlQUFBLEUsZ0JBQUEsRUFBcUIvTCxTQUFBLENBQXVCK0wsU0FBQSxDLGVBQUEsRSxhQUFBLENBQXZCLENBQWlEUyxTQUFqRCxDLEVBRnpCLENBSU1GLFNBQUEsQ0FBVUcsU0FBRCxFLDJCQUNMQyxTQUFBLENBQU1YLFNBQUEsQyxlQUFBLEUsYUFBQSxFQUF5QlUsU0FBekIsQyxJQUNSQyxTQUFBLEdBQVExRSxTLENBQ1IsTUFBTSxJQUFJOUksS0FBSixDLHdCQUFBLENBQU4sQ0FFSixLLGVBQUEsRSxnQkFBQSxHQUFzQndOLFMsRUFUMUIsQ0FXTUgsU0FBQSxDQUFZSSxTQUFELEUsMkJBQ1BDLFNBQUEsQ0FBTWIsU0FBQSxDLGVBQUEsRSxlQUFBLEVBQXlCWSxTQUF6QixDLElBQ1JDLFNBQUEsR0FBUTVFLFMsQ0FDUixNQUFNLElBQUk5SSxLQUFKLEMsZUFBQSxDQUFOLENBRUosSyxlQUFBLEUsZ0JBQUEsR0FBc0IsQ0FBQzBOLFMsQ0FDdkIsSyxlQUFBLEUsZUFBQSxFQUFpQmxNLFNBQUEsQ0FBdUJxTCxTQUFBLEMsZUFBQSxFLGVBQUEsQ0FBdkIsQ0FBaUQsSyxlQUFBLEUsT0FBQSxDQUFqRCxDQUFqQixDLEVBakJKLENBbUJBQyxTQUFBLEUsRUF4RndCLEMsYUEwRjVCLEUsMkJBQ1VhLFNBQUEsQ0FBTyxJLENBQ2IsSyxTQUFBLEUsZUFBQSxFQUFpQm5NLFNBQUEsQ0FBdUJtTSxTQUFBLEMsZUFBQSxFLGVBQUEsQ0FBdkIsQ0FBaUQsSyxlQUFBLEUsZ0JBQUEsQ0FBakQsQ0FBakIsQyxFQTVGd0IsQyxVQThGNUIsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxFQWhHd0IsQ0FBaEMsQyxFQTdLSixDQWtSTUMsU0FBQSxDQUF3QixJLDJCQUNwQkMsU0FBQSxDQUFZN0csQ0FBQSxDLGVBQUEsQyxDQUNaOEcsU0FBQSxDQUFhRCxTQUFBLEMsZUFBQSxHLENBQ2JFLFNBQUEsQ0FBVUMsR0FBQSxDLGdCQUFBLEUsTUFBQSxFQUFlRixTQUFmLEMsSUFDWixDQUFDQyxTLENBQ0QsT0FBT2xGLFNBQVAsQ0FHSixNQUFNLENBQUVuRyxRQUFBLENBQUF1TCxTQUFGLENBQVlDLFlBQUEsQ0FBQUMsU0FBWixDQUEwQkMsY0FBQSxDQUFBQyxTQUExQixDQUEwQ0MsZ0JBQUEsQ0FBQUMsU0FBMUMsQ0FBNERDLFdBQUEsQ0FBQUMsU0FBNUQsRUFBNEVWLFNBQWxGLENBQ01XLFNBQUEsQ0FBVyxDLFVBQ2IsQ0FBQVQsU0FEYSxDLGNBRWIsQ0FBQUUsU0FGYSxDLGdCQUdiLENBQUFFLFNBSGEsQyxrQkFJYixDQUFBRSxTQUphLEMsYUFLYixDQUFBRSxTQUxhLENBRGpCLEMsT0FTT0MsUyxFQW5TWCxDQXFTTUMsU0FBQSxDQUErQixJLE9BQzFCLEMsY0FDSCxDQUFjQyxTQURYLEMsRUF0U1gsQ0EwU01BLFNBQUEsQ0FBd0IsSSwyQkFDcEJDLFNBQUEsQ0FBWTdILENBQUEsQyxlQUFBLEMsQ0FDWjhILFNBQUEsQ0FBYUQsU0FBQSxDLEtBQUEsRyxDQUNiRSxTQUFBLENBQWFuQixTQUFBLEUsSUFDZixDQUFDbUIsUyxRQUNNbEcsUyxPQUVKLEMsSUFDSCxDQUFJaUcsU0FERCxDLEVBalRYLENBaVVBZCxHQUFBLEMsZ0JBQUEsRSxjQUFBLEUsZUFBQSxDQUErQyxDLFVBQzNDLEMsZUFEMkMsQyxPQUUzQyxDLGVBRjJDLEMsT0FHM0MsQyxnQkFIMkMsQyxNQUkzQyxDLGVBSjJDLEMsY0FLM0MsQyxlQUwyQyxDLFVBTTNDLENBQVUsQyxRQUNOLENBQVEsQyxPQUFFLEMsR0FBRixDQURGLEMsUUFFTixDQUFRLEMsT0FBRSxDLEdBQUYsQ0FGRixDLE1BSU4sQ0FBTSxDLE9BQUUsQyxFQUFGLENBSkEsQyxVQUtOLENBQVUsQyxPQUFFLEMsRUFBRixDLFVBQWEsQyxJQUFiLEMsTUFBNkIsQyxnQkFBN0IsQ0FMSixDLFFBT04sQ0FBUSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLEdBQWIsQ0FQRixDLGlCQVFOLENBQWlCLEMsT0FBRSxDLGVBQUYsQyxVQUFxQixDLEdBQXJCLENBUlgsQyxpQkFTTixDQUFpQixDLE9BQUUsQyxHQUFGLEMsVUFBZ0IsQyxJQUFoQixDQVRYLEMsaUJBVU4sQ0FBaUIsQyxPQUFFLEMsU0FBRixDLFVBQW9CLEMsSUFBcEIsQ0FWWCxDLGVBV04sQ0FBZSxDLE9BQUUsQyxnQkFBRixDLFVBQW1FLEMsR0FBbkUsQ0FYVCxDLFlBWU4sQ0FBWSxDLE9BQUUsQyxlQUFGLEMsVUFBOEYsQyxHQUE5RixDQVpOLENBTmlDLEMsU0FvQjNDLEMsR0FwQjJDLEMsT0FxQjNDLEUsa0NBQ1csSyxNQUFBLEcsaUJBdEJnQyxDLFlBd0IzQyxFLGtDQUNXLEssZUFBQSxFLG1CQUFBLEMsSUF6QmdDLEMsZUEyQjNDLEUsMkJBQ1VnQixTQUFBLENBQU8sSSxDQUNieEUsU0FBQSxFLENBQ0FtQyxTQUFBLEUsQ0FDQXFDLFNBQUEsQyxRQUFBLEUsR0FGQSxDQUdBLE1BQU1DLFNBQUEsQ0FBaUJqSSxDQUFBLEMsMkJBQUEsQ0FBdkIsQ0FDQWlJLFNBQUEsQyxlQUFBLEVBQTBCLEMsYUFDdEIsQ0FBYSxDLFFBQ1QsQyxHQURTLEMsVUFFVCxDLEdBRlMsQyxRQUdULEMsR0FIUyxDLFlBSVQsQyxHQUpTLEMsY0FLVCxDLElBTFMsQyxlQU1ULEMsSUFOUyxDLFVBT1QsQyxJQVBTLEMsTUFRVCxDLElBUlMsQ0FEUyxDLE9BV3RCLEMsR0FYc0IsQ0FBMUIsRUFhQSxNQUFNQyxTQUFBLENBQWNsSSxDQUFBLEMsd0JBQUEsQ0FBcEIsQ0FDQWtJLFNBQUEsQyxlQUFBLEVBQXVCLEMsYUFDbkIsQ0FBYSxDLGVBQ1QsQyxHQURTLEMsV0FFVCxDLEdBRlMsQyxXQUdULEMsR0FIUyxDLFlBSVQsQyxHQUpTLEMsYUFLVCxDLElBTFMsQyxnQkFNVCxDLElBTlMsQ0FETSxDLE9BU25CLEMsSUFUbUIsQ0FBdkIsRUFXQSxNQUFNQyxTQUFBLENBQVVuSSxDQUFBLEMsb0JBQUEsQ0FBaEIsQ0FDQW1JLFNBQUEsQyxnQkFBQSxFQUFvQnROLE1BQUEsQyxnQkFBQSxFQUFjQSxNQUFBLEMsUUFBQSxFQUFjLEVBQWQsQ0FBa0I4TSxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxjQUFFLENBQWFTLFNBQWIsQyxrQ0FDeEVBLFNBQUEsQyxnQkFBQSxJLGVBQUEsRUFBcUNBLFNBQUEsQyxnQkFBQSxJLGlCQURpQyxDQUFqRSxDQUFwQixFQUdBLE1BQU1DLFNBQUEsQ0FBcUIsQyxRQUN2QixDLE1BRHVCLEMsaUJBRXZCLEMsRUFGdUIsQyxZQUd2QixDQUFZLEMsZ0JBQUUsQyxHQUFGLEMsTUFBcUIsQyxnQkFBckIsQ0FIVyxDLGFBSXZCLENBQWEsQyxNQUFFLEMsZ0JBQUYsQ0FKVSxDLFdBS3ZCLEMsZ0JBTHVCLEMsZ0JBTXZCLEMsZ0JBTnVCLENBQTNCLENBUU1DLFNBQUEsQ0FBbUJ0SSxDQUFBLEMsNkJBQUEsQ0FSekIsQ0FTQXNJLFNBQUEsQyxnQkFBQSxFQUE2QnpOLE1BQUEsQyxnQkFBQSxFQUFjQSxNQUFBLEMsZ0JBQUEsRUFBYyxFQUFkLENBQWtCOE0sU0FBQSxFQUFsQixDQUFkLENBQWlFLEMsWUFBRSxDQUFZLElBQU1VLFNBQXBCLEMsY0FDMUYsQ0FBYUUsU0FBYixDLGtDQUNXQSxTQUFBLEMsZ0JBQUEsSSxrQkFGK0UsQyxXQUd2RixDLElBSHVGLENBQWpFLENBQTdCLEMsRUF2RXVDLEMsWUE0RTNDLEUsRUE1RTJDLENBQS9DLEMsRUEzdUJKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgZnVuY3Rpb24gY29lcmNlRmxhZ01hc2tUb051bWJlcih0eXBlLCBzdHIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzdHIgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RyQXNOdW0gPSBwYXJzZUludChzdHIsIDEwKTtcbiAgICAgICAgaWYgKCFpc05hTihzdHJBc051bSkpIHtcbiAgICAgICAgICAgIHJldHVybiBzdHJBc051bTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmbGFncyA9IHN0ci5zcGxpdCgvXFx8fDt8LC8pLm1hcCgoYSkgPT4gYS50cmltKCkpO1xuICAgICAgICBsZXQgcmVzdWx0ID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBmbGFnIG9mIGZsYWdzKSB7XG4gICAgICAgICAgICByZXN1bHQgfD0gdHlwZVtmbGFnXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHR5cGUsIHZhbHVlKSB7XG4gICAgICAgIHZhbHVlID0gY29lcmNlRmxhZ01hc2tUb051bWJlcih0eXBlLCB2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHIgPSBbXTtcbiAgICAgICAgaWYgKCF0eXBlKVxuICAgICAgICAgICAgcmV0dXJuIHIuam9pbihcIiB8IFwiKTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCBiaXRNYXNrXSBvZiBPYmplY3QuZW50cmllcyh0eXBlKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIGlmICgodmFsdWUgJiBiaXRNYXNrKSA9PT0gYml0TWFzaykge1xuICAgICAgICAgICAgICAgICAgICByLnB1c2goa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHIuam9pbihcIiB8IFwiKTtcbiAgICB9XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIkRhdGFUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS10ZXh0LXdpZHRoXCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKF9hLCBub2RlSWRfMSwgdGVtcGxhdGVfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMSwgdGVtcGxhdGVfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnJvd3NlIGZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3Qgd2Fsa0JhY2t3YXJkID0gKF9hLCBfYikgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBfYl0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgeyBub2RlSWQsIHJvb3ROb2RlSWQsIGlzVHlwZSB9KSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoX2EsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSB8fCAhcmVmZXJlbmNlLm5vZGVJZCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSBgKCR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfSkgJHsoKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lKSB8fCAoKF9kID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QudGV4dCkgfHwgXCJcIn1gO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaSBrZXk9XCIke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX1cIn0+PHNwYW4gY2xhc3M9XCJ0cmVlLXRleHRcIiB0aXRsZT0ke3RpdGxlfT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTwvc3Bhbj48dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBmaW5kRWxlbWVudCA9IChub2RlSWQsICR0cmVlKSA9PiB7XG4gICAgICAgIHJldHVybiAkdHJlZS5maW5kKGBsaVtrZXk9XCIke25vZGVJZH1cIl1gKTtcbiAgICB9O1xuICAgIGNvbnN0IHNlbGVjdFNpbmdsZSA9ICh0aGF0LCAkbGkpID0+IHtcbiAgICAgICAgdGhhdC4kdHJlZS5maW5kKFwibGkgPiAudHJlZS10ZXh0XCIpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIC8vIGNsZWFyIGFsbCBzZWxlY3RlZCBpdGVtc1xuICAgICAgICAkbGkuZmluZChcIi50cmVlLXRleHQ6Zmlyc3RcIikuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICB9O1xuICAgIGNvbnN0IGF1dG9FeHBhbmQgPSAodGhhdCwgYnJvd3NlUGF0aCwgJHRyZWUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBleHBhbmQgdGhlIHRyZWUgdG8gc2hvdyB0aGUgbm9kZUlkXG4gICAgICAgIGxldCAkY3VycmVudCA9ICR0cmVlLmNoaWxkcmVuKFwiOmZpcnN0XCIpO1xuICAgICAgICBicm93c2VQYXRoLnJlbGF0aXZlUGF0aC5lbGVtZW50cyB8fCBbXTtcbiAgICAgICAgY29uc3Qgbm9kZUlkcyA9IGJyb3dzZVBhdGgubm9kZUlkcyB8fCBbXTtcbiAgICAgICAgaWYgKG5vZGVJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBuIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgICAgIGlmICgkY3VycmVudC5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGV4cGFuZCBhbmQgc2VsZWN0IHRoZSByaWdodCBlbGVtZW50XG4gICAgICAgICAgICAgICAgeWllbGQgX2V4cGFuZExpKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gZmluZEVsZW1lbnQobiwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKCRlbGVtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRjdXJyZW50ID0gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgc2Nyb2xsVG9MaSh0aGF0LiRkcm9wZG93biwgJGN1cnJlbnQpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHNjcm9sbFRvTGkoJGNvbnRhaW5lciwgJHRhcmdldExpKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIHRhcmdldCBpdGVtIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgY29uc3QgbGlQb3MgPSAkdGFyZ2V0TGkucG9zaXRpb24oKS50b3A7XG4gICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBjb250YWluZXJTY3JvbGxUb3AgPSAkY29udGFpbmVyLnNjcm9sbFRvcCgpO1xuICAgICAgICBpZiAoY29udGFpbmVyU2Nyb2xsVG9wID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gdG8gc2Nyb2xsIHRvIChjdXJyZW50IHNjcm9sbCArIGl0ZW0ncyBwb3NpdGlvbilcbiAgICAgICAgLy8gQWRqdXN0IHRoaXMgY2FsY3VsYXRpb24gYmFzZWQgb24geW91ciBuZWVkc1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IGNvbnRhaW5lclNjcm9sbFRvcCArIGxpUG9zIC0gJGNvbnRhaW5lci5oZWlnaHQoKSAvIDIgKyAkdGFyZ2V0TGkuaGVpZ2h0KCkgLyAyO1xuICAgICAgICAvLyBTY3JvbGwgdGhlIGNvbnRhaW5lciB0byBlbnN1cmUgdGhlIGl0ZW0gaXMgdmlzaWJsZVxuICAgICAgICAkY29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxUbyxcbiAgICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkdXJhdGlvbiAoNTAwbXMpIGFzIG5lZWRlZFxuICAgIH1cbiAgICBjb25zdCByZWFjaFNlbGVjdGlvbiA9ICh0aGF0LCBwYXJlbnROb2RlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gdGhhdC4kaW5wdXQudmFsKCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICByb290Tm9kZUlkOiBwYXJlbnROb2RlLm5vZGVJZCxcbiAgICAgICAgICAgIGlzVHlwZTogdGhhdC5vcHRpb25zLmlzVHlwZVJlZiB8fCBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICBjb25zdCBicm93c2VQYXRoID0geWllbGQgd2Fsa0JhY2t3YXJkKGRhdGEsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWJyb3dzZVBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBhdXRvRXhwYW5kKHRoYXQsIGJyb3dzZVBhdGgsIHRoYXQuJHRyZWUpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuX19wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzT25MZWZ0U2l6ZSA9ICgkbGksIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJGxpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlRXhwYW5zaW9uID0gKCRsaSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2V4cGFuZExpKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJkYmxjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5mbGFnRWRpdG9yXCIsIHtcbiAgICAgICAgICAgIC8vIGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgLy8gQWRkIG1vcmUgbmFtZXMgYW5kIGJpdCB2YWx1ZXNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gQ3VzdG9tIERyb3Bkb3duXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyB0aGUgdG9nZ2xlIHRyZWUgYnV0dG9uOlxuICAgICAgICAgICAgICAgIC8vICAgd2hlbiB3ZSBjbGljayBpdCB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGRpc3BsYXllZFxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZXllXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kc2VsZWN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmZpbmQoXCIuY3VzdG9tLW9wdGlvblwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uTmFtZSA9ICQodGhpcykudGV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpdFZhbHVlID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW29wdGlvbk5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiaXRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodGhhdC5vcHRpb25zLnZhbHVlICYgYml0VmFsdWUpID09PSBiaXRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGhpZGRlbiBzZWxlY3QgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC51cGRhdGVWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGRyb3AgZG93biBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIj48L2Rpdj4nKS5oaWRlKCkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAkLmVhY2godGhpcy5vcHRpb25zLm5hbWVzVG9CaXRzLCBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkb3B0aW9uID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1vcHRpb25cIiBkYXRhLXZhbHVlPVwiJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveFwiPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmFwcGVuZCgkb3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGEgb3B0aW9ucyBpbiB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGNsaWNrZWQsXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ub24oXCJjbGlja1wiLCBcIi5jdXN0b20tb3B0aW9uXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICQodGhpcykuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcyhcInNlbGVjdGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUZyb21JbnB1dCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQub3B0aW9ucy52YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgfD0gYml0O1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdW5zZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgJj0gfmJpdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudmFsKGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB0aGlzLm9wdGlvbnMudmFsdWUpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZGVzdHJveSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5yZW1vdmUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUJyb3dzZVwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiYnJvd3NlXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gcmVhZFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHJlZmVyZW5jZVR5cGVJZDogeyB2YWx1ZTogXCJIYXNDaGlsZFwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIGluY2x1ZGVTdWJ0eXBlczogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBicm93c2VEaXJlY3Rpb246IHsgdmFsdWU6IFwiRm9yd2FyZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgbm9kZUNsYXNzTWFzazogeyB2YWx1ZTogXCJWYXJpYWJsZSB8IE9iamVjdCB8IE1ldGhvZCB8IE9iamVjdFR5cGUgfCBWYXJpYWJsZVR5cGVcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICByZXN1bHRNYXNrOiB7IHZhbHVlOiBcIlJlZmVyZW5jZVR5cGUgfCBCcm93c2VOYW1lIHwgVHlwZURlZmluaXRpb24gfCBEaXNwbGF5TmFtZSB8IE5vZGVDbGFzcyB8IElzRm9yd2FyZFwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3V0cHV0czogMSxcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgQnJvd3NlXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVDbGFzc01hc2sgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUNsYXNzTWFza1wiKTtcbiAgICAgICAgICAgICRub2RlQ2xhc3NNYXNrLmZsYWdFZGl0b3Ioe1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdDogMSxcbiAgICAgICAgICAgICAgICAgICAgVmFyaWFibGU6IDIsXG4gICAgICAgICAgICAgICAgICAgIE1ldGhvZDogNCxcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0VHlwZTogOCxcbiAgICAgICAgICAgICAgICAgICAgVmFyaWFibGVUeXBlOiAxNixcbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlVHlwZTogMzIsXG4gICAgICAgICAgICAgICAgICAgIERhdGFUeXBlOiA2NCxcbiAgICAgICAgICAgICAgICAgICAgVmlldzogMTI4LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0ICRyZXN1bHRNYXNrID0gJChcIiNub2RlLWlucHV0LXJlc3VsdE1hc2tcIik7XG4gICAgICAgICAgICAkcmVzdWx0TWFzay5mbGFnRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VUeXBlOiAxLFxuICAgICAgICAgICAgICAgICAgICBJc0ZvcndhcmQ6IDIsXG4gICAgICAgICAgICAgICAgICAgIE5vZGVDbGFzczogNCxcbiAgICAgICAgICAgICAgICAgICAgQnJvd3NlTmFtZTogOCxcbiAgICAgICAgICAgICAgICAgICAgRGlzcGxheU5hbWU6IDE2LFxuICAgICAgICAgICAgICAgICAgICBUeXBlRGVmaW5pdGlvbjogMzIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogNjMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICBjb25zdCByZWZlcmVuY2VzTm9kZURlc2MgPSB7XG4gICAgICAgICAgICAgICAgbm9kZUlkOiBcImk9MzFcIixcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJSZWZlcmVuY2VzXCIgfSxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIlJlZmVyZW5jZXNcIiB9LFxuICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJSZWZlcmVuY2VUeXBlXCIsXG4gICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IFwiaT0zMVwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0ICRyZWZlcmVuY2VUeXBlSWQgPSAkKFwiI25vZGUtaW5wdXQtcmVmZXJlbmNlVHlwZUlkXCIpO1xuICAgICAgICAgICAgJHJlZmVyZW5jZVR5cGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogKCkgPT4gcmVmZXJlbmNlc05vZGVEZXNjLCAvLyBSZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgICAgICAgICB9LCBpc1R5cGVSZWY6IHRydWUgfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Browse">
|
11
11
|
<style>
|