UNPKG

@opcua/for-node-red

Version:

The Node-RED node to communicate via OPC UA, powered NodeOPCUA and developed by Sterfive's team

242 lines (191 loc) 70.7 kB
<style> .sterfive-combo-box{position:relative;width:100%}.sterfive-online-menu{height:auto;position:fixed;width:auto}.sterfive-input-error{border-color:var(--red-ui-form-input-border-error-color);border-style:solid;border-width:1px}.sterfive-typedInput-options{background:#fff;border-style:solid;border-width:1px;border:1px solid var(--red-ui-primary-border-color);box-sizing:border-box;max-height:350px;overflow-y:auto;position:absolute;white-space:nowrap;z-index:2000}.sterfive-typedInput-options a{align-items:center;border-bottom:1px solid;border-color:var(--red-ui-secondary-border-color);border-style:solid;border-width:1px;color:var(--red-ui-form-text-color);display:flex;font-size:13px;padding:6px 18px 6px 6px;text-decoration:none}.sterfive-typedInput-options a:hover{background:var(--red-ui-workspace-button-background-hover);text-decoration:none}.sterfive-typedInput-options a:focus{outline:none}.sterfive-typedInput-options a:active,.sterfive-typedInput-options a:focus{background:var(--red-ui-workspace-button-background-active);text-decoration:none}.sterfive-typedInput-options a input[type=checkbox]{margin:0 6px 0 0}.sterfive-typedInput-options .sterfive-typedInput-icon{margin-right:6px}.sterfive-typedInput-options .sterfive-typedInput-icon:not(.fa){background-color:var(--red-ui-primary-text-color);height:14px;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:cover;mask-size:cover;width:12px}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:400px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome,sans-serif;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome,sans-serif;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li span.selected{border:.5px dotted #33f}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-inline-start:2%}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome,sans-serif;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.sterfive-input-group{border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.sterfive-input-group button,.sterfive-input-group input{border:none;outline:none;padding:10px}.sterfive-input-group input{flex:1}.sterfive-input-group button{background-color:var(--red-ui-form-button-background);color:#7b7a7a;cursor:pointer}.sterfive-input-group button:hover{background-color:var(--red-ui-secondary-background-hover)}.sterfive-info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome,sans-serif;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfive-combo-box .sterfive-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003} /*# sourceMappingURL=OpcUa-Client2-Explore.css.map */ </style> <!-- HTML CONTENTS --> <script type="text/x-red" data-template-name="OpcUa-Client2-Explore"> <style> .my-checkbox-label { width: fit-content; cursor: pointer; user-select: none; } .my-checkbox-input { visibility: hidden; } .my-checkbox-mark { margin-left: 20px; font-family: "FontAwesome", serif; font-size: 24px; } .my-checkbox-input:checked ~ .my-checkbox-mark::before { content: "\f205"; /* fa-toggle-on */ } .my-checkbox-input:not(:checked) ~ .my-checkbox-mark::before { content: "\f204"; /* fa-toggle-off */ } </style> <h3>Opc-UA Explore</h3> <div class="form-row"> <label for="node-input-name"><i class="icon-tasks"></i>Name</label> <input type="text" id="node-input-name" placeholder="enter the friendly name of the node" /> </div> <div class="form-row"> <label for="node-input-endpoint"><i class="icon-tasks"></i> Endpoint</label> <input type="text" id="node-input-endpoint" placeholder="opc.tcp://localhost:4334" /> </div> <div class="form-row"> <label for="node-input-nodeId" style="width: 100%"><i class="fa fa-tag"></i>NodeId</label> <input type="text" id="node-input-nodeId" placeholder="ns=2;s=Variable1 or empty" /> </div> <div class="form-row"> <label for="node-input-outputType">Output type</label> <select type="text" id="node-input-outputType" style="width: 72%"> <option selected value="Value">Value</option> <option value="NodeId">Node ID</option> <option value="NSUNodeId">Node ID with Uri</option> <option value="BrowsePath">Browse Path</option> <option value="AliasedBrowsePath">Aliased Browse Path</option> <option value="Variant">Variant</option> <option value="DataValue">DataValue</option> <option value="StatusCode">StatusCode</option> </select> </div> <!-- excludeEmpty --> <div class="form-row"> <label class="my-checkbox-label" for="node-input-excludeEmpty"><i class="fa fa-play"></i> exclude empty</label> <label> <input type="checkbox" checked class="my-checkbox-input" id="node-input-excludeEmpty" /> <span class="my-checkbox-mark"></span> </label> </div> <!-- follow Organizes Reference--> <div class="form-row"> <label class="my-checkbox-label" for="node-input-followOrganizes" ><i class="fa fa-play"></i> follow Organizes Reference </label> <label> <input type="checkbox" checked class="my-checkbox-input" id="node-input-followOrganizes" /> <span class="my-checkbox-mark"></span> </label> </div> </script> <!-- MARKDOWN CONTENTS --> <script type="text/markdown" data-help-name="OpcUa-Client2-Explore"> explore a node of a OPCUA server, and get the structure of the node and its children. ## Explore action you can either - Inject your OPC UA address (NodeId) by the `nodeId` or `topic` property of an injected message or - use the nodeId attribute defined in the OpcUa-Explore node itself. ## Input The explore operation is triggered when the node receive an input message. The nodeId to explore can be specified in the following ways, in priority order: :msg.nodeId (string): the nodeId to explore or if `msg.nodeId` is not defined: :parameter.nodeId (string): the nodeId to read defined in the node configuration itself. ## Output :msg.payload (Object): the structure of the node and its children. ### output type - you can control the value that will be stored on the leaf of the returned object. - It can be either | Leaf Output Type | msg:outputType | Description | | ------------------ | ----------------- | ---------------------------------------------------------------------------------------- | | Value | Value | the variable value | | DataValue | DataValue | the variable value with additional information | | Variant | Variant | the variable value with additional information | | StatusCode | StatusCode | the status code of the variable | | NodeId | NodeId | the nodeId of the variable ( with namespace index) | | NodeId with Uri | NSUNodeId | the nodeId of the variable ( with namespace urn) | | BrowsePath | BrowsePath | the browse Path of the variable, starting from the Object Folder , with indexed namspace | | Aliased BrowsePath | AliasedBrowsePath | the browse Path of the variable, starting from the Object Folder , with aliased namspace | - if `msg.outputType` is defined, then it takes precedence on the `outputType` attribute defined in the node configuration itself. ### exclude empty flag if (msg.excludeEmpty === true) then the node will not return empty nodes in the output structure. ### follow `organizes` reference - If this flag is set to true, the node will also follow the `organizes` reference and return the children of the referenced node. (Origanizes, HasPropoerty and HasComponent references) - If this flag is set to false, the node will return the children of the input node only. (HasPropoerty and HasComponent references) ### notes: - Once the explorer hits a variables node, it reads the associated value (Value, DataValue, Variant, StatusCode, NodeId, NodeId with Uri, BrowsePath, Aliased BrowsePath) and stores it in the leaf of the returned object. It will not explore the children of the variable node any further. - If the explorer hits a folder node, it will explore the children of the folder node and store them in the returned object, only if the `follow Organizes reference` flag is set to true. - you can browse the children nodes of a Variable node , by specifying the Variable node as an input. ### Example ```json { "payload": "ns=1;s=Temperature", "outputType": "Value" } ``` ### reading subtree structure if the injected `msg.payload` is an object, the OPCUARead node will read the subtree structure of the node. For instance: ```json { "nodeId": "/Server/ServerStatus", "outputType": "Value" } ``` will return the following structure: ```json { "payload": { "StartTime": "2025-01-19T17:09:44.579Z", "CurrentTime": "2025-01-21T20:24:17.285Z", "State": 0, "BuildInfo": { "ProductUri": "NodeOPCUA-Server-for-CTT", "ManufacturerName": "NodeOPCUA : MIT Licence ( see http://node-opcua.github.io/)", "ProductName": "NodeOPCUA-Server", "SoftwareVersion": "2.140.0", "BuildNumber": "1234", "BuildDate": "2020-02-01T00:00:00.000Z" }, "SecondsTillShutdown": 0, "ShutdownReason": {} } } ``` ```json { "nodeId": "/Server/ServerStatus", "outputType": "NodeId" } ``` will return the following structure: ```json { "payload": { "StartTime": "ns=0;i=2257", "CurrentTime": "ns=0;i=2258", "State": "ns=0;i=2259", "BuildInfo": "ns=0;i=2260", "SecondsTillShutdown": "ns=0;i=2992", "ShutdownReason": "ns=0;i=2993" } } ``` ```json { "nodeId": "/Server/ServerStatus/BuildInfo", "outputType": "AliasedBrowsePath" } ``` will return the following structure: ```json { "payload": { "ProductUri": "/Server.ServerStatus.BuildInfo.ProductUri", "ManufacturerName": "/Server.ServerStatus.BuildInfo.ManufacturerName", "ProductName": "/Server.ServerStatus.BuildInfo.ProductName", "SoftwareVersion": "/Server.ServerStatus.BuildInfo.SoftwareVersion", "BuildNumber": "/Server.ServerStatus.BuildInfo.BuildNumber", "BuildDate": "/Server.ServerStatus.BuildInfo.BuildDate" } } ``` </script> <!-- END OF CONTENTS --> <script type="text/javascript"> function _0x505f(){const _0x120efd=['Get\x20Support\x20&\x20Activate\x20License','prop','<strong>⚠️\x20Registration\x20required</strong>\x20—\x20','aliased\x20browsePath:\x20','<a\x20href=\x22','500px','180px','setItem','replaceWith','isSelectable','_blank','fa-text-width','assign','HasProperty','animate','data','then','1px\x20solid\x20#f5c6cb','<input\x20type=\x22checkbox\x22>','BrowsePath','50px','browsePath','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','Register\x20now','blur','mouseenter','fadeOut','.licence-expiry-banner','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','PROFESSIONAL','/config','type','IsForward','underline','already\x20loading','Objects','.onboarding-required-banner','nodeId','bp_aliased','error','.red-ui-tray-content','nsuNodeID','parentNode','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','li[key=\x22','opcua-for-nodered-last-overlay-shown','message','space-between','after','$input','main-wrapper','pointer','forEach','SuppressedError','.tree-text:first','10px','Good','observe','li\x20>\x20.tree-text','preventDefault','2px\x20solid\x20#ff9800','Your\x20trial\x20license\x20expires\x20in\x20<strong>','expanded','displayName','slideUp','nodeIds','change','filter','/licenceInfo','ns=0;i=61','Aliased\x20Browse\x20Path','settings','stopPropagation','#dc3545','FAILED','20px','</span><ul></ul></li>','<div>','<i>','none','css','sterfive.nodeBrowser','right','icon','NodeId\x20with\x20namespace\x20Urn','sterfive-info','14px','544094jWYCzu','CadetBlue','HasChild','wrap','Invalid','namespaceAliases','13px','opacity','click','removeClass','OpcUa-Endpoint2','scrollTop','multiple','flex','15px','</strong>.\x20','now','references','licenceInfo','[value=\x27','licence-freemium-banner','sterfive-input-group','1.6','18px','Failed\x20to\x20check\x20licence\x20status:','#node-input-nodeId','SandyBrown','each','apiRootUrl','endpoint','transparent','position','12AwfOWn','isTypeRef','offset','Method','RED.settings[\x22','label','endpointNode','ns=0;i=46','8px','toString','24px','parent','toggleClass','nodeId_aliased','opc.tcp://opcuademo.sterfive.com:26543','bannerCss','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','function','$combo','__parentNode','$uiSelect','stringify','string','Get\x20a\x20license\x20now','sterfive-typedInput-options\x20sterfive-online-menu','sterfive-input-error','backgroundColor','log','/config#buy','rgba(255,\x20255,\x20255,\x200.9)','aliasedNodeId','verify','licence-expiry-banner','node_label_italic','ReferenceType','mousedown','options','throw','licence-activated','<iframe></iframe>','<i\x20class=\x22fa\x20fa-bookmark\x22/>&nbsp;\x20','append','messageCss','reset','TRIAL','You\x20are\x20using\x20the\x20<strong>Free\x20Version</strong>\x20with\x20limited\x20functionality.\x20','selected','64px','0\x2020px\x2050px\x20rgba(0,0,0,0.25)','bannerClass','expandable','background-color:transparent;overflow:hidden;border:3px','mode','ObjectType','inputs','onboarding-required-banner','#node-input-endpoint','Object','children','suppressed','ceil','<div\x20class=\x22spinner\x22></div>','View','aliased\x20NodeId:\x20','<div\x20class=\x22sterfive-info-text\x22></div>','removeEventListener','buttonCss','Value','fa-list-alt',':visible','name','checked','#555','toISOString','<button>','\x22\x20style=\x22color:','#663c00','push','translateY(-50%)','fa-cog','<a\x20href=\x22#\x22></a>','0.0.0','ns=0;i=34','licence-continue-button','955043ndvlZd','142494rAyelV','keydown','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','mousedown.red-ui-typedInput-focus-block','<a>','msg.','height','grey','.spinner','1px\x20solid\x20rgba(255,\x20255,\x20255,\x200.3)','7312617zQNMaW','483NEzGhI','5px','mask-image:\x20url(','absolute','<unknown>','red-ui-typedInput-icon\x20','<ul\x20class=\x22sterfive-tree\x22></ul>','attr','err','ns=0;i=47','$info','nsu\x20nodeId:\x20','#1976D2','nodeId_nsu','text','rgba(','5px\x2010px','</li>','/images/small-sterfive.png','length','nsu','$elementDiv','supportUrl','disconnect','browseName','&times;','input[type=\x22checkbox\x22]','appendTo','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/>&nbsp;',':focus','#721c24','nodes','focus','EXPIRED','><i\x20class=\x22fa\x20','DisplayName','$selectLabel','SteelBlue','rgba(0,\x200,\x200,\x200.05)','<span>','Could\x20not\x20find\x20dialog\x20content\x20to\x20show\x20banner\x20.','background-color','addEventListener','html','body','apply','/browse','fa-sliders','$inputGroup','DarkOrange','12px\x2050px\x2012px\x2015px','12px','getTime','referenceTypeId','#999','#2196F3','getItem','dblclick','browseResult','disarmClick','show','fadeIn','/onboarding/status','ns=0;i=40','50%','bp_indexed','closest','indexOf','bold','$tree','I\x20accept\x20to\x20switch\x20to\x20the\x20free\x20version\x20(limited\x20features)','placeholder','<img>','2px\x20solid\x20#28a745','auto','Forward','#333','Variable','top','Unknown\x20Product','Trial\x20License\x20Expired','ns=0;i=35','sterfive-dropdown','POST','Value\x20is\x20not\x20verified','first','prepend','100%','match','onboarded','trigger','title','fetching\x20failed\x20with\x20error','join','value','prev',':first','target',',\x200.7)','element','typeDefinition','msg','resolveParentNode','Upgrade','</span>','!!failure!!','next','requestedNodeId','nodeClass','expandable\x20expanded','Organizes','nodeId:\x20','.red-ui-tray-body','open','opts','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','\x22]\x20is\x20not\x20set,\x20using\x20default\x20API\x20namespace.\x20Available\x20keys:\x20','NodeId','mouseleave','_createMenu','<div/>','_showMenu','/walk-backward','aliasedBrowsePath','hide','left','#fff3cd','1131534PaCaXL','<strong>✅\x20Registration\x20complete</strong>\x20—\x20','off','$selectTrigger','Both','<span\x20class=\x22red-ui-typedInput-type-label\x22></span>','blur(20px)','_hideMenu','find','empty','500','#856404','#f8d7da','prependTo','min','#495057','catch','pageY','$toggleTreeBtn','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','115wsalWc','NodeClass','fa-folder','HasTypeDefinition','warn','Unspecified','HasComponent','$dropdown','statusCode','DodgerBlue','complete\x20registration</a>.','VariableType','DataType','blur(10px)','true','OPCUA\x20Explore','replace','16px','30904EwxxWY','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','statusText','red-ui-typedInput-focus','center','$verifyBtn','widget','done','TypeDefinition','>&nbsp;\x20','background-color\x200.2s','#f44336','json','2px\x20solid\x20#ffc107','Inverse','startsWith','<h2>','relative','remove','0\x202px\x208px\x20rgba(0,0,0,0.1)','failure','opacity\x200.2s','explore','1px\x20solid\x20#ced4da','currentParent','application/json','fa-question','keyCode','10px\x2020px','\x20day','<i\x20class=\x22fa\x20fa-id-card\x22/>&nbsp;\x20','border',';\x22></i>\x20','addClass','style=\x22color:#1565C0;\x20text-decoration:underline;\x20font-weight:bold\x22>','9871740AEisJm','span','expiryDate','fa-object-group','callback','#d4edda','15px\x2030px','_showTypeMenu','elements','hasClass','status','loading','$menu','HasSubtype','Could\x20not\x20find\x20dialog\x20content\x20to\x20show\x20licence\x20overlay','<span\x20title=','/checkNodeId','fetched','permanent','selectedMenuItem','toggle','#C0DEED','white','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20&nbsp;\x20','node\x20class:\x20','_delay','mousedown.red-ui-typedInput-close-property-select','../../icons/opcuanodeLogo.png','val'];_0x505f=function(){return _0x120efd;};return _0x505f();}function _0x3740(_0x33b7e8,_0xd9c1c9){_0x33b7e8=_0x33b7e8-0xb0;const _0x505f4c=_0x505f();let _0x3740cf=_0x505f4c[_0x33b7e8];return _0x3740cf;}(function(_0x34466a,_0x9cb8d1){const _0x49e0c4=_0x3740,_0x1361cd=_0x34466a();while(!![]){try{const _0x419220=-parseInt(_0x49e0c4(0x204))/0x1+parseInt(_0x49e0c4(0x190))/0x2+-parseInt(_0x49e0c4(0xd3))/0x3*(parseInt(_0x49e0c4(0x1b0))/0x4)+-parseInt(_0x49e0c4(0xe7))/0x5*(-parseInt(_0x49e0c4(0x205))/0x6)+-parseInt(_0x49e0c4(0x210))/0x7*(-parseInt(_0x49e0c4(0xf9))/0x8)+parseInt(_0x49e0c4(0x20f))/0x9+parseInt(_0x49e0c4(0x11c))/0xa;if(_0x419220===_0x9cb8d1)break;else _0x1361cd['push'](_0x1361cd['shift']());}catch(_0x3890cb){_0x1361cd['push'](_0x1361cd['shift']());}}}(_0x505f,0xc2ceb),(function(){'use strict';const _0x4f27ab=_0x3740;function _0x124c2e(_0x1caa99){const _0x5a6580=_0x3740;!_0x1caa99[_0x5a6580(0x108)]('/')&&(_0x1caa99='/'+_0x1caa99);const _0x38cc98='opcUaEndpoint2Config';let _0x39320f=RED[_0x5a6580(0x180)][_0x38cc98];if(!_0x39320f){const _0x4740a0=Object['keys'](RED[_0x5a6580(0x180)])['sort']()['join'](',\x20');console[_0x5a6580(0xeb)](_0x5a6580(0x1b4)+_0x38cc98+_0x5a6580(0xc8)+_0x4740a0),_0x39320f='opcua-for-node-red-fix-me';}const _0x21138e=RED[_0x5a6580(0x180)][_0x5a6580(0x1ac)]||'',_0xb5e25b=''+_0x21138e+_0x39320f+_0x1caa99;return _0xb5e25b;}const _0x47e53f=()=>{const _0x3df75f=_0x3740,_0x3fd0ee=$(_0x3df75f(0xc4));if(_0x3fd0ee[_0x3df75f(0x223)]){const _0x21bfda=$(_0x3df75f(0x1d7),{'src':_0x124c2e('/support-frame.html'),'scrolling':'no','style':_0x3df75f(0x1e3),'allowtransparency':_0x3df75f(0xf5),'width':_0x3df75f(0x13f),'height':_0x3df75f(0x14d)});_0x3fd0ee[_0x3df75f(0x1d9)](_0x21bfda),_0x21bfda[_0x3df75f(0x189)]({'position':'absolute','right':_0x3df75f(0x184),'bottom':_0x3df75f(0xf8)});}},_0x3dd2d1=()=>{const _0x4e2b7f=_0x3740,_0x431e48=$(_0x4e2b7f(0x1e8)),_0xd86bbe=_0x431e48[_0x4e2b7f(0x138)](),_0x356b43=RED[_0x4e2b7f(0x22f)]['node'](_0xd86bbe);if(!_0x356b43)return undefined;const {endpoint:_0x478f84,securityMode:_0x398253,securityPolicy:_0x284e9f,userIdentityType:_0x49f598,credentials:_0x1167b5,namespaceAliases:_0x5b52c6}=_0x356b43,_0x513190={'endpoint':_0x478f84,'securityMode':_0x398253,'securityPolicy':_0x284e9f,'userIdentityType':_0x49f598,'credentials':_0x1167b5,'namespaceAliases':_0x5b52c6};return _0x513190;},_0xd80b73=()=>{const _0x3eda06=_0x3740,_0x2a8220=$('#node-input-endpoint'),_0x4d9049=_0x2a8220[_0x3eda06(0x138)](),_0x1ec5c5=_0x3dd2d1();if(!_0x1ec5c5)return undefined;const _0x52d70d=_0x1ec5c5[_0x3eda06(0x195)];return Object[_0x3eda06(0x145)]({'namespaceAliases':_0x52d70d,'id':_0x4d9049},_0x1ec5c5);},_0x2e885b=()=>{return{'endpointNode':_0xd80b73};};function _0x28793f(_0x54f6c7,_0x424a42,_0x155e50,_0x5d0160){function _0x49ef8e(_0x31d419){return _0x31d419 instanceof _0x155e50?_0x31d419:new _0x155e50(function(_0x44c4c9){_0x44c4c9(_0x31d419);});}return new(_0x155e50||(_0x155e50=Promise))(function(_0x4f9c0c,_0x2677e0){const _0x156295=_0x3740;function _0x1dd9f9(_0x299a42){const _0x5318ef=_0x3740;try{_0x33b05e(_0x5d0160[_0x5318ef(0xbe)](_0x299a42));}catch(_0x516bc6){_0x2677e0(_0x516bc6);}}function _0x26dc86(_0x1c6a66){const _0x45fc79=_0x3740;try{_0x33b05e(_0x5d0160[_0x45fc79(0x1d5)](_0x1c6a66));}catch(_0x4956e4){_0x2677e0(_0x4956e4);}}function _0x33b05e(_0x5de1a5){const _0x2aa771=_0x3740;_0x5de1a5[_0x2aa771(0x100)]?_0x4f9c0c(_0x5de1a5['value']):_0x49ef8e(_0x5de1a5[_0x2aa771(0xb2)])[_0x2aa771(0x149)](_0x1dd9f9,_0x26dc86);}_0x33b05e((_0x5d0160=_0x5d0160[_0x156295(0x23d)](_0x54f6c7,_0x424a42||[]))[_0x156295(0xbe)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0xa6ef8,_0x254f93,_0x5f27c5){const _0x484e6c=_0x3740;var _0x469d82=new Error(_0x5f27c5);return _0x469d82['name']=_0x484e6c(0x16e),_0x469d82[_0x484e6c(0x160)]=_0xa6ef8,_0x469d82[_0x484e6c(0x1eb)]=_0x254f93,_0x469d82;};function _0x23aaba(){return _0x28793f(this,void 0x0,void 0x0,function*(){const _0x2950d3=_0x3740,_0x5e6b1a=_0x124c2e(_0x2950d3(0x17d)),_0x3025e3=yield fetch(_0x5e6b1a,{'method':'GET'}),_0x2af8fb=new Date()[_0x2950d3(0x1f9)](),_0x9b0609={'status':_0x2950d3(0x183),'type':'FREEWARE','productName':_0x2950d3(0x25f),'productVersion':_0x2950d3(0x201),'licenceInfo':{'licenceId':'00000000-0000-0000-0000-000000000000','licenceType':_0x2950d3(0x214),'expiryDate':_0x2af8fb,'onPremiseServerHost':'','expired':!![],'userCompany':'','userEmail':'','userName':''}};if(_0x3025e3['status']!==0xc8)return console['log'](_0x2950d3(0xb0),_0x3025e3[_0x2950d3(0x126)],_0x3025e3['statusText']),_0x9b0609;const _0x39311e=yield _0x3025e3['json']();return _0x39311e;});}const _0x45d056=_0x4f27ab(0x166);function _0x27986c(){return _0x28793f(this,void 0x0,void 0x0,function*(){const _0xf621ad=_0x3740;try{const _0x130b7e=_0x124c2e(_0xf621ad(0x24e)),_0x326465=yield fetch(_0x130b7e);if(!_0x326465['ok'])return{'onboarded':!![]};return yield _0x326465[_0xf621ad(0x105)]();}catch(_0x5a4adc){return{'onboarded':!![]};}});}function _0x1fabb8(_0x4ba2ab){const _0xbd6add=_0x4f27ab;_0x2fe9c6({'bannerClass':_0xbd6add(0x1e7),'bannerCss':{'backgroundColor':_0xbd6add(0xd2),'borderBottom':_0xbd6add(0x175)},'messageHtml':_0xbd6add(0x13b)+'this\x20node\x20will\x20not\x20process\x20messages\x20until\x20you\x20'+(_0xbd6add(0x13d)+_0x4ba2ab+'\x22\x20target=\x22_blank\x22\x20')+_0xbd6add(0x11b)+_0xbd6add(0xf1),'messageCss':{'color':_0xbd6add(0x1fc)},'buttonText':_0xbd6add(0x150),'buttonCss':{'backgroundColor':'#ff9800'},'buttonHoverCss':{'backgroundColor':'#f57c00'},'supportUrl':_0x4ba2ab});const _0x2e8b5d=setInterval(()=>_0x28793f(this,void 0x0,void 0x0,function*(){const _0x2379b4=_0xbd6add;try{const _0x206d25=yield _0x27986c();if(_0x206d25['onboarded']){clearInterval(_0x2e8b5d);const _0x3b91ca=$(_0x2379b4(0x15d));_0x3b91ca[_0x2379b4(0x223)]>0x0&&(_0x3b91ca[_0x2379b4(0x189)]({'backgroundColor':_0x2379b4(0x121),'borderBottom':_0x2379b4(0x259)}),_0x3b91ca[_0x2379b4(0xdb)](_0x2379b4(0x11d))[_0x2379b4(0x23b)](_0x2379b4(0xd4)+'thank\x20you!\x20Please\x20re-deploy\x20your\x20flows\x20to\x20activate\x20all\x20nodes.'),_0x3b91ca[_0x2379b4(0xdb)](_0x2379b4(0x11d))[_0x2379b4(0x189)]({'color':'#155724'}),_0x3b91ca[_0x2379b4(0xdb)]('button')[_0x2379b4(0x10b)](),setTimeout(()=>{const _0x69b464=_0x2379b4;_0x3b91ca[_0x69b464(0x179)](0x12c,()=>_0x3b91ca[_0x69b464(0x10b)]());},0x1388));}}catch(_0x3f372a){}}),0xbb8),_0x595e17=new MutationObserver(()=>{const _0x895b64=_0xbd6add;$(_0x895b64(0x15d))[_0x895b64(0x223)]===0x0&&(clearInterval(_0x2e8b5d),_0x595e17[_0x895b64(0x227)]());}),_0x17a98a=$(_0xbd6add(0x161))[_0xbd6add(0x265)]();_0x17a98a[_0xbd6add(0x223)]>0x0&&_0x17a98a[0x0]&&_0x595e17[_0xbd6add(0x172)](_0x17a98a[0x0],{'childList':!![],'subtree':!![]});}function _0x41e2b2(){return _0x28793f(this,arguments,void 0x0,function*(_0x4b9ce1={}){const _0x2dc63c=_0x3740,_0x463436=_0x124c2e(_0x2dc63c(0x1cc)),{delay:delay=0x5dc,supportUrl:supportUrl=_0x463436,shouldShowOverlay:shouldShowOverlay=_0x4d037d=>_0x4d037d[_0x2dc63c(0x126)]===_0x2dc63c(0x231)&&_0x4d037d[_0x2dc63c(0x158)]===_0x2dc63c(0x1dc)}=_0x4b9ce1;try{const _0x2cbbd7=yield _0x27986c();if(!_0x2cbbd7[_0x2dc63c(0x269)])return yield _0x1d3873(Math[_0x2dc63c(0xe1)](delay,0x1f4)),_0x1fabb8(_0x124c2e(_0x2dc63c(0x157))),!![];const _0x15b944=yield _0x23aaba();if(shouldShowOverlay(_0x15b944)){const _0x44991f=Date[_0x2dc63c(0x1a0)](),_0x35a923=parseInt(localStorage[_0x2dc63c(0x248)](_0x45d056)||'0',0xa),_0x2755c2=0x3c*0x3c*0x3e8;return _0x44991f-_0x35a923>_0x2755c2?(yield _0x1d3873(delay),_0x325f31(supportUrl),localStorage[_0x2dc63c(0x140)](_0x45d056,_0x44991f[_0x2dc63c(0x1b9)]())):_0xb9d8f2(supportUrl),!![];}if(_0x15b944[_0x2dc63c(0x158)]===_0x2dc63c(0x1dc)&&_0x15b944[_0x2dc63c(0x126)]!==_0x2dc63c(0x231)){const _0x43723e=_0x107b14(_0x15b944);if(_0x43723e<=0xa&&_0x43723e>0x0)return yield _0x1d3873(delay),_0x5794d6(supportUrl,_0x43723e),!![];}if(_0x15b944[_0x2dc63c(0x158)]===_0x2dc63c(0x156)&&_0x15b944[_0x2dc63c(0x126)]==='EXPIRED')return yield _0x1d3873(delay),_0x20b934(supportUrl),!![];return![];}catch(_0x4c45f8){return console[_0x2dc63c(0x160)](_0x2dc63c(0x1a8),_0x4c45f8),![];}});}function _0x325f31(_0x5878c8,_0x3bfad0=0xbb8){const _0xd1c70d=_0x4f27ab,_0x4601a2=$(_0xd1c70d(0x161))['first']();if(_0x4601a2[_0xd1c70d(0x223)]===0x0){console[_0xd1c70d(0xeb)](_0xd1c70d(0x12a));return;}const _0x523186=$(_0xd1c70d(0x186),{'class':'licence-activation-overlay','css':{'position':_0xd1c70d(0x213),'top':0x0,'left':0x0,'right':0x0,'bottom':0x0,'zIndex':0x2710,'backgroundColor':_0x4601a2[_0xd1c70d(0x189)](_0xd1c70d(0x239))[_0xd1c70d(0xf7)]('rgb(',_0xd1c70d(0x21f))[_0xd1c70d(0xf7)](')',_0xd1c70d(0xb6)),'backdropFilter':_0xd1c70d(0xf4),'WebkitBackdropFilter':_0xd1c70d(0xf4),'display':_0xd1c70d(0x19d),'flexDirection':'column','alignItems':_0xd1c70d(0xfd),'justifyContent':_0xd1c70d(0xfd),'padding':'40px'}}),_0x50f51d=$(_0xd1c70d(0x186),{'css':{'backgroundColor':_0xd1c70d(0x1cd),'backdropFilter':'blur(20px)','WebkitBackdropFilter':_0xd1c70d(0xd9),'borderRadius':_0xd1c70d(0xf8),'padding':'40px','maxWidth':_0xd1c70d(0x13e),'textAlign':'center','boxShadow':_0xd1c70d(0x1e0),'border':_0xd1c70d(0x20e)}}),_0x2b17df=$(_0xd1c70d(0x258),{'src':_0x124c2e(_0xd1c70d(0x222)),'css':{'maxWidth':'150px','height':'auto','marginBottom':_0xd1c70d(0x184)}}),_0x3b27bf=$(_0xd1c70d(0x186),{'css':{'fontSize':_0xd1c70d(0x1df),'marginBottom':_0xd1c70d(0x184)}})[_0xd1c70d(0x21e)]('⚠️'),_0x4df22f=$(_0xd1c70d(0x109),{'css':{'color':_0xd1c70d(0x104),'fontSize':_0xd1c70d(0x1ba),'fontWeight':_0xd1c70d(0x254),'marginBottom':_0xd1c70d(0x19e)}})[_0xd1c70d(0x21e)](_0xd1c70d(0x260)),_0x2371a1=$('<p>',{'css':{'color':_0xd1c70d(0x25c),'fontSize':_0xd1c70d(0xf8),'lineHeight':_0xd1c70d(0x1a6),'marginBottom':'30px'}})[_0xd1c70d(0x23b)]('Your\x20trial\x20period\x20has\x20ended.\x20To\x20continue\x20using\x20this\x20node,\x20please\x20purchase\x20a\x20professional\x20license\x20or\x20contact\x20our\x20support\x20team\x20for\x20assistance.'),_0x2bf0cb=$(_0xd1c70d(0x1fa),{'css':{'backgroundColor':_0xd1c70d(0x247),'color':_0xd1c70d(0x132),'border':'none','padding':_0xd1c70d(0x122),'fontSize':'16px','fontWeight':_0xd1c70d(0x254),'borderRadius':_0xd1c70d(0x1b8),'cursor':_0xd1c70d(0x16c),'marginBottom':_0xd1c70d(0x19e),'width':'100%','transition':_0xd1c70d(0x103)}})['text'](_0xd1c70d(0x139))['on']('mouseenter',function(){const _0x4c9093=_0xd1c70d;$(this)[_0x4c9093(0x189)](_0x4c9093(0x1ca),_0x4c9093(0x21c));})['on']('mouseleave',function(){const _0x29d624=_0xd1c70d;$(this)[_0x29d624(0x189)](_0x29d624(0x1ca),_0x29d624(0x247));})['on'](_0xd1c70d(0x198),()=>{const _0x1d4dea=_0xd1c70d;window['open'](_0x5878c8,_0x1d4dea(0x143),'width=1200,height=800');}),_0x4fe509=$(_0xd1c70d(0x1fa),{'class':_0xd1c70d(0x203),'css':{'backgroundColor':_0xd1c70d(0x1ae),'color':_0xd1c70d(0x1f8),'border':'1px\x20solid\x20#ccc','padding':_0xd1c70d(0x115),'fontSize':_0xd1c70d(0x18f),'borderRadius':_0xd1c70d(0x1b8),'cursor':_0xd1c70d(0x16c),'marginTop':_0xd1c70d(0x170),'width':_0xd1c70d(0x267),'transition':'all\x200.2s','display':_0xd1c70d(0x188)}})[_0xd1c70d(0x21e)](_0xd1c70d(0x256))['on'](_0xd1c70d(0x152),function(){const _0xec734d=_0xd1c70d;$(this)[_0xec734d(0x189)]({'backgroundColor':_0xec734d(0x236),'borderColor':_0xec734d(0x246)});})['on'](_0xd1c70d(0xca),function(){const _0x1370ce=_0xd1c70d;$(this)[_0x1370ce(0x189)]({'backgroundColor':_0x1370ce(0x1ae),'borderColor':'#ccc'});})['on'](_0xd1c70d(0x198),()=>{const _0x39b06c=_0xd1c70d;_0x523186[_0x39b06c(0x153)](0x12c,()=>{const _0x2336a8=_0x39b06c;_0x523186[_0x2336a8(0x10b)]();});});setTimeout(()=>{const _0x11ec61=_0xd1c70d;_0x4fe509[_0x11ec61(0x24d)]();},_0x3bfad0),_0x50f51d[_0xd1c70d(0x1d9)](_0x2b17df),_0x50f51d[_0xd1c70d(0x1d9)](_0x3b27bf),_0x50f51d[_0xd1c70d(0x1d9)](_0x4df22f),_0x50f51d['append'](_0x2371a1),_0x50f51d[_0xd1c70d(0x1d9)](_0x2bf0cb),_0x50f51d['append'](_0x4fe509),_0x523186['append'](_0x50f51d),_0x4601a2[_0xd1c70d(0x189)](_0xd1c70d(0x1af),_0xd1c70d(0x10a)),_0x4601a2[_0xd1c70d(0x1d9)](_0x523186),window[_0xd1c70d(0x23a)]('message',function _0x2837eb(_0x525050){const _0x4789d5=_0xd1c70d;_0x525050[_0x4789d5(0x148)]&&_0x525050[_0x4789d5(0x148)]['type']===_0x4789d5(0x1d6)&&(_0x523186['fadeOut'](0x12c,()=>{_0x523186['remove']();}),window[_0x4789d5(0x1f1)](_0x4789d5(0x167),_0x2837eb));});}function _0x1d3873(_0x541551){return new Promise(_0x4736aa=>setTimeout(_0x4736aa,_0x541551));}function _0x107b14(_0x2f9fe3){const _0x4dc54b=_0x4f27ab,_0x5bb257=_0x2f9fe3[_0x4dc54b(0x1a2)][_0x4dc54b(0x11e)];if(!_0x5bb257||_0x5bb257===_0x4dc54b(0x12e))return Infinity;const _0x47ef5a=new Date(_0x5bb257),_0x2219b9=new Date(),_0x19690f=_0x47ef5a[_0x4dc54b(0x244)]()-_0x2219b9[_0x4dc54b(0x244)](),_0x3bb642=Math[_0x4dc54b(0x1ec)](_0x19690f/(0x3e8*0x3c*0x3c*0x18));return _0x3bb642;}function _0x5794d6(_0x584c62,_0x546336){const _0x454336=_0x4f27ab,_0xb1e5e3=$('.red-ui-tray-content')['first']();if(_0xb1e5e3[_0x454336(0x223)]===0x0){console[_0x454336(0xeb)]('Could\x20not\x20find\x20dialog\x20content\x20to\x20show\x20licence\x20banner');return;}if(_0xb1e5e3['find'](_0x454336(0x154))[_0x454336(0x223)]>0x0)return;const _0x376dc1=$(_0x454336(0x186),{'class':_0x454336(0x1d0),'css':{'position':_0x454336(0x10a),'backgroundColor':_0x454336(0xd2),'borderBottom':_0x454336(0x106),'padding':_0x454336(0x242),'display':_0x454336(0x19d),'alignItems':'center','gap':_0x454336(0x243),'boxShadow':_0x454336(0x10c),'zIndex':0x3e8}}),_0x3dd201=$('<div>',{'css':{'fontSize':_0x454336(0x184),'flexShrink':0x0}})[_0x454336(0x21e)]('⚠️'),_0x5bf129=$(_0x454336(0x186),{'css':{'flex':0x1,'fontSize':_0x454336(0x18f),'color':_0x454336(0xde)}}),_0x5a600a=$(_0x454336(0x237),{'css':{'fontWeight':_0x454336(0xdd)}})['html'](_0x454336(0x176)+_0x546336+_0x454336(0x116)+(_0x546336!==0x1?'s':'')+_0x454336(0x19f)),_0x1fb712=$(_0x454336(0x209),{'href':'#','css':{'color':_0x454336(0x247),'textDecoration':_0x454336(0x15a),'cursor':_0x454336(0x16c)}})[_0x454336(0x21e)](_0x454336(0x1c7))['on'](_0x454336(0x198),_0x5cbd69=>{const _0x2f92d7=_0x454336;_0x5cbd69[_0x2f92d7(0x174)](),window[_0x2f92d7(0xc5)](_0x584c62,_0x2f92d7(0x143),'width=1200,height=800');});_0x5bf129[_0x454336(0x1d9)](_0x5a600a),_0x5bf129['append'](_0x1fb712);const _0x25ba6e=$(_0x454336(0x1fa),{'css':{'position':_0x454336(0x213),'right':_0x454336(0x170),'top':_0x454336(0x250),'transform':_0x454336(0x1fe),'backgroundColor':_0x454336(0x1ae),'border':_0x454336(0x188),'fontSize':_0x454336(0x184),'color':_0x454336(0xde),'cursor':'pointer','padding':_0x454336(0x220),'lineHeight':0x1,'opacity':0.7,'transition':_0x454336(0x10e)}})[_0x454336(0x23b)](_0x454336(0x229))['on'](_0x454336(0x152),function(){const _0x39bd1a=_0x454336;$(this)[_0x39bd1a(0x189)](_0x39bd1a(0x197),0x1);})['on'](_0x454336(0xca),function(){const _0x1d679e=_0x454336;$(this)[_0x1d679e(0x189)](_0x1d679e(0x197),0.7);})['on'](_0x454336(0x198),()=>{const _0x2c6e5d=_0x454336;_0x376dc1[_0x2c6e5d(0x179)](0xc8,()=>{const _0x1c6f9c=_0x2c6e5d;_0x376dc1[_0x1c6f9c(0x10b)]();});});_0x376dc1[_0x454336(0x1d9)](_0x3dd201),_0x376dc1[_0x454336(0x1d9)](_0x5bf129),_0x376dc1[_0x454336(0x1d9)](_0x25ba6e),_0xb1e5e3[_0x454336(0x266)](_0x376dc1);}function _0x2fe9c6(_0x4b40fc){const _0xe37326=_0x4f27ab,_0x4229fb=$('.red-ui-tray-content')[_0xe37326(0x265)]();if(_0x4229fb['length']===0x0){console[_0xe37326(0xeb)](_0xe37326(0x238)+_0x4b40fc[_0xe37326(0x1e1)]);return;}if(_0x4229fb[_0xe37326(0xdb)]('.'+_0x4b40fc['bannerClass'])[_0xe37326(0x223)]>0x0)return;const _0xf46120=$(_0xe37326(0x186),{'class':_0x4b40fc[_0xe37326(0x1e1)],'css':Object['assign']({'position':_0xe37326(0x10a),'padding':'10px\x2015px','display':_0xe37326(0x19d),'alignItems':'center','justifyContent':_0xe37326(0x168),'gap':_0xe37326(0x19e),'zIndex':0x3e8},_0x4b40fc[_0xe37326(0x1bf)])}),_0x116a0e=$('<div>',{'css':Object['assign']({'fontSize':_0xe37326(0x18f)},_0x4b40fc[_0xe37326(0x1da)])}),_0x358000=$(_0xe37326(0x237))['html'](_0x4b40fc['messageHtml']);_0x116a0e['append'](_0x358000);const _0x18cdfd=$(_0xe37326(0x1fa),{'css':Object[_0xe37326(0x145)]({'color':_0xe37326(0x132),'border':_0xe37326(0x188),'padding':'6px\x2012px','fontSize':_0xe37326(0x196),'fontWeight':_0xe37326(0x254),'borderRadius':_0xe37326(0x211),'cursor':_0xe37326(0x16c),'flexShrink':0x0,'transition':_0xe37326(0x103)},_0x4b40fc[_0xe37326(0x1f2)])})[_0xe37326(0x21e)](_0x4b40fc['buttonText'])['on'](_0xe37326(0x152),function(){$(this)['css'](_0x4b40fc['buttonHoverCss']);})['on'](_0xe37326(0xca),function(){$(this)['css'](_0x4b40fc['buttonCss']);})['on']('click',_0x2a38a1=>{const _0x419c49=_0xe37326;_0x2a38a1['preventDefault'](),window[_0x419c49(0xc5)](_0x4b40fc[_0x419c49(0x226)],_0x419c49(0x143),'width=1200,height=800');});_0xf46120[_0xe37326(0x1d9)](_0x116a0e),_0xf46120[_0xe37326(0x1d9)](_0x18cdfd),_0x4229fb[_0xe37326(0x266)](_0xf46120);}function _0xb9d8f2(_0x44b401){const _0xc77482=_0x4f27ab;_0x2fe9c6({'bannerClass':_0xc77482(0x1a4),'bannerCss':{'backgroundColor':'#e9ecef','borderBottom':_0xc77482(0x110)},'messageHtml':_0xc77482(0x1dd),'messageCss':{'color':_0xc77482(0xe2)},'buttonText':_0xc77482(0xbb),'buttonCss':{'backgroundColor':_0xc77482(0x247)},'buttonHoverCss':{'backgroundColor':_0xc77482(0x21c)},'supportUrl':_0x44b401});}function _0x20b934(_0x592925){const _0x3c80d6=_0x4f27ab;_0x2fe9c6({'bannerClass':'licence-prof-expired-banner','bannerCss':{'backgroundColor':_0x3c80d6(0xdf),'borderBottom':_0x3c80d6(0x14a)},'messageHtml':'Your\x20<strong>Professional\x20License</strong>\x20has\x20expired.\x20Please\x20renew\x20your\x20license\x20to\x20ensure\x20continued\x20access\x20to\x20support\x20and\x20updates.','messageCss':{'color':_0x3c80d6(0x22e)},'buttonText':'Renew\x20Now','buttonCss':{'backgroundColor':_0x3c80d6(0x182)},'buttonHoverCss':{'backgroundColor':'#c82333'},'supportUrl':_0x592925});}const _0x596684=_0x4f27ab(0x261),_0x5e2525=_0x4f27ab(0x17e),_0x45f8ce=_0x4f27ab(0x219),_0x1862cf=_0x4f27ab(0x1b7),_0x14fef9=_0x4f27ab(0x202),_0x1459f8='ns=0;i=45',_0x225545=_0x4f27ab(0x24f);var _0x25f064;(function(_0x3f4784){const _0x10347f=_0x4f27ab;_0x3f4784[_0x3f4784['Forward']=0x0]=_0x10347f(0x25b),_0x3f4784[_0x3f4784[_0x10347f(0x107)]=0x1]=_0x10347f(0x107),_0x3f4784[_0x3f4784[_0x10347f(0xd7)]=0x2]=_0x10347f(0xd7),_0x3f4784[_0x3f4784[_0x10347f(0x194)]=0x3]=_0x10347f(0x194);}(_0x25f064||(_0x25f064={})));var _0xebb7e3;(function(_0x1bda0b){const _0x22847b=_0x4f27ab;_0x1bda0b[_0x1bda0b[_0x22847b(0xec)]=0x0]=_0x22847b(0xec),_0x1bda0b[_0x1bda0b[_0x22847b(0x1e9)]=0x1]=_0x22847b(0x1e9),_0x1bda0b[_0x1bda0b['Variable']=0x2]='Variable',_0x1bda0b[_0x1bda0b[_0x22847b(0x1b3)]=0x4]='Method',_0x1bda0b[_0x1bda0b[_0x22847b(0x1e5)]=0x8]='ObjectType',_0x1bda0b[_0x1bda0b[_0x22847b(0xf2)]=0x10]=_0x22847b(0xf2),_0x1bda0b[_0x1bda0b['ReferenceType']=0x20]=_0x22847b(0x1d2),_0x1bda0b[_0x1bda0b[_0x22847b(0xf3)]=0x40]=_0x22847b(0xf3),_0x1bda0b[_0x1bda0b['View']=0x80]=_0x22847b(0x1ee);}(_0xebb7e3||(_0xebb7e3={})));var _0x3fa9f2;(function(_0x2b8dff){const _0x297617=_0x4f27ab;_0x2b8dff[_0x2b8dff[_0x297617(0x1e9)]=0x1]=_0x297617(0x1e9),_0x2b8dff[_0x2b8dff[_0x297617(0x25d)]=0x2]=_0x297617(0x25d),_0x2b8dff[_0x2b8dff[_0x297617(0x1b3)]=0x4]=_0x297617(0x1b3),_0x2b8dff[_0x2b8dff['ObjectType']=0x8]='ObjectType',_0x2b8dff[_0x2b8dff[_0x297617(0xf2)]=0x10]=_0x297617(0xf2),_0x2b8dff[_0x2b8dff[_0x297617(0x1d2)]=0x20]='ReferenceType',_0x2b8dff[_0x2b8dff[_0x297617(0xf3)]=0x40]=_0x297617(0xf3),_0x2b8dff[_0x2b8dff[_0x297617(0x1ee)]=0x80]=_0x297617(0x1ee);}(_0x3fa9f2||(_0x3fa9f2={})));var _0x2e9f07;(function(_0x581d99){const _0xd15c46=_0x4f27ab;_0x581d99[_0x581d99[_0xd15c46(0x1d2)]=0x1]=_0xd15c46(0x1d2),_0x581d99[_0x581d99[_0xd15c46(0x159)]=0x2]=_0xd15c46(0x159),_0x581d99[_0x581d99['NodeClass']=0x4]=_0xd15c46(0xe8),_0x581d99[_0x581d99['BrowseName']=0x8]='BrowseName',_0x581d99[_0x581d99['DisplayName']=0x10]=_0xd15c46(0x233),_0x581d99[_0x581d99['TypeDefinition']=0x20]=_0xd15c46(0x101);}(_0x2e9f07||(_0x2e9f07={})));function _0x5b84c4(_0x2b3523){const _0x437cab=_0x4f27ab;switch(_0x2b3523){case'Organizes':return _0x596684;case _0x437cab(0x146):return _0x1862cf;case _0x437cab(0xed):return _0x45f8ce;case _0x437cab(0x192):return _0x14fef9;case _0x437cab(0x129):return _0x1459f8;case _0x437cab(0xea):return _0x225545;}}const _0x573736=(_0x17f826,_0x305178,_0x43408f)=>_0x28793f(void 0x0,[_0x17f826,_0x305178,_0x43408f],void 0x0,function*({endpointNode:_0x26714d,endpoint:_0xb3723e},_0x24a2ce,_0x56a6e5){const _0x47560a=_0x4f27ab,_0x2aae3f=Object[_0x47560a(0x145)](Object['assign']({},_0x56a6e5),{'nodeId':_0x24a2ce,'resultMask':0x3f}),_0x58042d=_0x124c2e(_0x47560a(0x23e)),_0x214d20=yield fetch(_0x58042d,{'method':_0x47560a(0x263),'body':JSON[_0x47560a(0x1c5)]({'endpointNode':_0x26714d,'endpoint':_0xb3723e,'browseDescription':_0x2aae3f}),'headers':{'Content-Type':'application/json'}});if(_0x214d20[_0x47560a(0x126)]!==0xc8)return console[_0x47560a(0x1cb)](_0x47560a(0xb0),_0x214d20[_0x47560a(0x126)],_0x214d20[_0x47560a(0xfb)]),{'references':[]};const _0x43cd4c=yield _0x214d20[_0x47560a(0x105)](),_0x251553=_0x43cd4c[_0x47560a(0x24a)][_0x47560a(0x1a1)]||[];return{'references':_0x251553};}),_0x556d4e=_0x466ea8=>{const _0x193c8c=_0x4f27ab;switch(_0x466ea8[_0x193c8c(0xc0)]){case _0x193c8c(0x1e9):if(_0x466ea8[_0x193c8c(0x245)]===_0x596684);if(_0x466ea8[_0x193c8c(0xb8)]===_0x5e2525||_0x466ea8[_0x193c8c(0x245)]==='i=61')return{'icon':_0x193c8c(0xe9),'color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':_0x193c8c(0x11f),'color':'SeaGreen'};case'Variable':if(_0x466ea8[_0x193c8c(0x245)]===_0x45f8ce)return{'icon':_0x193c8c(0x1f4),'color':_0x193c8c(0x235)};else return _0x466ea8['referenceTypeId']===_0x1862cf?{'icon':_0x193c8c(0x1f4),'color':_0x193c8c(0xf0)}:{'icon':_0x193c8c(0x1f4),'color':'CadetBlue'};case _0x193c8c(0x1b3):return{'icon':_0x193c8c(0x1ff),'color':_0x193c8c(0x1aa)};case'ObjectType':return{'icon':_0x193c8c(0x11f),'color':_0x193c8c(0x241)};case _0x193c8c(0xf2):return{'icon':_0x193c8c(0x23f),'color':_0x193c8c(0x241)};case _0x193c8c(0xf3):return{'icon':_0x193c8c(0x144),'color':_0x193c8c(0x191)};}return{'icon':_0x193c8c(0x113),'color':_0x193c8c(0x20c)};},_0x858dda={'referenceTypeId':_0x5b84c4(_0x4f27ab(0x192)),'includeSubtypes':!![],'browseDirection':_0x25f064[_0x4f27ab(0x25b)],'nodeClassMask':_0xebb7e3['Variable']|_0xebb7e3[_0x4f27ab(0x1e9)]|_0xebb7e3[_0x4f27ab(0x1b3)],'resultMask':0x3f},_0x18afb3={'referenceTypeId':_0x5b84c4(_0x4f27ab(0xc2)),'includeSubtypes':!![],'browseDirection':_0x25f064[_0x4f27ab(0x25b)],'nodeClassMask':_0xebb7e3[_0x4f27ab(0x25d)]|_0xebb7e3['Object']|_0xebb7e3[_0x4f27ab(0x1b3)],'resultMask':0x3f},_0x316fc6=(_0xe97774,_0xc9d3ee)=>_0x28793f(void 0x0,[_0xe97774,_0xc9d3ee],void 0x0,function*({endpointNode:_0x436099,endpoint:_0x3d842d},{nodeId:_0x3bc749,rootNodeId:_0x24398a,isType:_0x250cad}){const _0x11e312=_0x4f27ab,_0x3edb35=_0x124c2e(_0x11e312(0xce)),_0x43a509=yield fetch(_0x3edb35,{'method':_0x11e312(0x263),'body':JSON[_0x11e312(0x1c5)]({'endpointNode':_0x436099,'endpoint':_0x3d842d,'nodeId':_0x3bc749,'rootNodeId':_0x24398a,'isType':_0x250cad}),'headers':{'Content-Type':_0x11e312(0x112)}});if(_0x43a509[_0x11e312(0x126)]!==0xc8)return null;const _0x205776=yield _0x43a509[_0x11e312(0x105)]();return _0x205776[_0x11e312(0x14e)];}),_0x3ae4ad=(_0x54ee62,_0x97bd21)=>{const _0x11d6d3=_0x4f27ab;if(_0x54ee62[_0x11d6d3(0xef)]!==_0x11d6d3(0x171))return _0x54ee62[_0x11d6d3(0xbf)];switch(_0x97bd21){case'browsePath':return _0x54ee62['bp_indexed'];case'aliasedBrowsePath':return _0x54ee62[_0x11d6d3(0x15f)]||_0x54ee62[_0x11d6d3(0x251)];case _0x11d6d3(0x1ce):return _0x54ee62[_0x11d6d3(0x1bd)]||_0x54ee62[_0x11d6d3(0x21d)];case'nsuNodeID':return _0x54ee62[_0x11d6d3(0x21d)];default:return _0x54ee62[_0x11d6d3(0x15e)];}},_0x106f7d=_0x568355=>{const _0x52386c=_0x4f27ab;if(_0x568355[_0x52386c(0xef)]!==_0x52386c(0x171))return'statusCode:\x20'+_0x568355[_0x52386c(0xef)];else{const _0x32f5d2=[];return _0x32f5d2['push'](_0x52386c(0xc3)+_0x568355[_0x52386c(0x15e)]),_0x32f5d2[_0x52386c(0x1fd)]('browse\x20path:\x20'+_0x568355[_0x52386c(0x251)]),_0x32f5d2['push'](_0x52386c(0x134)+_0xebb7e3[_0x568355[_0x52386c(0xc0)]]),_0x568355[_0x52386c(0x21d)]&&_0x32f5d2[_0x52386c(0x1fd)](_0x52386c(0x21b)+_0x568355[_0x52386c(0x21d)]),_0x568355[_0x52386c(0x1bd)]&&_0x32f5d2[_0x52386c(0x1fd)](_0x52386c(0x1ef)+_0x568355[_0x52386c(0x1bd)]),_0x568355[_0x52386c(0x251)]&&_0x32f5d2[_0x52386c(0x1fd)](_0x52386c(0x13c)+_0x568355[_0x52386c(0x15f)]),_0x32f5d2[_0x52386c(0xb1)]('\x0a');}};function _0x565aba(_0x4196b2){const _0x3eaeb0=_0x4f27ab;if(_0x4196b2[_0x3eaeb0(0x268)](/^nsu=/))return'nsuNodeID';if(_0x4196b2[_0x3eaeb0(0x268)](/^(ns=.*;)?(i|b|s|g)=/))return _0x3eaeb0(0x15e);if(_0x4196b2[_0x3eaeb0(0x268)](/^nsa=/))return _0x3eaeb0(0x1ce);if(_0x4196b2[_0x3eaeb0(0x268)](/^(\/|\.)[0-9]+:/))return _0x3eaeb0(0x14e);if(_0x4196b2[_0x3eaeb0(0x268)](/^(\/|\.).*:/))return _0x3eaeb0(0x14e);}function _0x4c3ff2(_0x16b946){const _0x22223c=_0x4f27ab,_0x10b33b=_0x565aba(_0x16b946);switch(_0x10b33b){case _0x22223c(0x15e):return'n';case _0x22223c(0x1ce):return'na';case'nsuNodeID':return _0x22223c(0x224);case'browsePath':return'b';case _0x22223c(0xcf):return'ab';default:return't';}}function _0x2d9393(_0x163d32){const _0x16ec92=_0x4f27ab;let _0x4c49c5;switch(_0x163d32){case'n':_0x4c49c5=_0x16ec92(0x15e);break;case'na':_0x4c49c5=_0x16ec92(0x1ce);break;case _0x16ec92(0x224):_0x4c49c5=_0x16ec92(0x162);break;case'b':_0x4c49c5=_0x16ec92(0x14e);break;case'ab':_0x4c49c5=_0x16ec92(0xcf);break;}return _0x4c49c5;}function _0x5e6e04(_0x5b33ff){const _0x104aa4=_0x4f27ab;switch(_0x5b33ff){case _0x104aa4(0x15e):return'n';case'aliasedNodeId':return'na';case'nsuNodeID':return _0x104aa4(0x224);case _0x104aa4(0x14e):return'b';case _0x104aa4(0xcf):return'ab';default:return't';}}const _0xd58f17=(_0x598d6e,_0x7029e5)=>_0x28793f(void 0x0,[_0x598d6e,_0x7029e5],void 0x0,function*({endpointNode:_0x1c8cb5,endpoint:_0x1e83b2},_0x5b79cb){const _0x56c7ce=_0x4f27ab,_0x4e464e=_0x124c2e(_0x56c7ce(0x12c)),_0x11342d=_0x1c8cb5['id'],_0x5af0fb=RED['nodes']['node'](_0x11342d);console[_0x56c7ce(0x1cb)](_0x5af0fb['namespaceAliases']),_0x5af0fb[_0x56c7ce(0x195)];const _0x4ab2bb=_0x1c8cb5['namespaceAliases'],_0x424d01=yield fetch(_0x4e464e,{'method':_0x56c7ce(0x263),'body':JSON['stringify']({'endpointNode':_0x1c8cb5,'endpoint':_0x1e83b2,'nodeId':_0x5b79cb,'namespaceAliases':_0x4ab2bb}),'headers':{'Content-Type':_0x56c7ce(0x112)}}),_0x25d00b=yield _0x424d01[_0x56c7ce(0x105)]();return{'json':_0x25d00b,'data':_0x424d01};}),_0x3c3cba=(_0x1b9dee,_0x5489f4,_0x1bbcc0,_0x63489a)=>_0x28793f(void 0x0,[_0x1b9dee,_0x5489f4,_0x1bbcc0,_0x63489a],void 0x0,function*({endpointNode:_0x34d458,endpoint:_0x428286},_0x586b2e,_0x138e99,_0x589c90){const _0x4bac49=_0x4f27ab,_0x114da2=_0x138e99[_0x4bac49(0x138)](),{json:_0xc39231,data:_0x32e1b6}=yield _0xd58f17({'endpointNode':_0x34d458,'endpoint':_0x428286},_0x114da2),_0x3d8f14=(_0xea9926,_0x5da121)=>{const _0x4705cd=_0x4bac49;_0x589c90[_0x4705cd(0x21e)](_0xea9926)[_0x4705cd(0x11a)](_0x4705cd(0x18e))[_0x4705cd(0x11a)](_0x5da121),_0x589c90[_0x4705cd(0x24c)](),setTimeout(()=>{const _0x338480=_0x4705cd;_0x589c90[_0x338480(0x199)](_0x5da121),_0x589c90[_0x338480(0xd0)]();},0xbb8);};if(_0x32e1b6['status']!==0xc8)return _0x3d8f14(_0x4bac49(0xbd)+_0x114da2,_0x4bac49(0x10d)),![];else{if(_0xc39231[_0x4bac49(0xef)][_0x4bac49(0x268)](/Good/)){const _0x2c36f2=_0x106f7d(_0xc39231);_0x138e99[_0x4bac49(0x217)]('title',_0x2c36f2);const _0x255d24=_0x3ae4ad(_0xc39231,_0x586b2e);return _0x138e99[_0x4bac49(0x138)](_0x255d24),_0x138e99[_0x4bac49(0x26a)](_0x4bac49(0x17b)),_0x3d8f14(_0x4bac49(0x171),'ok'),!![];}else return _0x138e99['val'](''+_0x114da2),_0x3d8f14(_0xc39231[_0x4bac49(0xef)]+'\x20'+_0x32e1b6[_0x4bac49(0xfb)],_0x4bac49(0x10d)),![];}});function _0x71f554(_0x451504,_0x2afb51){return _0x28793f(this,void 0x0,void 0x0,function*(){const _0x30b747=_0x3740,_0x5e4951=_0x451504[_0x30b747(0x148)]('value'),_0xcfe85=yield _0x573736(_0x2afb51,_0x5e4951,_0x858dda),_0x331eb7=yield _0x573736(_0x2afb51,_0x5e4951,_0x18afb3);return{'references':[..._0xcfe85[_0x30b747(0x1a1)],..._0x331eb7[_0x30b747(0x1a1)]]};});}const _0x38653d={'referenceTypeId':_0x5b84c4('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x25f064['Forward'],'nodeClassMask':_0xebb7e3[_0x4f27ab(0x1d2)]|_0xebb7e3[_0x4f27ab(0x1e5)]|_0xebb7e3[_0x4f27ab(0xf3)]|_0xebb7e3['VariableType'],'resultMask':0x3f};function _0x3e8101(_0x3356f0,_0x5e103f){return _0x28793f(this,void 0x0,void 0x0,function*(){const _0x3425b6=_0x3740,_0x7c1201=_0x3356f0[_0x3425b6(0x148)](_0x3425b6(0xb2)),_0x1eb5ad=yield _0x573736(_0x5e103f,_0x7c1201,_0x38653d);return _0x1eb5ad;});}const _0xda91e2=_0x319d2d=>{const _0x2d09c7=_0x4f27ab;var _0x15cdec,_0x4326c4,_0x392ff3,_0x4cd737;if(!(_0x319d2d===null||_0x319d2d===void 0x0?void 0x0:_0x319d2d[_0x2d09c7(0x15e)])){const _0x3283aa=$(_0x2d09c7(0x1c0));return _0x3283aa;}const _0x1548a6=_0x319d2d[_0x2d09c7(0x15e)]['toString'](),_0x5216bf=((_0x15cdec=_0x319d2d[_0x2d09c7(0x178)])===null||_0x15cdec===void 0x0?void 0x0:_0x15cdec['text'])||((_0x4326c4=_0x319d2d[_0x2d09c7(0x228)])===null||_0x4326c4===void 0x0?void 0x0:_0x4326c4[_0x2d09c7(0x1f6)])||_0x319d2d['nodeId'][_0x2d09c7(0x1b9)](),{icon:_0x2d2953,color:_0x16065c}=_0x556d4e(_0x319d2d),_0x475c7c='('+_0x319d2d[_0x2d09c7(0x15e)][_0x2d09c7(0x1b9)]()+')\x20'+(((_0x392ff3=_0x319d2d[_0x2d09c7(0x228)])===null||_0x392ff3===void 0x0?void 0x0:_0x392ff3[_0x2d09c7(0x1f6)])||((_0x4cd737=_0x319d2d[_0x2d09c7(0x178)])===null||_0x4cd737===void 0x0?void 0x0:_0x4cd737[_0x2d09c7(0x21e)])||''),_0x1bac01=$('<li\x20key=\x22'+_0x319d2d[_0x2d09c7(0x15e)][_0x2d09c7(0x1b9)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x475c7c+_0x2d09c7(0x232)+_0x2d2953+_0x2d09c7(0x1fb)+_0x16065c+_0x2d09c7(0