@icarusmx/creta 1.4.19 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +395 -0
- package/bin/creta.js +1645 -25
- package/docs/diagrams/README.md +131 -0
- package/docs/diagrams/architecture-overview.mmd +71 -0
- package/docs/diagrams/architecture.svg +1 -0
- package/docs/diagrams/ecosystem-integration.mmd +49 -0
- package/docs/diagrams/evolution-phases.mmd +49 -0
- package/docs/diagrams/output.svg +1 -0
- package/docs/diagrams/phase2-command-help-flow.mmd +51 -0
- package/docs/diagrams/user-journey.mmd +78 -0
- package/lib/data/command-help/cd.js +47 -0
- package/lib/data/command-help/git-add.js +43 -0
- package/lib/data/command-help/git-commit.js +39 -0
- package/lib/data/command-help/git-log.js +47 -0
- package/lib/data/command-help/git-push.js +35 -0
- package/lib/data/command-help/git-status.js +31 -0
- package/lib/data/command-help/index.js +30 -0
- package/lib/data/command-help/ls.js +51 -0
- package/lib/data/command-help/mkdir.js +31 -0
- package/lib/data/command-help/touch.js +26 -0
- package/lib/data/command-help/wc.js +43 -0
- package/lib/data/messages.js +16 -4
- package/lib/executors/CommandHelpExecutor.js +93 -0
- package/lib/papers/AccessControl.js +121 -0
- package/lib/papers/PapersExecutor.js +276 -0
- package/package.json +1 -4
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Creta Diagrams
|
|
2
|
+
|
|
3
|
+
Visual documentation for the Creta CLI evolution and architecture.
|
|
4
|
+
|
|
5
|
+
## Diagrams
|
|
6
|
+
|
|
7
|
+
### 1. Evolution Phases (`evolution-phases.mmd`)
|
|
8
|
+
**What it shows:** The three phases of Creta's evolution and how features stack as users grow.
|
|
9
|
+
|
|
10
|
+
- Phase 1 (Aprendiz): Interactive learning, curriculum, portfolio generation
|
|
11
|
+
- Phase 2 (Desarrollador): Command help system, quick references
|
|
12
|
+
- Phase 3 (Constructor): Authentication, ticket management, team workflow
|
|
13
|
+
|
|
14
|
+
**Key insight:** Users never lose access to previous phase features - they accumulate capabilities.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
### 2. Architecture Overview (`architecture-overview.mmd`)
|
|
19
|
+
**What it shows:** Technical architecture across all three phases.
|
|
20
|
+
|
|
21
|
+
**Phase 1 (Current - v1.4.16):**
|
|
22
|
+
- Builders, Executors, Data, Sandbox, Utils structure
|
|
23
|
+
- Interactive practice system components
|
|
24
|
+
- Lesson management architecture
|
|
25
|
+
|
|
26
|
+
**Phase 2 (In Development - v1.5.0):**
|
|
27
|
+
- Command routing logic
|
|
28
|
+
- Help system integration
|
|
29
|
+
- CommandHelpFormatter structure
|
|
30
|
+
|
|
31
|
+
**Phase 3 (Vision - v2.0.0+):**
|
|
32
|
+
- Authentication layer
|
|
33
|
+
- API client for team workspace
|
|
34
|
+
- Workflow management system
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
### 3. User Journey (`user-journey.mmd`)
|
|
39
|
+
**What it shows:** Complete user flow from student to professional developer.
|
|
40
|
+
|
|
41
|
+
**Journey stages:**
|
|
42
|
+
1. Join Discord → Install Node → Run Creta
|
|
43
|
+
2. Interactive practice → Complete lessons → Get hashes
|
|
44
|
+
3. Redeem hashes → Watch videos → Learn more
|
|
45
|
+
4. Build portfolio → Share → Graduate
|
|
46
|
+
5. Use command help as junior dev
|
|
47
|
+
6. Join professional team → Authenticated workflow
|
|
48
|
+
|
|
49
|
+
**Loops:**
|
|
50
|
+
- Learning loop: Discord ↔ CLI ↔ YouTube
|
|
51
|
+
- Development loop: Code → Need help → `creta ls` → Continue
|
|
52
|
+
- Professional loop: Check requirements → Work → Submit → Repeat
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### 4. Phase 2 Command Help Flow (`phase2-command-help-flow.mmd`)
|
|
57
|
+
**What it shows:** Detailed sequence diagram for the command help system (v1.5.0).
|
|
58
|
+
|
|
59
|
+
**Flow:**
|
|
60
|
+
1. User types `creta ls`
|
|
61
|
+
2. Router detects command help request
|
|
62
|
+
3. Load help content from data store
|
|
63
|
+
4. Format with chalk (colors, spacing, structure)
|
|
64
|
+
5. Display to user
|
|
65
|
+
|
|
66
|
+
**Handles:**
|
|
67
|
+
- Regular commands: `creta ls`
|
|
68
|
+
- Git subcommands: `creta git status`
|
|
69
|
+
- Unknown commands: Fall back to main menu
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### 5. Ecosystem Integration (`ecosystem-integration.mmd`)
|
|
74
|
+
**What it shows:** How Creta integrates with the broader Icarus ecosystem.
|
|
75
|
+
|
|
76
|
+
**Components:**
|
|
77
|
+
- **Discord:** Community hub, hash redemption
|
|
78
|
+
- **YouTube:** Hidden educational videos
|
|
79
|
+
- **Scythe:** Token rewards (ERC-20)
|
|
80
|
+
- **Constructor Network:** Professional community
|
|
81
|
+
|
|
82
|
+
**Flows:**
|
|
83
|
+
- Learning loop (Discord → CLI → YouTube)
|
|
84
|
+
- Economic layer (Milestones → Tokens → Governance)
|
|
85
|
+
- Graduation path (NFT certificates → Professional network)
|
|
86
|
+
- Phase evolution (Aprendiz → Desarrollador → Constructor)
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## How to View
|
|
91
|
+
|
|
92
|
+
### Online Viewers:
|
|
93
|
+
1. **Mermaid Live Editor:** https://mermaid.live/
|
|
94
|
+
- Copy/paste diagram content
|
|
95
|
+
- Export as PNG/SVG
|
|
96
|
+
|
|
97
|
+
2. **GitHub/GitLab:**
|
|
98
|
+
- These platforms render `.mmd` files automatically
|
|
99
|
+
- Just view the file in the repo
|
|
100
|
+
|
|
101
|
+
3. **VS Code:**
|
|
102
|
+
- Install "Markdown Preview Mermaid Support" extension
|
|
103
|
+
- Open `.mmd` file and use preview
|
|
104
|
+
|
|
105
|
+
### CLI Tool:
|
|
106
|
+
```bash
|
|
107
|
+
# Install mermaid-cli
|
|
108
|
+
npm install -g @mermaid-js/mermaid-cli
|
|
109
|
+
|
|
110
|
+
# Generate PNG
|
|
111
|
+
mmdc -i evolution-phases.mmd -o evolution-phases.png
|
|
112
|
+
|
|
113
|
+
# Generate SVG
|
|
114
|
+
mmdc -i architecture-overview.mmd -o architecture-overview.svg
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Usage in Documentation
|
|
120
|
+
|
|
121
|
+
These diagrams can be embedded in:
|
|
122
|
+
- README.md (link to rendered versions)
|
|
123
|
+
- ROADMAP.md (show evolution timeline)
|
|
124
|
+
- CLAUDE.md (help AI understand architecture)
|
|
125
|
+
- Presentations (export as images)
|
|
126
|
+
- GitHub wiki/docs
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
**Created:** 2025-10-15
|
|
131
|
+
**Maintained by:** Icarus Dev Team
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
graph TB
|
|
2
|
+
subgraph "Phase 1 - LIVE v1.4.16"
|
|
3
|
+
CLI[bin/creta.js]
|
|
4
|
+
CLI --> MainCLI[lib/cli/index.js]
|
|
5
|
+
|
|
6
|
+
MainCLI --> Builders[lib/builders/]
|
|
7
|
+
Builders --> MenuBuilder[MenuBuilder.js]
|
|
8
|
+
Builders --> LessonBuilder[LessonBuilder.js]
|
|
9
|
+
|
|
10
|
+
MainCLI --> Executors[lib/executors/]
|
|
11
|
+
Executors --> SintaxisExec[SintaxisExecutor.js]
|
|
12
|
+
Executors --> EnunciadosExec[EnunciadosExecutor.js]
|
|
13
|
+
Executors --> ProyectosExec[ProyectosExecutor.js]
|
|
14
|
+
|
|
15
|
+
MainCLI --> Data[lib/data/]
|
|
16
|
+
Data --> Lessons[lessons/]
|
|
17
|
+
Lessons --> Enunciados[enunciados/ - 7 lessons]
|
|
18
|
+
Lessons --> Sintaxis[sintaxis/ - 4 lessons]
|
|
19
|
+
Data --> Menus[menus.js]
|
|
20
|
+
|
|
21
|
+
MainCLI --> Sandbox[lib/sandbox/]
|
|
22
|
+
Sandbox --> SandboxMgr[SandboxManager.js]
|
|
23
|
+
Sandbox --> CmdValidator[CommandValidator.js]
|
|
24
|
+
Sandbox --> CmdExecutor[CommandExecutor.js]
|
|
25
|
+
|
|
26
|
+
MainCLI --> Utils[lib/utils/]
|
|
27
|
+
Utils --> UserState[UserState.js]
|
|
28
|
+
Utils --> Greeting[greeting.js]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
subgraph "Phase 2 - IN DEV v1.5.0"
|
|
32
|
+
CLI2[bin/creta.js]
|
|
33
|
+
CLI2 --> Router{Command Router}
|
|
34
|
+
Router -->|help request| HelpSystem[Help System]
|
|
35
|
+
Router -->|menu/project| MainCLI2[Existing CLI Logic]
|
|
36
|
+
|
|
37
|
+
HelpSystem --> CmdHelp[lib/data/command-help/]
|
|
38
|
+
CmdHelp --> BasicCmds[basic-commands/]
|
|
39
|
+
BasicCmds --> LS[ls.js]
|
|
40
|
+
BasicCmds --> CD[cd.js]
|
|
41
|
+
BasicCmds --> MKDIR[mkdir.js]
|
|
42
|
+
|
|
43
|
+
CmdHelp --> GitCmds[git/]
|
|
44
|
+
GitCmds --> Status[status.js]
|
|
45
|
+
GitCmds --> Add[add.js]
|
|
46
|
+
GitCmds --> Commit[commit.js]
|
|
47
|
+
|
|
48
|
+
HelpSystem --> Formatter[lib/formatters/]
|
|
49
|
+
Formatter --> HelpFormatter[CommandHelpFormatter.js]
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
subgraph "Phase 3 - VISION v2.0.0+"
|
|
53
|
+
CLI3[bin/creta.js]
|
|
54
|
+
CLI3 --> Router3{Authenticated Router}
|
|
55
|
+
Router3 --> AuthSystem[lib/auth/]
|
|
56
|
+
AuthSystem --> Login[login.js]
|
|
57
|
+
AuthSystem --> JWT[JWT Storage]
|
|
58
|
+
|
|
59
|
+
Router3 --> API[lib/api/]
|
|
60
|
+
API --> TeamAPI[Team Workspace API]
|
|
61
|
+
API --> TicketAPI[Ticket API]
|
|
62
|
+
|
|
63
|
+
Router3 --> WorkflowSys[lib/workflow/]
|
|
64
|
+
WorkflowSys --> Requirements[Requirements Manager]
|
|
65
|
+
WorkflowSys --> Status[Status Tracker]
|
|
66
|
+
WorkflowSys --> Submit[Submission Handler]
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
style CLI fill:#4ade80,stroke:#22c55e,color:#000
|
|
70
|
+
style CLI2 fill:#fbbf24,stroke:#f59e0b,color:#000
|
|
71
|
+
style CLI3 fill:#60a5fa,stroke:#3b82f6,color:#000
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 3957.35px; background-color: white;" viewBox="0 0 3957.34765625 2179.953125" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#my-svg .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#my-svg .icon-shape rect,#my-svg .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_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;"/></marker><marker id="my-svg_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;"/></marker><marker id="my-svg_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;"/></marker><marker id="my-svg_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;"/></marker><marker id="my-svg_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;"/></marker><marker id="my-svg_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;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="subGraph2" data-look="classic"><rect style="" x="8" y="1601.890625" width="1343.93359375" height="570.0625"/><g class="cluster-label" transform="translate(592.857421875, 1601.890625)"><foreignObject width="174.21875" 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>Phase 3 - VISION v2.0.0+</p></span></div></foreignObject></g></g><g class="cluster" id="subGraph1" data-look="classic"><rect style="" x="1371.93359375" y="8" width="1240.8515625" height="2163.953125"/><g class="cluster-label" transform="translate(1909.3125, 8)"><foreignObject width="166.09375" 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>Phase 2 - IN DEV v1.5.0</p></span></div></foreignObject></g></g></g><g class="edgePaths"><path d="M2094.504,694L2094.504,799.333C2094.504,904.667,2094.504,1115.333,2094.504,1224.167C2094.504,1333,2094.504,1340,2094.504,1343.5L2094.504,1347" id="L_CLI2_Router_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_CLI2_Router_0" data-points="W3sieCI6MjA5NC41MDM5MDYyNSwieSI6Njk0fSx7IngiOjIwOTQuNTAzOTA2MjUsInkiOjEzMjZ9LHsieCI6MjA5NC41MDM5MDYyNSwieSI6MTM1MX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2053.569,1486.955L2042.377,1499.944C2031.185,1512.934,2008.801,1538.912,1997.61,1558.068C1986.418,1577.224,1986.418,1589.557,1986.418,1599.224C1986.418,1608.891,1986.418,1615.891,1986.418,1619.391L1986.418,1622.891" id="L_Router_HelpSystem_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_Router_HelpSystem_0" data-points="W3sieCI6MjA1My41Njg1MDg4NzE1MjEsInkiOjE0ODYuOTU1MjI3NjIxNTIwOX0seyJ4IjoxOTg2LjQxNzk2ODc1LCJ5IjoxNTY0Ljg5MDYyNX0seyJ4IjoxOTg2LjQxNzk2ODc1LCJ5IjoxNjAxLjg5MDYyNX0seyJ4IjoxOTg2LjQxNzk2ODc1LCJ5IjoxNjI2Ljg5MDYyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2161.472,1460.923L2215.5,1478.251C2269.529,1495.579,2377.587,1530.235,2431.616,1553.729C2485.645,1577.224,2485.645,1589.557,2485.645,1599.224C2485.645,1608.891,2485.645,1615.891,2485.645,1619.391L2485.645,1622.891" id="L_Router_MainCLI2_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_Router_MainCLI2_0" data-points="W3sieCI6MjE2MS40NzE1NzI4MDUxMzIsInkiOjE0NjAuOTIyOTU4NDQ0ODY3OH0seyJ4IjoyNDg1LjY0NDUzMTI1LCJ5IjoxNTY0Ljg5MDYyNX0seyJ4IjoyNDg1LjY0NDUzMTI1LCJ5IjoxNjAxLjg5MDYyNX0seyJ4IjoyNDg1LjY0NDUzMTI1LCJ5IjoxNjI2Ljg5MDYyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1919.821,1680.891L1909.543,1685.057C1899.266,1689.224,1878.711,1697.557,1868.434,1718.063C1858.156,1738.568,1858.156,1771.245,1858.156,1787.583L1858.156,1803.922" id="L_HelpSystem_CmdHelp_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_HelpSystem_CmdHelp_0" data-points="W3sieCI6MTkxOS44MjA1Mzc4NjA1NzcsInkiOjE2ODAuODkwNjI1fSx7IngiOjE4NTguMTU2MjUsInkiOjE3MDUuODkwNjI1fSx7IngiOjE4NTguMTU2MjUsInkiOjE4MDcuOTIxODc1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1800.162,1861.922L1763.637,1878.927C1727.111,1895.932,1654.059,1929.943,1617.534,1950.448C1581.008,1970.953,1581.008,1977.953,1581.008,1981.453L1581.008,1984.953" id="L_CmdHelp_BasicCmds_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_CmdHelp_BasicCmds_0" data-points="W3sieCI6MTgwMC4xNjI0ODYzNzY4NDY4LCJ5IjoxODYxLjkyMTg3NX0seyJ4IjoxNTgxLjAwNzgxMjUsInkiOjE5NjMuOTUzMTI1fSx7IngiOjE1ODEuMDA3ODEyNSwieSI6MTk4OC45NTMxMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1513.838,2042.953L1503.473,2047.12C1493.107,2051.286,1472.376,2059.62,1462.01,2067.286C1451.645,2074.953,1451.645,2081.953,1451.645,2085.453L1451.645,2088.953" id="L_BasicCmds_LS_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_BasicCmds_LS_0" data-points="W3sieCI6MTUxMy44Mzg0MTY0NjYzNDYyLCJ5IjoyMDQyLjk1MzEyNX0seyJ4IjoxNDUxLjY0NDUzMTI1LCJ5IjoyMDY3Ljk1MzEyNX0seyJ4IjoxNDUxLjY0NDUzMTI1LCJ5IjoyMDkyLjk1MzEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1587.695,2042.953L1588.727,2047.12C1589.759,2051.286,1591.823,2059.62,1592.855,2067.286C1593.887,2074.953,1593.887,2081.953,1593.887,2085.453L1593.887,2088.953" id="L_BasicCmds_CD_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_BasicCmds_CD_0" data-points="W3sieCI6MTU4Ny42OTQ5MzY4OTkwMzg2LCJ5IjoyMDQyLjk1MzEyNX0seyJ4IjoxNTkzLjg4NjcxODc1LCJ5IjoyMDY3Ljk1MzEyNX0seyJ4IjoxNTkzLjg4NjcxODc1LCJ5IjoyMDkyLjk1MzEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1668.748,2042.953L1682.288,2047.12C1695.828,2051.286,1722.908,2059.62,1736.448,2067.286C1749.988,2074.953,1749.988,2081.953,1749.988,2085.453L1749.988,2088.953" id="L_BasicCmds_MKDIR_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_BasicCmds_MKDIR_0" data-points="W3sieCI6MTY2OC43NDc2NzEyNzQwMzg2LCJ5IjoyMDQyLjk1MzEyNX0seyJ4IjoxNzQ5Ljk4ODI4MTI1LCJ5IjoyMDY3Ljk1MzEyNX0seyJ4IjoxNzQ5Ljk4ODI4MTI1LCJ5IjoyMDkyLjk1MzEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1906.491,1861.922L1936.933,1878.927C1967.375,1895.932,2028.26,1929.943,2058.702,1950.448C2089.145,1970.953,2089.145,1977.953,2089.145,1981.453L2089.145,1984.953" id="L_CmdHelp_GitCmds_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_CmdHelp_GitCmds_0" data-points="W3sieCI6MTkwNi40OTA5MjU0NjYyMTQ1LCJ5IjoxODYxLjkyMTg3NX0seyJ4IjoyMDg5LjE0NDUzMTI1LCJ5IjoxOTYzLjk1MzEyNX0seyJ4IjoyMDg5LjE0NDUzMTI1LCJ5IjoxOTg4Ljk1MzEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2045.48,2031.114L2027.797,2037.254C2010.113,2043.394,1974.746,2055.673,1957.063,2065.313C1939.379,2074.953,1939.379,2081.953,1939.379,2085.453L1939.379,2088.953" id="L_GitCmds_Status_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_GitCmds_Status_0" data-points="W3sieCI6MjA0NS40ODA0Njg3NSwieSI6MjAzMS4xMTM2ODgzODAyODE3fSx7IngiOjE5MzkuMzc4OTA2MjUsInkiOjIwNjcuOTUzMTI1fSx7IngiOjE5MzkuMzc4OTA2MjUsInkiOjIwOTIuOTUzMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2106.425,2042.953L2109.092,2047.12C2111.759,2051.286,2117.092,2059.62,2119.759,2067.286C2122.426,2074.953,2122.426,2081.953,2122.426,2085.453L2122.426,2088.953" id="L_GitCmds_Add_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_GitCmds_Add_0" data-points="W3sieCI6MjEwNi40MjUxODAyODg0NjE0LCJ5IjoyMDQyLjk1MzEyNX0seyJ4IjoyMTIyLjQyNTc4MTI1LCJ5IjoyMDY3Ljk1MzEyNX0seyJ4IjoyMTIyLjQyNTc4MTI1LCJ5IjoyMDkyLjk1MzEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2132.809,2024.776L2168.421,2031.972C2204.033,2039.169,2275.257,2053.561,2310.868,2064.257C2346.48,2074.953,2346.48,2081.953,2346.48,2085.453L2346.48,2088.953" id="L_GitCmds_Commit_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_GitCmds_Commit_0" data-points="W3sieCI6MjEzMi44MDg1OTM3NSwieSI6MjAyNC43NzYzNDM2NzY5NDgzfSx7IngiOjIzNDYuNDgwNDY4NzUsInkiOjIwNjcuOTUzMTI1fSx7IngiOjIzNDYuNDgwNDY4NzUsInkiOjIwOTIuOTUzMTI1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2060.449,1664.179L2110.47,1671.131C2160.491,1678.083,2260.533,1691.987,2310.553,1715.277C2360.574,1738.568,2360.574,1771.245,2360.574,1787.583L2360.574,1803.922" id="L_HelpSystem_Formatter_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_HelpSystem_Formatter_0" data-points="W3sieCI6MjA2MC40NDkyMTg3NSwieSI6MTY2NC4xNzk0NDE1MDM4MDAzfSx7IngiOjIzNjAuNTc0MjE4NzUsInkiOjE3MDUuODkwNjI1fSx7IngiOjIzNjAuNTc0MjE4NzUsInkiOjE4MDcuOTIxODc1fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2360.574,1861.922L2360.574,1878.927C2360.574,1895.932,2360.574,1929.943,2360.574,1950.448C2360.574,1970.953,2360.574,1977.953,2360.574,1981.453L2360.574,1984.953" id="L_Formatter_HelpFormatter_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_Formatter_HelpFormatter_0" data-points="W3sieCI6MjM2MC41NzQyMTg3NSwieSI6MTg2MS45MjE4NzV9LHsieCI6MjM2MC41NzQyMTg3NSwieSI6MTk2My45NTMxMjV9LHsieCI6MjM2MC41NzQyMTg3NSwieSI6MTk4OC45NTMxMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M620.418,1680.891L620.418,1685.057C620.418,1689.224,620.418,1697.557,620.418,1705.224C620.418,1712.891,620.418,1719.891,620.418,1723.391L620.418,1726.891" id="L_CLI3_Router3_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_CLI3_Router3_0" data-points="W3sieCI6NjIwLjQxNzk2ODc1LCJ5IjoxNjgwLjg5MDYyNX0seyJ4Ijo2MjAuNDE3OTY4NzUsInkiOjE3MDUuODkwNjI1fSx7IngiOjYyMC40MTc5Njg3NSwieSI6MTczMC44OTA2MjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M540.532,1859.067L482.695,1876.548C424.857,1894.029,309.182,1928.991,251.345,1949.972C193.508,1970.953,193.508,1977.953,193.508,1981.453L193.508,1984.953" id="L_Router3_AuthSystem_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_Router3_AuthSystem_0" data-points="W3sieCI6NTQwLjUzMTg1NzIwNDYyMDIsInkiOjE4NTkuMDY3MDEzNDU0NjJ9LHsieCI6MTkzLjUwNzgxMjUsInkiOjE5NjMuOTUzMTI1fSx7IngiOjE5My41MDc4MTI1LCJ5IjoxOTg4Ljk1MzEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M146.524,2042.953L139.273,2047.12C132.022,2051.286,117.521,2059.62,110.27,2067.286C103.02,2074.953,103.02,2081.953,103.02,2085.453L103.02,2088.953" id="L_AuthSystem_Login_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_AuthSystem_Login_0" data-points="W3sieCI6MTQ2LjUyMzUxMjYyMDE5MjMyLCJ5IjoyMDQyLjk1MzEyNX0seyJ4IjoxMDMuMDE5NTMxMjUsInkiOjIwNjcuOTUzMTI1fSx7IngiOjEwMy4wMTk1MzEyNSwieSI6MjA5Mi45NTMxMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M240.492,2042.953L247.743,2047.12C254.993,2051.286,269.495,2059.62,276.745,2067.286C283.996,2074.953,283.996,2081.953,283.996,2085.453L283.996,2088.953" id="L_AuthSystem_JWT_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_AuthSystem_JWT_0" data-points="W3sieCI6MjQwLjQ5MjExMjM3OTgwNzY4LCJ5IjoyMDQyLjk1MzEyNX0seyJ4IjoyODMuOTk2MDkzNzUsInkiOjIwNjcuOTUzMTI1fSx7IngiOjI4My45OTYwOTM3NSwieSI6MjA5Mi45NTMxMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M620.418,1938.953L620.418,1943.12C620.418,1947.286,620.418,1955.62,620.418,1963.286C620.418,1970.953,620.418,1977.953,620.418,1981.453L620.418,1984.953" id="L_Router3_API_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_Router3_API_0" data-points="W3sieCI6NjIwLjQxNzk2ODc1LCJ5IjoxOTM4Ljk1MzEyNX0seyJ4Ijo2MjAuNDE3OTY4NzUsInkiOjE5NjMuOTUzMTI1fSx7IngiOjYyMC40MTc5Njg3NSwieSI6MTk4OC45NTMxMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M563.757,2042.953L555.013,2047.12C546.269,2051.286,528.781,2059.62,520.037,2067.286C511.293,2074.953,511.293,2081.953,511.293,2085.453L511.293,2088.953" id="L_API_TeamAPI_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_API_TeamAPI_0" data-points="W3sieCI6NTYzLjc1NjkxMTA1NzY5MjMsInkiOjIwNDIuOTUzMTI1fSx7IngiOjUxMS4yOTI5Njg3NSwieSI6MjA2Ny45NTMxMjV9LHsieCI6NTExLjI5Mjk2ODc1LCJ5IjoyMDkyLjk1MzEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M677.079,2042.953L685.823,2047.12C694.567,2051.286,712.055,2059.62,720.799,2067.286C729.543,2074.953,729.543,2081.953,729.543,2085.453L729.543,2088.953" id="L_API_TicketAPI_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_API_TicketAPI_0" data-points="W3sieCI6Njc3LjA3OTAyNjQ0MjMwNzcsInkiOjIwNDIuOTUzMTI1fSx7IngiOjcyOS41NDI5Njg3NSwieSI6MjA2Ny45NTMxMjV9LHsieCI6NzI5LjU0Mjk2ODc1LCJ5IjoyMDkyLjk1MzEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M702.649,1856.722L770.065,1874.594C837.48,1892.465,972.31,1928.209,1039.725,1949.581C1107.141,1970.953,1107.141,1977.953,1107.141,1981.453L1107.141,1984.953" id="L_Router3_WorkflowSys_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_Router3_WorkflowSys_0" data-points="W3sieCI6NzAyLjY0OTQ2NzExMTcwMDksInkiOjE4NTYuNzIxNjI2NjM4Mjk5fSx7IngiOjExMDcuMTQwNjI1LCJ5IjoxOTYzLjk1MzEyNX0seyJ4IjoxMTA3LjE0MDYyNSwieSI6MTk4OC45NTMxMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1028.901,2042.953L1016.827,2047.12C1004.753,2051.286,980.605,2059.62,968.531,2067.286C956.457,2074.953,956.457,2081.953,956.457,2085.453L956.457,2088.953" id="L_WorkflowSys_Requirements_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_WorkflowSys_Requirements_0" data-points="W3sieCI6MTAyOC45MDEwNjY3MDY3MzA3LCJ5IjoyMDQyLjk1MzEyNX0seyJ4Ijo5NTYuNDU3MDMxMjUsInkiOjIwNjcuOTUzMTI1fSx7IngiOjk1Ni40NTcwMzEyNSwieSI6MjA5Mi45NTMxMjV9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1187.586,2039.517L1203.766,2044.256C1219.947,2048.995,1252.307,2058.474,1363.471,2070.758C1474.636,2083.041,1664.603,2098.129,1759.587,2105.673L1854.571,2113.217" id="L_WorkflowSys_Status_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_WorkflowSys_Status_0" data-points="W3sieCI6MTE4Ny41ODU5Mzc1LCJ5IjoyMDM5LjUxNjU3MjUzMjI5MDR9LHsieCI6MTI4NC42Njc5Njg3NSwieSI6MjA2Ny45NTMxMjV9LHsieCI6MTg1OC41NTg1OTM3NSwieSI6MjExMy41MzQwMjMwNTg1NDJ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1164.392,2042.953L1173.227,2047.12C1182.062,2051.286,1199.732,2059.62,1208.567,2067.286C1217.402,2074.953,1217.402,2081.953,1217.402,2085.453L1217.402,2088.953" id="L_WorkflowSys_Submit_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_WorkflowSys_Submit_0" data-points="W3sieCI6MTE2NC4zOTE5MDIwNDMyNjkzLCJ5IjoyMDQyLjk1MzEyNX0seyJ4IjoxMjE3LjQwMjM0Mzc1LCJ5IjoyMDY3Ljk1MzEyNX0seyJ4IjoxMjE3LjQwMjM0Mzc1LCJ5IjoyMDkyLjk1MzEyNX1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_CLI2_Router_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" transform="translate(1986.41796875, 1564.890625)"><g class="label" data-id="L_Router_HelpSystem_0" transform="translate(-45.0390625, -12)"><foreignObject width="90.078125" height="24"><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"><p>help request</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(2485.64453125, 1564.890625)"><g class="label" data-id="L_Router_MainCLI2_0" transform="translate(-50.234375, -12)"><foreignObject width="100.46875" height="24"><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"><p>menu/project</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_HelpSystem_CmdHelp_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_CmdHelp_BasicCmds_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_BasicCmds_LS_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_BasicCmds_CD_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_BasicCmds_MKDIR_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_CmdHelp_GitCmds_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_GitCmds_Status_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_GitCmds_Add_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_GitCmds_Commit_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_HelpSystem_Formatter_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_Formatter_HelpFormatter_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_CLI3_Router3_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_Router3_AuthSystem_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_AuthSystem_Login_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_AuthSystem_JWT_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_Router3_API_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_API_TeamAPI_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_API_TicketAPI_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_Router3_WorkflowSys_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_WorkflowSys_Requirements_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_WorkflowSys_Status_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_WorkflowSys_Submit_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="root" transform="translate(2639.78515625, 25)"><g class="clusters"><g class="cluster" id="subGraph0" data-look="classic"><rect style="" x="8" y="8" width="1301.5625" height="1268"/><g class="cluster-label" transform="translate(579.90625, 8)"><foreignObject width="157.75" 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>Phase 1 - LIVE v1.4.16</p></span></div></foreignObject></g></g></g><g class="edgePaths"><path d="M191.953,642L198.203,642C204.453,642,216.953,642,228.786,642C240.62,642,251.786,642,257.37,642L262.953,642" id="L_CLI_MainCLI_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_CLI_MainCLI_0" data-points="W3sieCI6MTkxLjk1MzEyNSwieSI6NjQyfSx7IngiOjIyOS40NTMxMjUsInkiOjY0Mn0seyJ4IjoyNjYuOTUzMTI1LCJ5Ijo2NDJ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M357.977,615L377.283,532.833C396.589,450.667,435.201,286.333,461.13,204.167C487.06,122,500.307,122,506.931,122L513.555,122" id="L_MainCLI_Builders_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_MainCLI_Builders_0" data-points="W3sieCI6MzU3Ljk3Njc1NzgxMjUsInkiOjYxNX0seyJ4Ijo0NzMuODEyNSwieSI6MTIyfSx7IngiOjUxNy41NTQ2ODc1LCJ5IjoxMjJ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M655.918,95L665.523,90.833C675.128,86.667,694.337,78.333,714.049,74.167C733.76,70,753.974,70,764.081,70L774.188,70" id="L_Builders_MenuBuilder_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_Builders_MenuBuilder_0" data-points="W3sieCI6NjU1LjkxODQxOTQ3MTE1MzgsInkiOjk1fSx7IngiOjcxMy41NDY4NzUsInkiOjcwfSx7IngiOjc3OC4xODc1LCJ5Ijo3MH1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M655.918,149L665.523,153.167C675.128,157.333,694.337,165.667,713.253,169.833C732.169,174,750.792,174,760.103,174L769.414,174" id="L_Builders_LessonBuilder_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_Builders_LessonBuilder_0" data-points="W3sieCI6NjU1LjkxODQxOTQ3MTE1MzgsInkiOjE0OX0seyJ4Ijo3MTMuNTQ2ODc1LCJ5IjoxNzR9LHsieCI6NzczLjQxNDA2MjUsInkiOjE3NH1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M364.321,615L382.569,576.167C400.818,537.333,437.315,459.667,461.147,420.833C484.979,382,496.146,382,501.729,382L507.313,382" id="L_MainCLI_Executors_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_MainCLI_Executors_0" data-points="W3sieCI6MzY0LjMyMDcwMzEyNSwieSI6NjE1fSx7IngiOjQ3My44MTI1LCJ5IjozODJ9LHsieCI6NTExLjMxMjUsInkiOjM4Mn1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M624.799,355L639.59,342.167C654.382,329.333,683.964,303.667,706.411,290.833C728.857,278,744.167,278,751.822,278L759.477,278" id="L_Executors_SintaxisExec_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_Executors_SintaxisExec_0" data-points="W3sieCI6NjI0Ljc5OTA1MzQ4NTU3NjksInkiOjM1NX0seyJ4Ijo3MTMuNTQ2ODc1LCJ5IjoyNzh9LHsieCI6NzYzLjQ3NjU2MjUsInkiOjI3OH1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M676.047,382L682.297,382C688.547,382,701.047,382,712.88,382C724.714,382,735.88,382,741.464,382L747.047,382" id="L_Executors_EnunciadosExec_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_Executors_EnunciadosExec_0" data-points="W3sieCI6Njc2LjA0Njg3NSwieSI6MzgyfSx7IngiOjcxMy41NDY4NzUsInkiOjM4Mn0seyJ4Ijo3NTEuMDQ2ODc1LCJ5IjozODJ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M624.799,409L639.59,421.833C654.382,434.667,683.964,460.333,705.233,473.167C726.503,486,739.458,486,745.936,486L752.414,486" id="L_Executors_ProyectosExec_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_Executors_ProyectosExec_0" data-points="W3sieCI6NjI0Ljc5OTA1MzQ4NTU3NjksInkiOjQwOX0seyJ4Ijo3MTMuNTQ2ODc1LCJ5Ijo0ODZ9LHsieCI6NzU2LjQxNDA2MjUsInkiOjQ4Nn1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M436.313,642L442.563,642C448.813,642,461.313,642,476.286,642C491.26,642,508.708,642,517.432,642L526.156,642" id="L_MainCLI_Data_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_MainCLI_Data_0" data-points="W3sieCI6NDM2LjMxMjUsInkiOjY0Mn0seyJ4Ijo0NzMuODEyNSwieSI6NjQyfSx7IngiOjUzMC4xNTYyNSwieSI6NjQyfV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M655.918,615L665.523,610.833C675.128,606.667,694.337,598.333,717.882,594.167C741.427,590,769.307,590,783.247,590L797.188,590" id="L_Data_Lessons_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_Data_Lessons_0" data-points="W3sieCI6NjU1LjkxODQxOTQ3MTE1MzgsInkiOjYxNX0seyJ4Ijo3MTMuNTQ2ODc1LCJ5Ijo1OTB9LHsieCI6ODAxLjE4NzUsInkiOjU5MH1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M875.743,563L897.69,524.167C919.636,485.333,963.529,407.667,991.059,368.833C1018.589,330,1029.755,330,1035.339,330L1040.922,330" id="L_Lessons_Enunciados_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_Lessons_Enunciados_0" data-points="W3sieCI6ODc1Ljc0MzI2OTIzMDc2OTIsInkiOjU2M30seyJ4IjoxMDA3LjQyMTg3NSwieSI6MzMwfSx7IngiOjEwNDQuOTIxODc1LCJ5IjozMzB9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M873.2,617L895.57,664.5C917.941,712,962.681,807,992.821,854.5C1022.961,902,1038.5,902,1046.27,902L1054.039,902" id="L_Lessons_Sintaxis_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_Lessons_Sintaxis_0" data-points="W3sieCI6ODczLjIwMDEyMDE5MjMwNzcsInkiOjYxN30seyJ4IjoxMDA3LjQyMTg3NSwieSI6OTAyfSx7IngiOjEwNTguMDM5MDYyNSwieSI6OTAyfV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M655.918,669L665.523,673.167C675.128,677.333,694.337,685.667,717.416,689.833C740.495,694,767.443,694,780.917,694L794.391,694" id="L_Data_Menus_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_Data_Menus_0" data-points="W3sieCI6NjU1LjkxODQxOTQ3MTE1MzgsInkiOjY2OX0seyJ4Ijo3MTMuNTQ2ODc1LCJ5Ijo2OTR9LHsieCI6Nzk4LjM5MDYyNSwieSI6Njk0fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M364.321,669L382.569,707.833C400.818,746.667,437.315,824.333,462.122,863.167C486.93,902,500.047,902,506.605,902L513.164,902" id="L_MainCLI_Sandbox_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_MainCLI_Sandbox_0" data-points="W3sieCI6MzY0LjMyMDcwMzEyNSwieSI6NjY5fSx7IngiOjQ3My44MTI1LCJ5Ijo5MDJ9LHsieCI6NTE3LjE2NDA2MjUsInkiOjkwMn1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M624.799,875L639.59,862.167C654.382,849.333,683.964,823.667,706.308,810.833C728.651,798,743.755,798,751.307,798L758.859,798" id="L_Sandbox_SandboxMgr_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_Sandbox_SandboxMgr_0" data-points="W3sieCI6NjI0Ljc5OTA1MzQ4NTU3NjksInkiOjg3NX0seyJ4Ijo3MTMuNTQ2ODc1LCJ5Ijo3OTh9LHsieCI6NzYyLjg1OTM3NSwieSI6Nzk4fV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M670.195,902L677.421,902C684.646,902,699.096,902,712.547,902C725.997,902,738.448,902,744.673,902L750.898,902" id="L_Sandbox_CmdValidator_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_Sandbox_CmdValidator_0" data-points="W3sieCI6NjcwLjE5NTMxMjUsInkiOjkwMn0seyJ4Ijo3MTMuNTQ2ODc1LCJ5Ijo5MDJ9LHsieCI6NzU0Ljg5ODQzNzUsInkiOjkwMn1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M624.799,929L639.59,941.833C654.382,954.667,683.964,980.333,705.078,993.167C726.193,1006,738.839,1006,745.161,1006L751.484,1006" id="L_Sandbox_CmdExecutor_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_Sandbox_CmdExecutor_0" data-points="W3sieCI6NjI0Ljc5OTA1MzQ4NTU3NjksInkiOjkyOX0seyJ4Ijo3MTMuNTQ2ODc1LCJ5IjoxMDA2fSx7IngiOjc1NS40ODQzNzUsInkiOjEwMDZ9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M357.977,669L377.283,751.167C396.589,833.333,435.201,997.667,463.332,1079.833C491.464,1162,509.115,1162,517.94,1162L526.766,1162" id="L_MainCLI_Utils_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_MainCLI_Utils_0" data-points="W3sieCI6MzU3Ljk3Njc1NzgxMjUsInkiOjY2OX0seyJ4Ijo0NzMuODEyNSwieSI6MTE2Mn0seyJ4Ijo1MzAuNzY1NjI1LCJ5IjoxMTYyfV0=" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M655.918,1135L665.523,1130.833C675.128,1126.667,694.337,1118.333,715.471,1114.167C736.604,1110,759.661,1110,771.19,1110L782.719,1110" id="L_Utils_UserState_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_Utils_UserState_0" data-points="W3sieCI6NjU1LjkxODQxOTQ3MTE1MzgsInkiOjExMzV9LHsieCI6NzEzLjU0Njg3NSwieSI6MTExMH0seyJ4Ijo3ODYuNzE4NzUsInkiOjExMTB9XQ==" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M655.918,1189L665.523,1193.167C675.128,1197.333,694.337,1205.667,716.298,1209.833C738.258,1214,762.969,1214,775.324,1214L787.68,1214" id="L_Utils_Greeting_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_Utils_Greeting_0" data-points="W3sieCI6NjU1LjkxODQxOTQ3MTE1MzgsInkiOjExODl9LHsieCI6NzEzLjU0Njg3NSwieSI6MTIxNH0seyJ4Ijo3OTEuNjc5Njg3NSwieSI6MTIxNH1d" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_CLI_MainCLI_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_MainCLI_Builders_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_Builders_MenuBuilder_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_Builders_LessonBuilder_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_MainCLI_Executors_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_Executors_SintaxisExec_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_Executors_EnunciadosExec_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_Executors_ProyectosExec_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_MainCLI_Data_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_Data_Lessons_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_Lessons_Enunciados_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_Lessons_Sintaxis_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_Data_Menus_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_MainCLI_Sandbox_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_Sandbox_SandboxMgr_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_Sandbox_CmdValidator_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_Sandbox_CmdExecutor_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_MainCLI_Utils_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_Utils_UserState_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_Utils_Greeting_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="flowchart-CLI-0" transform="translate(118.7265625, 642)"><rect class="basic label-container" style="fill:#4ade80 !important;stroke:#22c55e !important" x="-73.2265625" y="-27" width="146.453125" height="54"/><g class="label" style="color:#000 !important" transform="translate(-43.2265625, -12)"><rect/><foreignObject width="86.453125" height="24"><div style="color: rgb(0, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#000 !important" class="nodeLabel"><p>bin/creta.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-MainCLI-2" transform="translate(351.6328125, 642)"><rect class="basic label-container" style="" x="-84.6796875" y="-27" width="169.359375" height="54"/><g class="label" style="" transform="translate(-54.6796875, -12)"><rect/><foreignObject width="109.359375" 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>lib/cli/index.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Builders-4" transform="translate(593.6796875, 122)"><rect class="basic label-container" style="" x="-76.125" y="-27" width="152.25" height="54"/><g class="label" style="" transform="translate(-46.125, -12)"><rect/><foreignObject width="92.25" 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>lib/builders/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-MenuBuilder-6" transform="translate(860.484375, 70)"><rect class="basic label-container" style="" x="-82.296875" y="-27" width="164.59375" height="54"/><g class="label" style="" transform="translate(-52.296875, -12)"><rect/><foreignObject width="104.59375" 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>MenuBuilder.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LessonBuilder-8" transform="translate(860.484375, 174)"><rect class="basic label-container" style="" x="-87.0703125" y="-27" width="174.140625" height="54"/><g class="label" style="" transform="translate(-57.0703125, -12)"><rect/><foreignObject width="114.140625" 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>LessonBuilder.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Executors-10" transform="translate(593.6796875, 382)"><rect class="basic label-container" style="" x="-82.3671875" y="-27" width="164.734375" height="54"/><g class="label" style="" transform="translate(-52.3671875, -12)"><rect/><foreignObject width="104.734375" 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>lib/executors/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SintaxisExec-12" transform="translate(860.484375, 278)"><rect class="basic label-container" style="" x="-97.0078125" y="-27" width="194.015625" height="54"/><g class="label" style="" transform="translate(-67.0078125, -12)"><rect/><foreignObject width="134.015625" 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>SintaxisExecutor.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-EnunciadosExec-14" transform="translate(860.484375, 382)"><rect class="basic label-container" style="" x="-109.4375" y="-27" width="218.875" height="54"/><g class="label" style="" transform="translate(-79.4375, -12)"><rect/><foreignObject width="158.875" 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>EnunciadosExecutor.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-ProyectosExec-16" transform="translate(860.484375, 486)"><rect class="basic label-container" style="" x="-104.0703125" y="-27" width="208.140625" height="54"/><g class="label" style="" transform="translate(-74.0703125, -12)"><rect/><foreignObject width="148.140625" 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>ProyectosExecutor.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Data-18" transform="translate(593.6796875, 642)"><rect class="basic label-container" style="" x="-63.5234375" y="-27" width="127.046875" height="54"/><g class="label" style="" transform="translate(-33.5234375, -12)"><rect/><foreignObject width="67.046875" 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>lib/data/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Lessons-20" transform="translate(860.484375, 590)"><rect class="basic label-container" style="" x="-59.296875" y="-27" width="118.59375" height="54"/><g class="label" style="" transform="translate(-29.296875, -12)"><rect/><foreignObject width="58.59375" 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>lessons/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Enunciados-22" transform="translate(1158.4921875, 330)"><rect class="basic label-container" style="" x="-113.5703125" y="-27" width="227.140625" height="54"/><g class="label" style="" transform="translate(-83.5703125, -12)"><rect/><foreignObject width="167.140625" 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>enunciados/ - 7 lessons</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Sintaxis-24" transform="translate(1158.4921875, 902)"><rect class="basic label-container" style="" x="-100.453125" y="-27" width="200.90625" height="54"/><g class="label" style="" transform="translate(-70.453125, -12)"><rect/><foreignObject width="140.90625" 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>sintaxis/ - 4 lessons</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Menus-26" transform="translate(860.484375, 694)"><rect class="basic label-container" style="" x="-62.09375" y="-27" width="124.1875" height="54"/><g class="label" style="" transform="translate(-32.09375, -12)"><rect/><foreignObject width="64.1875" 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>menus.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Sandbox-28" transform="translate(593.6796875, 902)"><rect class="basic label-container" style="" x="-76.515625" y="-27" width="153.03125" height="54"/><g class="label" style="" transform="translate(-46.515625, -12)"><rect/><foreignObject width="93.03125" 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>lib/sandbox/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-SandboxMgr-30" transform="translate(860.484375, 798)"><rect class="basic label-container" style="" x="-97.625" y="-27" width="195.25" height="54"/><g class="label" style="" transform="translate(-67.625, -12)"><rect/><foreignObject width="135.25" 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>SandboxManager.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-CmdValidator-32" transform="translate(860.484375, 902)"><rect class="basic label-container" style="" x="-105.5859375" y="-27" width="211.171875" height="54"/><g class="label" style="" transform="translate(-75.5859375, -12)"><rect/><foreignObject width="151.171875" 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>CommandValidator.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-CmdExecutor-34" transform="translate(860.484375, 1006)"><rect class="basic label-container" style="" x="-105" y="-27" width="210" height="54"/><g class="label" style="" transform="translate(-75, -12)"><rect/><foreignObject width="150" 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>CommandExecutor.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Utils-36" transform="translate(593.6796875, 1162)"><rect class="basic label-container" style="" x="-62.9140625" y="-27" width="125.828125" height="54"/><g class="label" style="" transform="translate(-32.9140625, -12)"><rect/><foreignObject width="65.828125" 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>lib/utils/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-UserState-38" transform="translate(860.484375, 1110)"><rect class="basic label-container" style="" x="-73.765625" y="-27" width="147.53125" height="54"/><g class="label" style="" transform="translate(-43.765625, -12)"><rect/><foreignObject width="87.53125" 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>UserState.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Greeting-40" transform="translate(860.484375, 1214)"><rect class="basic label-container" style="" x="-68.8046875" y="-27" width="137.609375" height="54"/><g class="label" style="" transform="translate(-38.8046875, -12)"><rect/><foreignObject width="77.609375" 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>greeting.js</p></span></div></foreignObject></g></g></g></g><g class="node default" id="flowchart-CLI2-41" transform="translate(2094.50390625, 667)"><rect class="basic label-container" style="fill:#fbbf24 !important;stroke:#f59e0b !important" x="-73.2265625" y="-27" width="146.453125" height="54"/><g class="label" style="color:#000 !important" transform="translate(-43.2265625, -12)"><rect/><foreignObject width="86.453125" height="24"><div style="color: rgb(0, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#000 !important" class="nodeLabel"><p>bin/creta.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Router-43" transform="translate(2094.50390625, 1439.4453125)"><polygon points="88.4453125,0 176.890625,-88.4453125 88.4453125,-176.890625 0,-88.4453125" class="label-container" transform="translate(-87.9453125, 88.4453125)"/><g class="label" style="" transform="translate(-61.4453125, -12)"><rect/><foreignObject width="122.890625" 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>Command Router</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-HelpSystem-45" transform="translate(1986.41796875, 1653.890625)"><rect class="basic label-container" style="" x="-74.03125" y="-27" width="148.0625" height="54"/><g class="label" style="" transform="translate(-44.03125, -12)"><rect/><foreignObject width="88.0625" 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>Help System</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-MainCLI2-47" transform="translate(2485.64453125, 1653.890625)"><rect class="basic label-container" style="" x="-92.140625" y="-27" width="184.28125" height="54"/><g class="label" style="" transform="translate(-62.140625, -12)"><rect/><foreignObject width="124.28125" 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>Existing CLI Logic</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-CmdHelp-49" transform="translate(1858.15625, 1834.921875)"><rect class="basic label-container" style="" x="-120.7734375" y="-27" width="241.546875" height="54"/><g class="label" style="" transform="translate(-90.7734375, -12)"><rect/><foreignObject width="181.546875" 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>lib/data/command-help/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-BasicCmds-51" transform="translate(1581.0078125, 2015.953125)"><rect class="basic label-container" style="" x="-93.078125" y="-27" width="186.15625" height="54"/><g class="label" style="" transform="translate(-63.078125, -12)"><rect/><foreignObject width="126.15625" 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>basic-commands/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-LS-53" transform="translate(1451.64453125, 2119.953125)"><rect class="basic label-container" style="" x="-44.7109375" y="-27" width="89.421875" height="54"/><g class="label" style="" transform="translate(-14.7109375, -12)"><rect/><foreignObject width="29.421875" 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>ls.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-CD-55" transform="translate(1593.88671875, 2119.953125)"><rect class="basic label-container" style="" x="-47.53125" y="-27" width="95.0625" height="54"/><g class="label" style="" transform="translate(-17.53125, -12)"><rect/><foreignObject width="35.0625" 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>cd.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-MKDIR-57" transform="translate(1749.98828125, 2119.953125)"><rect class="basic label-container" style="" x="-58.5703125" y="-27" width="117.140625" height="54"/><g class="label" style="" transform="translate(-28.5703125, -12)"><rect/><foreignObject width="57.140625" 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>mkdir.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-GitCmds-59" transform="translate(2089.14453125, 2015.953125)"><rect class="basic label-container" style="" x="-43.6640625" y="-27" width="87.328125" height="54"/><g class="label" style="" transform="translate(-13.6640625, -12)"><rect/><foreignObject width="27.328125" 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>git/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Status-61" transform="translate(1939.37890625, 2119.953125)"><rect class="basic label-container" style="" x="-80.8203125" y="-27" width="161.640625" height="54"/><g class="label" style="" transform="translate(-50.8203125, -12)"><rect/><foreignObject width="101.640625" 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>Status Tracker</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Add-63" transform="translate(2122.42578125, 2119.953125)"><rect class="basic label-container" style="" x="-52.2265625" y="-27" width="104.453125" height="54"/><g class="label" style="" transform="translate(-22.2265625, -12)"><rect/><foreignObject width="44.453125" 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>add.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Commit-65" transform="translate(2346.48046875, 2119.953125)"><rect class="basic label-container" style="" x="-66.1015625" y="-27" width="132.203125" height="54"/><g class="label" style="" transform="translate(-36.1015625, -12)"><rect/><foreignObject width="72.203125" 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>commit.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Formatter-67" transform="translate(2360.57421875, 1834.921875)"><rect class="basic label-container" style="" x="-85.75" y="-27" width="171.5" height="54"/><g class="label" style="" transform="translate(-55.75, -12)"><rect/><foreignObject width="111.5" 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>lib/formatters/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-HelpFormatter-69" transform="translate(2360.57421875, 2015.953125)"><rect class="basic label-container" style="" x="-126.109375" y="-27" width="252.21875" height="54"/><g class="label" style="" transform="translate(-96.109375, -12)"><rect/><foreignObject width="192.21875" 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>CommandHelpFormatter.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-CLI3-70" transform="translate(620.41796875, 1653.890625)"><rect class="basic label-container" style="fill:#60a5fa !important;stroke:#3b82f6 !important" x="-73.2265625" y="-27" width="146.453125" height="54"/><g class="label" style="color:#000 !important" transform="translate(-43.2265625, -12)"><rect/><foreignObject width="86.453125" height="24"><div style="color: rgb(0, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span style="color:#000 !important" class="nodeLabel"><p>bin/creta.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Router3-72" transform="translate(620.41796875, 1834.921875)"><polygon points="104.03125,0 208.0625,-104.03125 104.03125,-208.0625 0,-104.03125" class="label-container" transform="translate(-103.53125, 104.03125)"/><g class="label" style="" transform="translate(-77.03125, -12)"><rect/><foreignObject width="154.0625" 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>Authenticated Router</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-AuthSystem-74" transform="translate(193.5078125, 2015.953125)"><rect class="basic label-container" style="" x="-63.609375" y="-27" width="127.21875" height="54"/><g class="label" style="" transform="translate(-33.609375, -12)"><rect/><foreignObject width="67.21875" 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>lib/auth/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Login-76" transform="translate(103.01953125, 2119.953125)"><rect class="basic label-container" style="" x="-56.4296875" y="-27" width="112.859375" height="54"/><g class="label" style="" transform="translate(-26.4296875, -12)"><rect/><foreignObject width="52.859375" 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>login.js</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-JWT-78" transform="translate(283.99609375, 2119.953125)"><rect class="basic label-container" style="" x="-74.546875" y="-27" width="149.09375" height="54"/><g class="label" style="" transform="translate(-44.546875, -12)"><rect/><foreignObject width="89.09375" 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>JWT Storage</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-API-80" transform="translate(620.41796875, 2015.953125)"><rect class="basic label-container" style="" x="-58.4296875" y="-27" width="116.859375" height="54"/><g class="label" style="" transform="translate(-28.4296875, -12)"><rect/><foreignObject width="56.859375" 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>lib/api/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-TeamAPI-82" transform="translate(511.29296875, 2119.953125)"><rect class="basic label-container" style="" x="-102.75" y="-27" width="205.5" height="54"/><g class="label" style="" transform="translate(-72.75, -12)"><rect/><foreignObject width="145.5" 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>Team Workspace API</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-TicketAPI-84" transform="translate(729.54296875, 2119.953125)"><rect class="basic label-container" style="" x="-65.5" y="-27" width="131" height="54"/><g class="label" style="" transform="translate(-35.5, -12)"><rect/><foreignObject width="71" 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>Ticket API</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-WorkflowSys-86" transform="translate(1107.140625, 2015.953125)"><rect class="basic label-container" style="" x="-80.4453125" y="-27" width="160.890625" height="54"/><g class="label" style="" transform="translate(-50.4453125, -12)"><rect/><foreignObject width="100.890625" 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>lib/workflow/</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Requirements-88" transform="translate(956.45703125, 2119.953125)"><rect class="basic label-container" style="" x="-111.4140625" y="-27" width="222.828125" height="54"/><g class="label" style="" transform="translate(-81.4140625, -12)"><rect/><foreignObject width="162.828125" 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>Requirements Manager</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-Submit-92" transform="translate(1217.40234375, 2119.953125)"><rect class="basic label-container" style="" x="-99.53125" y="-27" width="199.0625" height="54"/><g class="label" style="" transform="translate(-69.53125, -12)"><rect/><foreignObject width="139.0625" 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>Submission Handler</p></span></div></foreignObject></g></g></g></g></g></svg>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
graph TB
|
|
2
|
+
subgraph "Icarus Ecosystem"
|
|
3
|
+
Discord[Discord Server<br/>Community Hub]
|
|
4
|
+
Creta[Creta CLI<br/>Learning Platform]
|
|
5
|
+
YouTube[YouTube Channel<br/>Hidden Videos]
|
|
6
|
+
Scythe[Scythe<br/>Token System]
|
|
7
|
+
Constructor[Constructor Network<br/>Professional Community]
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
subgraph "Learning Loop"
|
|
11
|
+
Discord -->|Install instructions| Install[Student installs Node.js]
|
|
12
|
+
Install -->|Run| Creta
|
|
13
|
+
Creta -->|Complete lesson| Hash[Generate Hash]
|
|
14
|
+
Hash -->|Bring hash back| Discord
|
|
15
|
+
Discord -->|/redeem hash| Bot[Discord Bot]
|
|
16
|
+
Bot -->|Validates hash| YouTube
|
|
17
|
+
YouTube -->|Watch video| Learn[Learn concepts]
|
|
18
|
+
Learn -->|Return to practice| Creta
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
subgraph "Economic Layer - Scythe"
|
|
22
|
+
Hash -->|Major milestone| Reward[Token Reward]
|
|
23
|
+
Reward -->|Distribute| Scythe
|
|
24
|
+
Scythe -->|ERC-20 tokens| Wallet[Constructor Wallet]
|
|
25
|
+
Wallet -->|Governance rights| Constructor
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
subgraph "Graduation Path"
|
|
29
|
+
Creta -->|Complete curriculum| Graduate[Graduate]
|
|
30
|
+
Graduate -->|Mint NFT| Certificate[NFT Certificate]
|
|
31
|
+
Certificate -->|Store in| Wallet
|
|
32
|
+
Certificate -->|Grants access| Constructor
|
|
33
|
+
Constructor -->|Professional network| Teams[Team Projects]
|
|
34
|
+
Teams -->|Use Creta Phase 3| TeamCLI[creta requirement<br/>creta status<br/>creta submit]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
subgraph "Phase Evolution"
|
|
38
|
+
Creta --> Phase1[Phase 1: Aprendiz<br/>Interactive Learning]
|
|
39
|
+
Phase1 -->|Still learning| Phase2[Phase 2: Desarrollador<br/>Command Reference]
|
|
40
|
+
Phase2 -->|Join team| Phase3[Phase 3: Constructor<br/>Workflow Assistant]
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
style Discord fill:#5865f2,color:#fff
|
|
44
|
+
style Creta fill:#4ade80,color:#000
|
|
45
|
+
style YouTube fill:#ff0000,color:#fff
|
|
46
|
+
style Scythe fill:#f59e0b,color:#000
|
|
47
|
+
style Constructor fill:#60a5fa,color:#000
|
|
48
|
+
style Hash fill:#fde047,color:#000
|
|
49
|
+
style Certificate fill:#c084fc,color:#000
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
graph TD
|
|
2
|
+
Start[New Student] --> Phase1[Phase 1: Aprendiz]
|
|
3
|
+
|
|
4
|
+
Phase1 --> P1Features{Learning Features}
|
|
5
|
+
P1Features --> Interactive[Interactive Sandbox Practice]
|
|
6
|
+
P1Features --> Curriculum[7 Enunciados + 4 Sintaxis]
|
|
7
|
+
P1Features --> Portfolio[Portfolio Generation]
|
|
8
|
+
P1Features --> Hash[Hash Rewards]
|
|
9
|
+
|
|
10
|
+
Phase1 --> Transition1{Still need references?}
|
|
11
|
+
Transition1 -->|Yes| Phase2[Phase 2: Desarrollador]
|
|
12
|
+
|
|
13
|
+
Phase2 --> P2Features{Developer Tools}
|
|
14
|
+
P2Features --> CmdHelp[creta ls - Command Help]
|
|
15
|
+
P2Features --> QuickRef[Quick Spanish References]
|
|
16
|
+
P2Features --> NoGoogle[No Context Switching]
|
|
17
|
+
P2Features --> Lessons[Links to Lessons]
|
|
18
|
+
|
|
19
|
+
Phase2 --> Transition2{Working on team projects?}
|
|
20
|
+
Transition2 -->|Yes| Phase3[Phase 3: Constructor]
|
|
21
|
+
|
|
22
|
+
Phase3 --> P3Features{Professional Workflow}
|
|
23
|
+
P3Features --> Auth[creta login - Authentication]
|
|
24
|
+
P3Features --> Requirement[creta requirement - Tickets]
|
|
25
|
+
P3Features --> Team[Team Workspace Sync]
|
|
26
|
+
P3Features --> Workflow[Agile CLI Workflow]
|
|
27
|
+
|
|
28
|
+
Phase1 -.->|Never lose access| P1Features
|
|
29
|
+
Phase2 -.->|All Phase 1 + new| P2Features
|
|
30
|
+
Phase3 -.->|All previous + new| P3Features
|
|
31
|
+
|
|
32
|
+
style Phase1 fill:#4ade80,stroke:#22c55e,color:#000
|
|
33
|
+
style Phase2 fill:#fbbf24,stroke:#f59e0b,color:#000
|
|
34
|
+
style Phase3 fill:#60a5fa,stroke:#3b82f6,color:#000
|
|
35
|
+
|
|
36
|
+
style Interactive fill:#dcfce7
|
|
37
|
+
style Curriculum fill:#dcfce7
|
|
38
|
+
style Portfolio fill:#dcfce7
|
|
39
|
+
style Hash fill:#dcfce7
|
|
40
|
+
|
|
41
|
+
style CmdHelp fill:#fef3c7
|
|
42
|
+
style QuickRef fill:#fef3c7
|
|
43
|
+
style NoGoogle fill:#fef3c7
|
|
44
|
+
style Lessons fill:#fef3c7
|
|
45
|
+
|
|
46
|
+
style Auth fill:#dbeafe
|
|
47
|
+
style Requirement fill:#dbeafe
|
|
48
|
+
style Team fill:#dbeafe
|
|
49
|
+
style Workflow fill:#dbeafe
|