{"templateId":"markdown","versions":[{"version":"v1.40","label":"v1.40 STS","link":"/products/custody/v1.40/concepts/governance/policies","default":true,"active":false,"folderId":"c15a2701"},{"version":"v1.39","label":"v1.39 STS","link":"/products/custody/v1.39/concepts/governance/policies","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.38","label":"v1.38 STS","link":"/products/custody/v1.38/concepts/governance/policies","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.34","label":"v1.34 LTS","link":"/products/custody/v1.34/concepts/governance/policies","default":false,"active":true,"folderId":"c15a2701"},{"version":"v1.26","label":"v1.26 LTS","link":"/products/custody/v1.26/concepts/governance/policies","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.19","label":"v1.19 LTS","link":"/products/custody/v1.19/concepts/governance/policies","default":false,"active":false,"folderId":"c15a2701"},{"version":"v1.15","label":"v1.15 LTS","link":"/products/custody/v1.15/concepts/governance/policies","default":false,"active":false,"folderId":"c15a2701"}],"sharedDataIds":{"sidebar":"sidebar-products/custody/@v1.15/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Policies","description":"User guides, API reference, and support resources.","siteUrl":"https://docs.ripple.com","lang":"en-US","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"policies","__idx":0},"children":["Policies"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Executive summary"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["A policy defines the approval rules for a specific type of action: who must approve, how many approvals are needed, and under what conditions."]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Policies match intents by type (e.g., transfers, user creation) and conditions (e.g., amount > $10,000)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Workflows specify multi-step approval chains with role requirements and quorum counts."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Scope controls where the policy applies in your domain hierarchy."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Rank determines priority when multiple policies could match the same intent."]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"success","name":"Why this matters"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Policies are your primary control mechanism for custody operations—they are what distinguish institutional-grade custody from a simple wallet. Well-designed policies enable you to enforce spending limits, require multi-party approval for high-value transactions, and implement compliance controls (like geographic restrictions or time-based rules). This is a key differentiator for Ripple Custody: you can encode arbitrarily complex business rules that would require manual processes with other custodians."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["For architects and operators"]},": Start with restrictive policies and loosen as needed. Use conditions with JavaScript expressions for dynamic rules. Test policies thoroughly in non-production environments — a missing policy results in rejected intents, and overly broad policies can create security gaps."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-is-a-policy","__idx":1},"children":["What is a policy?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A policy is a rule that specifies:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What"]},": Which intent types the policy governs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["When"]},": Conditions that determine if the policy applies"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Who"]},": Which roles must approve and how many approvals are needed"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Where"]},": The scope of domains where the policy applies"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a user submits an intent, the system finds the matching policy and enforces its approval requirements."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"policy-components","__idx":2},"children":["Policy components"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every policy consists of these elements:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Component"},"children":["Component"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Example"},"children":["Example"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Intent types"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Operations this policy governs"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["[\"v0_CreateTransferOrder\"]"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Condition"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["JavaScript expression filtering when policy applies"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount > 1000000"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Workflow"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Approval steps with roles and quorum counts"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2 operators, then 1 CFO"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Scope"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Where the policy applies in the domain hierarchy"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SelfAndDescendants"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rank"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Priority when multiple policies match (0-999)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["500"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-policies-are-selected","__idx":3},"children":["How policies are selected"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When an intent is submitted, the system selects the applicable policy through the following steps:"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-filter-by-criteria","__idx":4},"children":["1. Filter by criteria"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The system identifies policies that could apply:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Intent type matches (or policy applies to all types)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Scope includes the target domain."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Policy is not locked."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-evaluate-conditions","__idx":5},"children":["2. Evaluate conditions"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For each matching policy, the JavaScript condition is evaluated:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Conditions have access to intent data and referenced entities."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Only policies where the condition evaluates to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," proceed."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Policies without conditions automatically pass."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-select-by-rank","__idx":6},"children":["3. Select by rank"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If multiple policies remain, the highest-ranked policy is selected:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Higher rank = higher priority (range: 0-999)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If ranks are equal, the older policy wins."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"result","__idx":7},"children":["Result"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["One policy selected"]},": Intent follows that policy's workflow."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No policy matches"]},": Intent fails (no applicable governance rule)."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"policy-scope","__idx":8},"children":["Policy scope"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["scope"]}," setting determines where a policy applies relative to its domain:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Scope"},"children":["Scope"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Applies To"},"children":["Applies To"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Self"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Only intents targeting this domain"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Descendants"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Only intents targeting subdomains"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SelfAndDescendants"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Both this domain and all subdomains"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Scope works together with the domain's ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.34/concepts/governance/domains#governing-strategies"},"children":["governing strategy"]}," to determine which policies apply."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"quorum-model","__idx":9},"children":["Quorum model"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Policies use a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["quorum model"]}," for approvals, requiring multiple signatures for sensitive operations."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"why-quorums-matter","__idx":10},"children":["Why quorums matter"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Benefit"},"children":["Benefit"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No single point of failure"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Compromising one user's credentials isn't enough"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Distributed trust"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Critical decisions require consensus"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Regulatory compliance"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Many regulations require multi-party approval"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Operational safety"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Reduces risk of mistakes or unauthorized actions"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"quorum-configuration","__idx":11},"children":["Quorum configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A workflow step specifies:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Role"]},": Which role can provide approvals"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Quorum"]},": How many approvals from that role are required"]}]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"flowchart LR\n    subgraph Workflow\n        S1[\"Step 1<br/>1× Operator\"]\n        S2[\"Step 2<br/>2× Supervisor\"]\n        S3[\"Step 3<br/>1× CFO\"]\n    end\n\n    S1 --> S2 --> S3 --> Execute[\"Execute\"]\n","diagramHtml":"<svg id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 755.28125px;\" viewBox=\"0 0 755.28125 164\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .error-icon{fill:#552222;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .error-text{fill:#552222;stroke:#552222;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edge-thickness-normal{stroke-width:1px;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edge-thickness-thick{stroke-width:3.5px;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edge-pattern-solid{stroke-dasharray:0;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .marker{fill:#333333;stroke:#333333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .marker.cross{stroke:#333333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 p{margin:0;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .cluster-label text{fill:#333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .cluster-label span{color:#333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .cluster-label span p{background-color:transparent;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .label text,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 span{fill:#333;color:#333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node rect,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node circle,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node ellipse,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node polygon,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .rough-node .label text,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node .label text,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .image-shape .label,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .icon-shape .label{text-anchor:middle;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .rough-node .label,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node .label,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .image-shape .label,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .icon-shape .label{text-align:center;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node.clickable{cursor:pointer;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .arrowheadPath{fill:#333333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edgePath .path{stroke:#333333;stroke-width:1px;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .flowchart-link{stroke:#333333;fill:none;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .cluster text{fill:#333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .cluster span{color:#333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 rect.text{fill:none;stroke-width:0;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .icon-shape,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .icon-shape p,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .icon-shape .label rect,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 .node .neo-node{stroke:#9370DB;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].node rect,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].cluster rect,#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38-Workflow\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"571.46875\" height=\"148\"></rect><g class=\"cluster-label\" transform=\"translate(260.984375, 8)\"><foreignObject width=\"65.5\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Workflow</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M178.828,82L182.995,82C187.161,82,195.495,82,203.161,82C210.828,82,217.828,82,221.328,82L224.828,82\" id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38-L_S1_S2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_S1_S2_0\" data-points=\"W3sieCI6MTc4LjgyODEyNSwieSI6ODJ9LHsieCI6MjAzLjgyODEyNSwieSI6ODJ9LHsieCI6MjI4LjgyODEyNSwieSI6ODJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-pointEnd)\"></path><path d=\"M388,82L392.167,82C396.333,82,404.667,82,412.333,82C420,82,427,82,430.5,82L434,82\" id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38-L_S2_S3_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_S2_S3_0\" data-points=\"W3sieCI6Mzg4LCJ5Ijo4Mn0seyJ4Ijo0MTMsInkiOjgyfSx7IngiOjQzOCwieSI6ODJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-pointEnd)\"></path><path d=\"M554.469,82L558.635,82C562.802,82,571.135,82,579.469,82C587.802,82,596.135,82,603.802,82C611.469,82,618.469,82,621.969,82L625.469,82\" id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38-L_S3_Execute_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_S3_Execute_0\" data-points=\"W3sieCI6NTU0LjQ2ODc1LCJ5Ijo4Mn0seyJ4Ijo1NzkuNDY4NzUsInkiOjgyfSx7IngiOjYwNC40Njg3NSwieSI6ODJ9LHsieCI6NjI5LjQ2ODc1LCJ5Ijo4Mn1d\" data-look=\"classic\" marker-end=\"url(#diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_S1_S2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_S2_S3_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_S3_Execute_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38-flowchart-S1-0\" data-look=\"classic\" transform=\"translate(105.9140625, 82)\"><rect class=\"basic label-container\" style=\"\" x=\"-72.9140625\" y=\"-39\" width=\"145.828125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-42.9140625, -24)\"><rect></rect><foreignObject width=\"85.828125\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Step 1<br>1× Operator</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38-flowchart-S2-1\" data-look=\"classic\" transform=\"translate(308.4140625, 82)\"><rect class=\"basic label-container\" style=\"\" x=\"-79.5859375\" y=\"-39\" width=\"159.171875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-49.5859375, -24)\"><rect></rect><foreignObject width=\"99.171875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Step 2<br>2× Supervisor</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38-flowchart-S3-2\" data-look=\"classic\" transform=\"translate(496.234375, 82)\"><rect class=\"basic label-container\" style=\"\" x=\"-58.234375\" y=\"-39\" width=\"116.46875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-28.234375, -24)\"><rect></rect><foreignObject width=\"56.46875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Step 3<br>1× CFO</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38-flowchart-Execute-6\" data-look=\"classic\" transform=\"translate(688.375, 82)\"><rect class=\"basic label-container\" style=\"\" x=\"-58.90625\" y=\"-27\" width=\"117.8125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-28.90625, -12)\"><rect></rect><foreignObject width=\"57.8125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Execute</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs><defs><filter id=\"diagram-c33da4b2f9519c4bb5c506991a0c5f33f33ae7e300f2394300d71462bd2cda38-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"></feDropShadow></filter></defs></svg>","diagramHtmlDark":"<svg id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" class=\"flowchart\" style=\"max-width: 755.28125px;\" viewBox=\"0 0 755.28125 164\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\"><style>\n    #diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 foreignObject {\n      overflow: visible;\n    }\n  </style><style>#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .error-icon{fill:#a44141;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .error-text{fill:#ddd;stroke:#ddd;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edge-thickness-normal{stroke-width:1px;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edge-thickness-thick{stroke-width:3.5px;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edge-pattern-solid{stroke-dasharray:0;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .marker.cross{stroke:lightgrey;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 p{margin:0;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .label{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;color:#ccc;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .cluster-label text{fill:#F9FFFE;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .cluster-label span{color:#F9FFFE;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .cluster-label span p{background-color:transparent;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .label text,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 span{fill:#ccc;color:#ccc;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node rect,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node circle,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node ellipse,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node polygon,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node path{fill:#1f2020;stroke:#ccc;stroke-width:1px;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .rough-node .label text,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node .label text,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .image-shape .label,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .icon-shape .label{text-anchor:middle;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .rough-node .label,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node .label,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .image-shape .label,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .icon-shape .label{text-align:center;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node.clickable{cursor:pointer;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .root .anchor path{fill:lightgrey!important;stroke-width:0;stroke:lightgrey;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .arrowheadPath{fill:lightgrey;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edgePath .path{stroke:lightgrey;stroke-width:1px;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .flowchart-link{stroke:lightgrey;fill:none;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edgeLabel{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edgeLabel p{background-color:hsl(0, 0%, 34.4117647059%);}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .edgeLabel rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .labelBkg{background-color:rgba(87.75, 87.75, 87.75, 0.5);}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .cluster rect{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:rgba(255, 255, 255, 0.25);stroke-width:1px;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .cluster text{fill:#F9FFFE;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .cluster span{color:#F9FFFE;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:12px;background:hsl(20, 1.5873015873%, 12.3529411765%);border:1px solid rgba(255, 255, 255, 0.25);border-radius:2px;pointer-events:none;z-index:100;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#ccc;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 rect.text{fill:none;stroke-width:0;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .icon-shape,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .image-shape{background-color:hsl(0, 0%, 34.4117647059%);text-align:center;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .icon-shape p,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .image-shape p{background-color:hsl(0, 0%, 34.4117647059%);padding:2px;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .icon-shape .label rect,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .image-shape .label rect{opacity:0.5;background-color:hsl(0, 0%, 34.4117647059%);fill:hsl(0, 0%, 34.4117647059%);}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 .node .neo-node{stroke:#ccc;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].node rect,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].cluster rect,#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].node polygon{stroke:url(#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].node path{stroke:url(#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-gradient);stroke-width:1px;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].node circle{stroke:url(#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\"><path d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\"><path d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\"><polygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></polygon></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\"><circle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"></circle></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\"><path d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"></path></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"></path></marker><marker id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\"><path d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"></path></marker><g class=\"root\"><g class=\"clusters\"><g class=\"cluster\" id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-Workflow\" data-look=\"classic\"><rect style=\"\" x=\"8\" y=\"8\" width=\"571.46875\" height=\"148\"></rect><g class=\"cluster-label\" transform=\"translate(260.984375, 8)\"><foreignObject width=\"65.5\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5;\"><span class=\"nodeLabel\"><p>Workflow</p></span></div></foreignObject></g></g></g><g class=\"edgePaths\"><path d=\"M178.828,82L182.995,82C187.161,82,195.495,82,203.161,82C210.828,82,217.828,82,221.328,82L224.828,82\" id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-L_S1_S2_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_S1_S2_0\" data-points=\"W3sieCI6MTc4LjgyODEyNSwieSI6ODJ9LHsieCI6MjAzLjgyODEyNSwieSI6ODJ9LHsieCI6MjI4LjgyODEyNSwieSI6ODJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-pointEnd)\"></path><path d=\"M388,82L392.167,82C396.333,82,404.667,82,412.333,82C420,82,427,82,430.5,82L434,82\" id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-L_S2_S3_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_S2_S3_0\" data-points=\"W3sieCI6Mzg4LCJ5Ijo4Mn0seyJ4Ijo0MTMsInkiOjgyfSx7IngiOjQzOCwieSI6ODJ9XQ==\" data-look=\"classic\" marker-end=\"url(#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-pointEnd)\"></path><path d=\"M554.469,82L558.635,82C562.802,82,571.135,82,579.469,82C587.802,82,596.135,82,603.802,82C611.469,82,618.469,82,621.969,82L625.469,82\" id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-L_S3_Execute_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_S3_Execute_0\" data-points=\"W3sieCI6NTU0LjQ2ODc1LCJ5Ijo4Mn0seyJ4Ijo1NzkuNDY4NzUsInkiOjgyfSx7IngiOjYwNC40Njg3NSwieSI6ODJ9LHsieCI6NjI5LjQ2ODc1LCJ5Ijo4Mn1d\" data-look=\"classic\" marker-end=\"url(#diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6_flowchart-v2-pointEnd)\"></path></g><g class=\"edgeLabels\"><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_S1_S2_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_S2_S3_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g><g class=\"edgeLabel\"><g class=\"label\" data-id=\"L_S3_Execute_0\" transform=\"translate(0, 0)\"><foreignObject width=\"0\" height=\"0\"><div xmlns=\"http://www.w3.org/1999/xhtml\" class=\"labelBkg\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"edgeLabel\"></span></div></foreignObject></g></g></g><g class=\"nodes\"><g class=\"node default\" id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-flowchart-S1-0\" data-look=\"classic\" transform=\"translate(105.9140625, 82)\"><rect class=\"basic label-container\" style=\"\" x=\"-72.9140625\" y=\"-39\" width=\"145.828125\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-42.9140625, -24)\"><rect></rect><foreignObject width=\"85.828125\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Step 1<br>1× Operator</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-flowchart-S2-1\" data-look=\"classic\" transform=\"translate(308.4140625, 82)\"><rect class=\"basic label-container\" style=\"\" x=\"-79.5859375\" y=\"-39\" width=\"159.171875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-49.5859375, -24)\"><rect></rect><foreignObject width=\"99.171875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Step 2<br>2× Supervisor</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-flowchart-S3-2\" data-look=\"classic\" transform=\"translate(496.234375, 82)\"><rect class=\"basic label-container\" style=\"\" x=\"-58.234375\" y=\"-39\" width=\"116.46875\" height=\"78\"></rect><g class=\"label\" style=\"\" transform=\"translate(-28.234375, -24)\"><rect></rect><foreignObject width=\"56.46875\" height=\"48\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Step 3<br>1× CFO</p></span></div></foreignObject></g></g><g class=\"node default\" id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-flowchart-Execute-6\" data-look=\"classic\" transform=\"translate(688.375, 82)\"><rect class=\"basic label-container\" style=\"\" x=\"-58.90625\" y=\"-27\" width=\"117.8125\" height=\"54\"></rect><g class=\"label\" style=\"\" transform=\"translate(-28.90625, -12)\"><rect></rect><foreignObject width=\"57.8125\" height=\"24\"><div xmlns=\"http://www.w3.org/1999/xhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\"><span class=\"nodeLabel\"><p>Execute</p></span></div></foreignObject></g></g></g></g></g><defs><filter id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-drop-shadow\" height=\"130%\" width=\"130%\"><feDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><defs><filter id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-drop-shadow-small\" height=\"150%\" width=\"150%\"><feDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#FFFFFF\"></feDropShadow></filter></defs><linearGradient id=\"diagram-4d24197d556835202d0325d3461972d287387a49344f9ad0d6c433c26bbb52d6-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"><stop offset=\"0%\" stop-color=\"#cccccc\" stop-opacity=\"1\"></stop><stop offset=\"100%\" stop-color=\"hsl(180, 0%, 18.3529411765%)\" stop-opacity=\"1\"></stop></linearGradient></svg>"},"children":["flowchart LR\n    subgraph Workflow\n        S1[\"Step 1<br/>1× Operator\"]\n        S2[\"Step 2<br/>2× Supervisor\"]\n        S3[\"Step 3<br/>1× CFO\"]\n    end\n\n    S1 --> S2 --> S3 --> Execute[\"Execute\"]\n"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"quorum-types","__idx":12},"children":["Quorum types"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Pattern"},"children":["Pattern"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Use Case"},"children":["Use Case"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Single approver"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1 approval from 1 role"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Low-risk operations"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Dual control"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2 approvals from same role"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Standard operations"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Multi-role"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Approvals from different roles"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["High-risk operations"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sequential"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Approval steps in order"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Escalation workflows"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"policy-inheritance","__idx":13},"children":["Policy inheritance"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In a domain hierarchy, multiple policies may apply to a single intent:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Target domain policy"]},": Policy in the domain where the intent executes"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Ancestor domain policies"]},": Policies from parent domains with scope that includes descendants"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The domain's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["governing strategy"]}," determines how these interact:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ConsiderDescendants"]},": Both parent and child policies apply"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CoerceDescendants"]},": Parent policies override child policies"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For details, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.34/concepts/governance/domains#governing-strategies"},"children":["Governing strategies"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"breakglass-policies","__idx":14},"children":["Breakglass policies"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["breakglass policy"]}," provides emergency override capability:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Created in a parent domain (often root)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Has ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CoerceDescendants"]}," governing strategy"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Requires high quorum from senior roles"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Can override child domain policies in emergencies"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use cases:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Court orders requiring account freezes"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Recovery from misconfigured policies"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Lost user keys preventing normal approval"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For implementation, see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.34/get-started/design/policies/breakglass"},"children":["Breakglass policies"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"glossary","__idx":15},"children":["Glossary"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Term"},"children":["Term"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Definition"},"children":["Definition"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Policy"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A rule that defines who can approve specific types of intents and how many approvals are required"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Intent type"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The category of action a policy governs (e.g., ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CreateTransfer"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CreateUser"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UpdatePolicy"]},")"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Condition"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional criteria that must be met for a policy to apply (e.g., amount thresholds, asset types)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Workflow"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The sequence of approval steps required by a policy, defining roles and quorum for each step"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Quorum"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of approvals required from a specific role to complete a workflow step"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Scope"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Defines where a policy applies: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Self"]}," (this domain only), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Descendants"]}," (subdomains only), or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SelfAndDescendants"]}," (both)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rank"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A numeric priority (0-999) used to select between multiple matching policies; higher rank wins"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Governing strategy"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A domain setting that determines how parent policies interact with child policies: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ConsiderDescendants"]}," (additive) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CoerceDescendants"]}," (override)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Breakglass policy"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["An emergency policy that bypasses normal approval workflows, typically requiring elevated authorization"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Maker-checker"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A control pattern where the user who creates an intent (maker) cannot be the sole approver (checker)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Dual control"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A quorum pattern requiring two approvals from the same role"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Multi-role approval"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A workflow pattern requiring approvals from users with different roles"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":16},"children":["Next steps"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.34/overview/governance"},"children":["Governance framework"]},": Return to the governance overview"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.34/concepts/governance/domains"},"children":["Domains"]},": Learn about domain hierarchy and governing strategies"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.34/concepts/governance/intents"},"children":["Intents"]},": Understand intent lifecycle"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.34/concepts/governance/users-roles"},"children":["Users and roles"]},": Learn how users and roles work"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/custody/v1.34/get-started/design/policies"},"children":["Policy design"]},": Start implementing policies"]}]}]},"headings":[{"value":"Policies","id":"policies","depth":1},{"value":"What is a policy?","id":"what-is-a-policy","depth":2},{"value":"Policy components","id":"policy-components","depth":2},{"value":"How policies are selected","id":"how-policies-are-selected","depth":2},{"value":"1. Filter by criteria","id":"1-filter-by-criteria","depth":3},{"value":"2. Evaluate conditions","id":"2-evaluate-conditions","depth":3},{"value":"3. Select by rank","id":"3-select-by-rank","depth":3},{"value":"Result","id":"result","depth":3},{"value":"Policy scope","id":"policy-scope","depth":2},{"value":"Quorum model","id":"quorum-model","depth":2},{"value":"Why quorums matter","id":"why-quorums-matter","depth":3},{"value":"Quorum configuration","id":"quorum-configuration","depth":3},{"value":"Quorum types","id":"quorum-types","depth":3},{"value":"Policy inheritance","id":"policy-inheritance","depth":2},{"value":"Breakglass policies","id":"breakglass-policies","depth":2},{"value":"Glossary","id":"glossary","depth":2},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"seo":{"title":"Policies"}},"lastModified":"2026-04-07T19:14:09.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/custody/v1.34/concepts/governance/policies","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}