---
# System prepended metadata

title: ':memo: Seminar #1 - Mermaid'

---

# :memo: Seminar #1 - Mermaid

---


## :pushpin: Thông tin nhóm


| STT      | Họ và tên              | MSSV    |
| -------- | -----------------------|-------- |
| 1        | Nguyễn Xuân Nghiêm     | 1612427 |
| 2        | Trương Quang Duy       | 1712394 |
| 3        | Phạm Minh Hoàng        | 1712460 |

## :books:  Nội dung bài tập
### Flow chart

+  Euclide GCD:

[![](https://mermaid.ink/img/eyJjb2RlIjoiZ3JhcGggVEJcbiAgY2xhc3NEZWYgeWVsbG93IGZpbGw6I0ZCQzcxQ1xuICBjbGFzc0RlZiBvcmFuZ2UgZmlsbDojRjk4RDI4LCBjb2xvcjojZmZmXG4gIGNsYXNzRGVmIHBpbmsgZmlsbDojRUY2RkE3XG5cbiAgRW50cnkgLS0-IEFcblx0QShbRXVjbGlkZSdzIGFsZ29yaXRocm0gZm9yIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gbnVtYmVyc10pXG5cdEJbSU5QVVQgQSwgQl06Ojp5ZWxsb3dcbiAgQygoICkpOjo6eWVsbG93XG4gIEQoKCApKTo6OnBpbmtcbiAgXG4gIEV7QiA9IDB9Ojo6b3JhbmdlXG4gIEZ7QSA-IEJ9Ojo6b3JhbmdlXG4gIEdbQiA8LS0gQiAtIEFdOjo6eWVsbG93XG4gIEhbR09UTyAyXTo6OnllbGxvd1xuICBLW0EgPC0tIEEgLSBCXTo6OnllbGxvd1xuICBJW0dPVE8gMl06Ojp5ZWxsb3dcbiAgSltQUklOVCBBXTo6OnllbGxvd1xuICBPKFtFTkRdKTo6OnBpbmtcbiAgXG4gIEEgLS0-IEJcbiAgQiAtLT4gQ1xuICBDIC0tPiBFXG4gIFxuICAgIEUgLS1uby0tPiBGXG4gICAgICBGIC0tXCJubyAoPCBvciA9KVwiLS0-IEdcbiAgICAgIEYgLS15ZXMtLT4gS1xuICAgICAgSyAtLS0gSVxuXG4gICAgRSAtLXllcy0tPiBKXG4gICAgICBKIC0tPiBPXG5cbiAgRyAtLS0gSFxuICBIIC0tPiBEXG4gIEQgLS0-IENcbiAgSSAtLT4gRFx0IiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifSwidXBkYXRlRWRpdG9yIjpmYWxzZX0)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggVEJcbiAgY2xhc3NEZWYgeWVsbG93IGZpbGw6I0ZCQzcxQ1xuICBjbGFzc0RlZiBvcmFuZ2UgZmlsbDojRjk4RDI4LCBjb2xvcjojZmZmXG4gIGNsYXNzRGVmIHBpbmsgZmlsbDojRUY2RkE3XG5cbiAgRW50cnkgLS0-IEFcblx0QShbRXVjbGlkZSdzIGFsZ29yaXRocm0gZm9yIHRoZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0d28gbnVtYmVyc10pXG5cdEJbSU5QVVQgQSwgQl06Ojp5ZWxsb3dcbiAgQygoICkpOjo6eWVsbG93XG4gIEQoKCApKTo6OnBpbmtcbiAgXG4gIEV7QiA9IDB9Ojo6b3JhbmdlXG4gIEZ7QSA-IEJ9Ojo6b3JhbmdlXG4gIEdbQiA8LS0gQiAtIEFdOjo6eWVsbG93XG4gIEhbR09UTyAyXTo6OnllbGxvd1xuICBLW0EgPC0tIEEgLSBCXTo6OnllbGxvd1xuICBJW0dPVE8gMl06Ojp5ZWxsb3dcbiAgSltQUklOVCBBXTo6OnllbGxvd1xuICBPKFtFTkRdKTo6OnBpbmtcbiAgXG4gIEEgLS0-IEJcbiAgQiAtLT4gQ1xuICBDIC0tPiBFXG4gIFxuICAgIEUgLS1uby0tPiBGXG4gICAgICBGIC0tXCJubyAoPCBvciA9KVwiLS0-IEdcbiAgICAgIEYgLS15ZXMtLT4gS1xuICAgICAgSyAtLS0gSVxuXG4gICAgRSAtLXllcy0tPiBKXG4gICAgICBKIC0tPiBPXG5cbiAgRyAtLS0gSFxuICBIIC0tPiBEXG4gIEQgLS0-IENcbiAgSSAtLT4gRFx0IiwibWVybWFpZCI6eyJ0aGVtZSI6ImRlZmF1bHQifSwidXBkYXRlRWRpdG9yIjpmYWxzZX0)

+ Quadratic Equation:

[![](https://mermaid.ink/img/eyJjb2RlIjoiZ3JhcGggVEJcbiAgY2xhc3NEZWYgeWVsbG93IGZpbGw6I0ZCQzcxQ1xuICBjbGFzc0RlZiBvcmFuZ2UgZmlsbDojRjk4RDI4LCBjb2xvcjojZmZmXG4gIGNsYXNzRGVmIHBpbmsgZmlsbDojRUY2RkE3XG4gIEEgLS0-IEJcbiAgQiAtLT4gQ1xuICAgIEMgLS15ZXMtLT4gRFxuICAgICAgRCAtLT4gRVxuICAgICAgRSAtLT4gWlxuICAgIFxuICAgIEMgLS1uby0tPiBGXG4gICAgICBGIC0tPiBHXG4gICAgICAgIEcgLS1uby0tPiBIXG4gICAgICAgIEggLS0-IFpcblxuICAgICAgICBHIC0teWVzLS0-IFhcbiAgICAgICAgICBYIC0tPiBKXG4gICAgICAgICAgWCAtLT4gSVxuXG4gICAgICAgIEkgLS0-IE9cbiAgICAgICAgSiAtLT4gT1xuICAgIE8gLS0-IFpcblxuICBBKFtRdWFkcmF0aWMgRXF1YXRpb24gU29sdmVyIGF4XjIgKyBieCArIGMgPSAwXSlcbiAgQltJTlBVVCBhLCBiLCBjXTo6OnllbGxvd1xuICBDe2EgPSAwfTo6Om9yYW5nZVxuICBEW3ggPSAtYy9iXTo6OnllbGxvd1xuICBFW1BSSU5UIHhdOjo6eWVsbG93XG4gIFooW0VORF0pOjo6cGlua1xuICBGW0RlbHRhID0gYl4yIC0gNCphKmNdOjo6eWVsbG93XG4gIFgoKCApKTo6OnllbGxvd1xuICBHe0RlbHRhID49IDB9Ojo6b3JhbmdlXG4gIEgoW1BSSU5UICdjb3VudGxlc3MgZXhwZXJpbWVudGFsIGVxdWF0aW9ucyddKTo6OnllbGxvd1xuICBJW1wieDEgPSAoLWIgLSBEZWx0YV4tMikgLyAyKmFcIl06Ojp5ZWxsb3dcbiAgSltcIngyID0gKC1iICsgRGVsdGFeLTIpIC8gMiphXCJdOjo6eWVsbG93XG4gIE9bUFJJTlQgeDEsIHgyXTo6OnllbGxvdyIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggVEJcbiAgY2xhc3NEZWYgeWVsbG93IGZpbGw6I0ZCQzcxQ1xuICBjbGFzc0RlZiBvcmFuZ2UgZmlsbDojRjk4RDI4LCBjb2xvcjojZmZmXG4gIGNsYXNzRGVmIHBpbmsgZmlsbDojRUY2RkE3XG4gIEEgLS0-IEJcbiAgQiAtLT4gQ1xuICAgIEMgLS15ZXMtLT4gRFxuICAgICAgRCAtLT4gRVxuICAgICAgRSAtLT4gWlxuICAgIFxuICAgIEMgLS1uby0tPiBGXG4gICAgICBGIC0tPiBHXG4gICAgICAgIEcgLS1uby0tPiBIXG4gICAgICAgIEggLS0-IFpcblxuICAgICAgICBHIC0teWVzLS0-IFhcbiAgICAgICAgICBYIC0tPiBKXG4gICAgICAgICAgWCAtLT4gSVxuXG4gICAgICAgIEkgLS0-IE9cbiAgICAgICAgSiAtLT4gT1xuICAgIE8gLS0-IFpcblxuICBBKFtRdWFkcmF0aWMgRXF1YXRpb24gU29sdmVyIGF4XjIgKyBieCArIGMgPSAwXSlcbiAgQltJTlBVVCBhLCBiLCBjXTo6OnllbGxvd1xuICBDe2EgPSAwfTo6Om9yYW5nZVxuICBEW3ggPSAtYy9iXTo6OnllbGxvd1xuICBFW1BSSU5UIHhdOjo6eWVsbG93XG4gIFooW0VORF0pOjo6cGlua1xuICBGW0RlbHRhID0gYl4yIC0gNCphKmNdOjo6eWVsbG93XG4gIFgoKCApKTo6OnllbGxvd1xuICBHe0RlbHRhID49IDB9Ojo6b3JhbmdlXG4gIEgoW1BSSU5UICdjb3VudGxlc3MgZXhwZXJpbWVudGFsIGVxdWF0aW9ucyddKTo6OnllbGxvd1xuICBJW1wieDEgPSAoLWIgLSBEZWx0YV4tMikgLyAyKmFcIl06Ojp5ZWxsb3dcbiAgSltcIngyID0gKC1iICsgRGVsdGFeLTIpIC8gMiphXCJdOjo6eWVsbG93XG4gIE9bUFJJTlQgeDEsIHgyXTo6OnllbGxvdyIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9)

### Class Diagram
[![](https://mermaid.ink/img/eyJjb2RlIjoiY2xhc3NEaWFncmFtXG5cbiAgQWRkcmVzcyBcIjFcIiAtLSogXCIxXCIgQ3VzdG9tZXI6IEhhc1xuICBDdXN0b21lciBcIjEgSXMgU29sZCBUb1wiIC0tIFwiKiBQdXJjaGFzZXNcIiBQcm9kdWN0XG4gIEN1c3RvbWVyIC0tICBQdXJjaGFzZURldGFpbFxuICBQdXJjaGFzZURldGFpbCAtLSBQcm9kdWN0XG4gIEJpbGwgIC0tbyBDdXN0b21lcjogQmVsb25ncyB0b1xuICBCaWxsIC4uPiBQdXJjaGFzZURldGFpbFxuICBCaWxsIC4uPiBEaXNjb3VudFxuICBEaXNjb3VudCAuLj4gUHVyY2hhc2VEZXRhaWxcbiAgQmlsbCAuLnw-IFBheW1lbnRDb3VudGVyOiBBY2NlcHRcbiAgUmVndWxhckN1c3RvbWVyIC0tfD4gQ3VzdG9tZXJcbiAgUHJlbWl1bUN1c3RvbWVyIC0tfD4gQ3VzdG9tZXJcblxuICBjbGFzcyBBZGRyZXNzIHtcbiAgICAgICAgICBzdHJlZXQ6IFN0cmluZ1xuICAgICAgICAgIGNpdHk6IFN0cmluZ1xuICAgICAgICAgIHN0YXRlOiBTdHJpbmdcbiAgICAgICAgICB6aXBjb2RlOiBJbnRcblxuICAgICAgICAgIGVudGVyU3RyZWV0KClcbiAgICAgICAgICBlbnRlckNpdHkoKVxuICAgICAgICAgIGVudGVyU3RhdGUoKVxuICAgICAgICAgIGVudGVyWmlwY29kZSgpXG4gICAgICB9XG5cbiAgY2xhc3MgUHJvZHVjdCB7XG4gICAgICAgICAgcHJvZHVjdElEOiBJbnRcbiAgICAgICAgICBwcm9kdWN0TmFtZTogU3RyaW5nXG4gICAgICAgICAgcHJvZHVjdFByaWNlOiBGbG9hdFxuXG4gICAgICAgICAgZ2V0UHJpY2UoKVxuICAgICAgICAgIHNldFByaWNlKClcbiAgICAgIH1cbiAgXG4gIGNsYXNzIEN1c3RvbWVyIHtcbiAgICAgICAgICBjdXN0TmFtZTogU3RyaW5nXG4gICAgICAgICAgY3VzdElEOiBJbnRcbiAgICAgICAgICBjdXN0UGhudW06IEludFxuXG4gICAgICAgICAgcHVyY2hhc2VJdGVtKClcbiAgICAgICAgICByZXF1ZXN0QmlsbCgpXG4gICAgICAgICAgZW50ZXJDdXNEZXRhaWwoKVxuICAgICAgfVxuXHRcdFx0XHRcdFxuICBjbGFzcyBQdXJjaGFzZURldGFpbCB7XG4gICAgICAgICAgY3VzdElEOiBJbnRcbiAgICAgICAgICBxdWFudGl0eTogSW50XG4gICAgICAgICAgcHVyY2hhc2VEYXRlOiBEYXRlXG4gICAgICAgICAgcHJvZHVjdElEOiBJbnRcblxuICAgICAgICAgIGNhbGN1bGF0ZVRvdGFsQW10KClcbiAgICAgICAgICBnZW5lcmF0ZVB1cmNoYXNlTGlzdCgpXG4gIH1cblxuICBjbGFzcyBEaXNjb3VudCB7XG4gICAgICAgICAgZGlzY291bnRUeXBlXG4gICAgICAgICAgZGlzY291bnRWYWx1ZVxuXG4gICAgICAgICAgc2VsZWN0RGlzY291bnQoKVxuICB9XG5cbiAgY2xhc3MgUHJlbWl1bUN1c3RvbWVyIHtcbiAgICAgICAgICBwcmVtaXVtRGlzY291bnQ6IEludFxuXG4gICAgICAgICAgZW50ZXJDdXN0RGV0YWlsKClcbiAgfVxuXG4gIGNsYXNzIFJlZ3VsYXJDdXN0b21lciB7XG4gICAgICAgICAgcmVndWxhckRpc2NvdW50OiBJbnRcblxuICAgICAgICAgIGVudGVyQ3VzdERldGFpbCgpXG4gIH1cblxuICBjbGFzcyBCaWxsIHtcbiAgICAgICAgICBwYXlhYmxlQW10XG5cbiAgICAgICAgICBjYWxjdWxhdGVQYXlhYmxlQW10KClcbiAgICAgICAgICBnZW5lcmF0ZUJpbGwoKVxuICB9XG5cbiAgY2xhc3MgUGF5bWVudENvdW50ZXIge1xuICAgICAgICAgIDw8aW50ZXJmYWNlPj5cblxuICAgICAgICAgIGFsY3VsYXRlUGF5YWJsZUFtdCgpXG4gICAgICAgICAgZ2VuZXJhdGVCaWxsKClcbiAgfSIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiY2xhc3NEaWFncmFtXG5cbiAgQWRkcmVzcyBcIjFcIiAtLSogXCIxXCIgQ3VzdG9tZXI6IEhhc1xuICBDdXN0b21lciBcIjEgSXMgU29sZCBUb1wiIC0tIFwiKiBQdXJjaGFzZXNcIiBQcm9kdWN0XG4gIEN1c3RvbWVyIC0tICBQdXJjaGFzZURldGFpbFxuICBQdXJjaGFzZURldGFpbCAtLSBQcm9kdWN0XG4gIEJpbGwgIC0tbyBDdXN0b21lcjogQmVsb25ncyB0b1xuICBCaWxsIC4uPiBQdXJjaGFzZURldGFpbFxuICBCaWxsIC4uPiBEaXNjb3VudFxuICBEaXNjb3VudCAuLj4gUHVyY2hhc2VEZXRhaWxcbiAgQmlsbCAuLnw-IFBheW1lbnRDb3VudGVyOiBBY2NlcHRcbiAgUmVndWxhckN1c3RvbWVyIC0tfD4gQ3VzdG9tZXJcbiAgUHJlbWl1bUN1c3RvbWVyIC0tfD4gQ3VzdG9tZXJcblxuICBjbGFzcyBBZGRyZXNzIHtcbiAgICAgICAgICBzdHJlZXQ6IFN0cmluZ1xuICAgICAgICAgIGNpdHk6IFN0cmluZ1xuICAgICAgICAgIHN0YXRlOiBTdHJpbmdcbiAgICAgICAgICB6aXBjb2RlOiBJbnRcblxuICAgICAgICAgIGVudGVyU3RyZWV0KClcbiAgICAgICAgICBlbnRlckNpdHkoKVxuICAgICAgICAgIGVudGVyU3RhdGUoKVxuICAgICAgICAgIGVudGVyWmlwY29kZSgpXG4gICAgICB9XG5cbiAgY2xhc3MgUHJvZHVjdCB7XG4gICAgICAgICAgcHJvZHVjdElEOiBJbnRcbiAgICAgICAgICBwcm9kdWN0TmFtZTogU3RyaW5nXG4gICAgICAgICAgcHJvZHVjdFByaWNlOiBGbG9hdFxuXG4gICAgICAgICAgZ2V0UHJpY2UoKVxuICAgICAgICAgIHNldFByaWNlKClcbiAgICAgIH1cbiAgXG4gIGNsYXNzIEN1c3RvbWVyIHtcbiAgICAgICAgICBjdXN0TmFtZTogU3RyaW5nXG4gICAgICAgICAgY3VzdElEOiBJbnRcbiAgICAgICAgICBjdXN0UGhudW06IEludFxuXG4gICAgICAgICAgcHVyY2hhc2VJdGVtKClcbiAgICAgICAgICByZXF1ZXN0QmlsbCgpXG4gICAgICAgICAgZW50ZXJDdXNEZXRhaWwoKVxuICAgICAgfVxuXHRcdFx0XHRcdFxuICBjbGFzcyBQdXJjaGFzZURldGFpbCB7XG4gICAgICAgICAgY3VzdElEOiBJbnRcbiAgICAgICAgICBxdWFudGl0eTogSW50XG4gICAgICAgICAgcHVyY2hhc2VEYXRlOiBEYXRlXG4gICAgICAgICAgcHJvZHVjdElEOiBJbnRcblxuICAgICAgICAgIGNhbGN1bGF0ZVRvdGFsQW10KClcbiAgICAgICAgICBnZW5lcmF0ZVB1cmNoYXNlTGlzdCgpXG4gIH1cblxuICBjbGFzcyBEaXNjb3VudCB7XG4gICAgICAgICAgZGlzY291bnRUeXBlXG4gICAgICAgICAgZGlzY291bnRWYWx1ZVxuXG4gICAgICAgICAgc2VsZWN0RGlzY291bnQoKVxuICB9XG5cbiAgY2xhc3MgUHJlbWl1bUN1c3RvbWVyIHtcbiAgICAgICAgICBwcmVtaXVtRGlzY291bnQ6IEludFxuXG4gICAgICAgICAgZW50ZXJDdXN0RGV0YWlsKClcbiAgfVxuXG4gIGNsYXNzIFJlZ3VsYXJDdXN0b21lciB7XG4gICAgICAgICAgcmVndWxhckRpc2NvdW50OiBJbnRcblxuICAgICAgICAgIGVudGVyQ3VzdERldGFpbCgpXG4gIH1cblxuICBjbGFzcyBCaWxsIHtcbiAgICAgICAgICBwYXlhYmxlQW10XG5cbiAgICAgICAgICBjYWxjdWxhdGVQYXlhYmxlQW10KClcbiAgICAgICAgICBnZW5lcmF0ZUJpbGwoKVxuICB9XG5cbiAgY2xhc3MgUGF5bWVudENvdW50ZXIge1xuICAgICAgICAgIDw8aW50ZXJmYWNlPj5cblxuICAgICAgICAgIGFsY3VsYXRlUGF5YWJsZUFtdCgpXG4gICAgICAgICAgZ2VuZXJhdGVCaWxsKClcbiAgfSIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9)

### Sequence Diagram
#### :large_blue_circle: Search Book: Use Case
<h4 style ="text-align: center">- Main Scenario -</h4>

The Customer specifies an author onthe Search Page and then presses the Search button.

The system validates the Customer's search criteria.

If author is entered, the System searches the Catalog for books associated with the specified author.

When the search is complete, the system displays the search results on the Search Results page.

<h4 style ="text-align: center">- Alternate path -</h4>

If the Customer did not enter the name of an author before pressing the Search button, the System displays an error message.

[![](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG5cdEN1c3RvbWVyLT4-K1NlYXJjaCBQYWdlOiAxOiBvblNlYXJjaChhdXRob3IpXG4gIFNlYXJjaCBQYWdlIC0-PiBTZWFyY2ggUGFnZTogMS4xOiBWYWxpZGF0ZVNlYXJjaENyaXRlcmlhKClcblxuICBhbHQgYXV0aG9yIGVudGVyZWRcbiAgU2VhcmNoIFBhZ2UtPj4gQ2F0YWxvZzogMS4yOiBTZWFyY2hCeUF1dGhvcihhdXRob3IpXG4gIENhdGFsb2ctPj5TZWFyY2ggUmVzdWx0czogMS4yLjE6IENyZWF0ZSgpXG4gIFNlYXJjaCBSZXN1bHRzLT4-IFNlYXJjaCBSZXN1bHRzIFBhZ2U6IDEuMi4xLjEgZGlzcGxheSgpXG5cbiAgZWxzZSBhdXRob3Igbm90IGVudGVyZWRcbiAgU2VhcmNoIFBhZ2UtPj4gU2VhcmNoIFBhZ2U6IDEuMzogZGlzcGxheUVycm9yTWVzc2FnZSgpXG4gIGVuZCAiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG5cdEN1c3RvbWVyLT4-K1NlYXJjaCBQYWdlOiAxOiBvblNlYXJjaChhdXRob3IpXG4gIFNlYXJjaCBQYWdlIC0-PiBTZWFyY2ggUGFnZTogMS4xOiBWYWxpZGF0ZVNlYXJjaENyaXRlcmlhKClcblxuICBhbHQgYXV0aG9yIGVudGVyZWRcbiAgU2VhcmNoIFBhZ2UtPj4gQ2F0YWxvZzogMS4yOiBTZWFyY2hCeUF1dGhvcihhdXRob3IpXG4gIENhdGFsb2ctPj5TZWFyY2ggUmVzdWx0czogMS4yLjE6IENyZWF0ZSgpXG4gIFNlYXJjaCBSZXN1bHRzLT4-IFNlYXJjaCBSZXN1bHRzIFBhZ2U6IDEuMi4xLjEgZGlzcGxheSgpXG5cbiAgZWxzZSBhdXRob3Igbm90IGVudGVyZWRcbiAgU2VhcmNoIFBhZ2UtPj4gU2VhcmNoIFBhZ2U6IDEuMzogZGlzcGxheUVycm9yTWVzc2FnZSgpXG4gIGVuZCAiLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ)
### State Chart Diagram
[![](https://mermaid.ink/img/eyJjb2RlIjoic3RhdGVEaWFncmFtXG5cdFsqXSAtLT4gaWRsZVxuICAgICAgICBpZGxlIC0tPiBWZXJpZnlBY2NvdW50XG5cbiAgICAgICAgc3RhdGUgVmVyaWZ5QWNjb3VudCB7XG4gICAgICAgICAgICAgICAgVmVyaWZ5Q2FyZCAtLT4gQ2FyZENoZWNrXG4gICAgICAgICAgICAgICAgQ2FyZENoZWNrIC0tPiBpZGxlOiBlbHNlXG4gICAgICAgICAgICAgICAgc3RhdGUgQ2FyZFZhbGlkIHt9XG4gICAgICAgICAgICAgICAgQ2FyZENoZWNrIC0tPiBDYXJkVmFsaWQ6IHZhbGlkXG4gICAgICAgICAgICAgICAgQ2FyZFZhbGlkIC0tPiBWZXJpZnlQaW5cbiAgICAgICAgICAgICAgICBzdGF0ZSBWZXJpZnlDYXJkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcmRTdWJtaXR0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRDYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5DYXJkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0YXRlIFZlcmlmeVBpbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwaW5TdWJtaXR0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRQaW5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblBpblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdGF0ZSBQaW5Db3JyZWN0IHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RhdGUgUGluSW5jb3JyZWN0IHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgVmVyaWZ5UGluIC0tPiBQaW5JbnB1dFxuICAgICAgICAgICAgICAgIFBpbklucHV0IC0tPiBQaW5Db3JyZWN0OiB2YWxpZFxuICAgICAgICAgICAgICAgIFBpbklucHV0IC0tPiBQaW5JbmNvcnJlY3Q6IGVsc2VcbiAgICAgICAgICAgICAgICBQaW5JbmNvcnJlY3QgLS0-IFZlcmlmeVBpbjogKHRyaWVzIDwgbWF4VHJpZXMpIHRyeWllcyArK1xuICAgICAgICB9XG5cblxuICAgICAgICBzdGF0ZSBQcmludFJlY2lwZSB7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUgRGlzcGVuc2VNb25leSB7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUgQWNjb3VudEFjdGlvbiB7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIERpc3BlbnNlTW9uZXkgLS0-IFByaW50UmVjaXBlXG4gICAgICAgIEFjY291bnRBY3Rpb24gLS0-IERpc3BlbnNlTW9uZXlcbiAgICAgICAgQWNjb3VudEFjdGlvbiAtLT4gUHJpbnRSZWNpcGVcbiAgICAgICAgXG4gICAgICAgIFByaW50UmVjaXBlIC0tPiBPXG4gICAgICAgIERpc3BlbnNlTW9uZXkgLS0-IE9cbiAgICAgICAgTyAtLT4gaWRsZVxuXG4gICAgICAgIFxuXHRcdFx0XHRcdCIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9)](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoic3RhdGVEaWFncmFtXG5cdFsqXSAtLT4gaWRsZVxuICAgICAgICBpZGxlIC0tPiBWZXJpZnlBY2NvdW50XG5cbiAgICAgICAgc3RhdGUgVmVyaWZ5QWNjb3VudCB7XG4gICAgICAgICAgICAgICAgVmVyaWZ5Q2FyZCAtLT4gQ2FyZENoZWNrXG4gICAgICAgICAgICAgICAgQ2FyZENoZWNrIC0tPiBpZGxlOiBlbHNlXG4gICAgICAgICAgICAgICAgc3RhdGUgQ2FyZFZhbGlkIHt9XG4gICAgICAgICAgICAgICAgQ2FyZENoZWNrIC0tPiBDYXJkVmFsaWQ6IHZhbGlkXG4gICAgICAgICAgICAgICAgQ2FyZFZhbGlkIC0tPiBWZXJpZnlQaW5cbiAgICAgICAgICAgICAgICBzdGF0ZSBWZXJpZnlDYXJkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcmRTdWJtaXR0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRDYXJkXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5DYXJkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0YXRlIFZlcmlmeVBpbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwaW5TdWJtaXR0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRQaW5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblBpblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdGF0ZSBQaW5Db3JyZWN0IHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3RhdGUgUGluSW5jb3JyZWN0IHtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgVmVyaWZ5UGluIC0tPiBQaW5JbnB1dFxuICAgICAgICAgICAgICAgIFBpbklucHV0IC0tPiBQaW5Db3JyZWN0OiB2YWxpZFxuICAgICAgICAgICAgICAgIFBpbklucHV0IC0tPiBQaW5JbmNvcnJlY3Q6IGVsc2VcbiAgICAgICAgICAgICAgICBQaW5JbmNvcnJlY3QgLS0-IFZlcmlmeVBpbjogKHRyaWVzIDwgbWF4VHJpZXMpIHRyeWllcyArK1xuICAgICAgICB9XG5cblxuICAgICAgICBzdGF0ZSBQcmludFJlY2lwZSB7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUgRGlzcGVuc2VNb25leSB7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUgQWNjb3VudEFjdGlvbiB7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIERpc3BlbnNlTW9uZXkgLS0-IFByaW50UmVjaXBlXG4gICAgICAgIEFjY291bnRBY3Rpb24gLS0-IERpc3BlbnNlTW9uZXlcbiAgICAgICAgQWNjb3VudEFjdGlvbiAtLT4gUHJpbnRSZWNpcGVcbiAgICAgICAgXG4gICAgICAgIFByaW50UmVjaXBlIC0tPiBPXG4gICAgICAgIERpc3BlbnNlTW9uZXkgLS0-IE9cbiAgICAgICAgTyAtLT4gaWRsZVxuXG4gICAgICAgIFxuXHRcdFx0XHRcdCIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9)
## Table of Contents
[ToC]
