Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • main
  • tutorial-1
  • tutorial-10
  • tutorial-11
  • tutorial-12
  • tutorial-2
  • tutorial-3
  • tutorial-4
  • tutorial-5
  • tutorial-6
  • tutorial-7
  • tutorial-8
  • tutorial-9
13 results

Target

Select target project
  • mariah15/alp4-tutorials
  • janib03/alp4-tutorials
  • mactavish96/alp4-tutorials
3 results
Select Git revision
  • main
  • tutorial-1
2 results
Show changes
Commits on Source (156)
Showing with 4307 additions and 1033 deletions
.idea
*.iml
node_modules
compile_flags.txt
# ALP4 Tutorial-1 # ALP4 Tutorial-12
This branch contains all materials for the first tutorial session. This branch contains all materials for the 12 tutorial session.
## Agenda ## Agenda
- Greetings and self-introduction - Assignment's solution presentation
- [Organization](./orga.md) - Recap & Discussion: exam preparation, more on Web Development
- [Development environment setup](./env.md) - Q&A
- [Git Basics](./git.md)
- [Review of C programming language](./clang.md)
- Questions for the first assignment
- Groups for assignments
## Usage
Please read the separate markdown files accordingly for detailed information.
# Development environment setup
This document contains all of the information your need to get started with your development environment.
## Access to Linux-pool
You will need to have an institutional account in order to have access to the Linux-pool (Andorra).
Go to https://portal.mi.fu-berlin.de/login and login in with your ZEDAT account. If you don't have a ZEDAT account yet, you need to reach out to [ZEDAT](https://www.zedat.fu-berlin.de/Home) or [IT-Services](http://www.mi.fu-berlin.de/w/IT).
Further information can be found here: http://www.mi.fu-berlin.de/w/IT/Computeraccess
## Configuring SSH-Key-Based Authentication
After setting up your account, let's configure SSH-key-based authentication for you to have a secure way of connecting to the Linux-Pool(Andorra) and to the Gitlab at FU (via `git`).
The instructions described below only work for Linux-distributions or Unix-like operating systems. For those who are using Windows, please check Microsoft's online documentation for SSH on Windows: https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_overview
Alternatively, you can use WSL(Windows Subsystem for Linux), please check Microsoft's online documentation: https://learn.microsoft.com/en-us/windows/wsl/install
### Overview of SSH-Key-Based Authentication
An SSH server can authenticate clients using a variety of different methods. The most basic of these is password authentication, which is easy to use, but not the most secure.
SSH Keys is proved to be a reliable and secure alternative.
SSH key pairs are two cryptographically secure keys that can be used to authenticate a client to an SSH server. Each key pair consists of a **public key** and a **private key**.
The private key is retained by the client and should be **kept absolutely secret**.
The associated public key can be shared freely without any negative consequences. The public key can be used to encrypt messages that only the private key can decrypt.
The public key is uploaded to a remote server that you want to be able to log into with SSH. The key is added to a special file within the user account you will be logging into called `~/.ssh/authorized_keys`
![](./images/ssh-key-auth-flow.png)
### Step 1: Generating SSH Keys
First, open you terminal and enter the following command:
```sh
# create .ssh folder in home directory if needed and cd into it
mkdir -p ~/.ssh && cd ~/.ssh
# command to generate key-pair using recommended ed25519 algorithm
ssh-keygen -t ed25519
```
then you should see the following output:
```sh
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/username/.ssh/id_ed25519):
```
if you press enter directly, the default key-pair will be saved in your user's home directory under the name `id_ed25519` and `id_ed25519.pub`, which, are the private key and the public key.
It's recommended to give it a reasonable name to your keys, so that you can recall it later when you need to manage multiple key-pairs for different servers in the future.
Let's assume that, you given the name `fu`, and then you will see the following output:
```sh
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
```
you can set a passphrase for the key, it's optional. If you enter one, you will have to provide it every time you use this key (unless you are running SSH agent software that stores the decrypted key). If you do not want to set a passphrase, you can press ENTER to bypass this prompt.
You now have a public and private key that you can use to authenticate with output like this:
```sh
Your identification has been saved in /home/username/.ssh/fu
Your public key has been saved in /home/username/.ssh/fu.pub
The key fingerprint is:
SHA256:L2ZhMFacpJhR9q+1eZOo/vJfIDge6sP13l0zoeihGb4 username@hostname
The key's randomart image is:
+--[ED25519 256]--+
| ..ooo. |
| = +o |
| o = . |
| . o o |
| S + . . |
| +.B =.o. .|
| ...*o=o+..o.|
| .oooo*o.+ .o|
| .ooE=oo . |
+----[SHA256]-----+
```
### Step 2: Adding the SSH Public Key to Your Server
The simplest way to copy your public key to an existing server is to use a utility called `ssh-copy-id`. Because of its simplicity, this method is recommended if available.
The `ssh-copy-id` program is included in the OpenSSH packages in many distributions, so you may already have it available on your local system.
Now, use the following command to copy your SSH public key to the target server:
```sh
# make sure you are still in the directory where the keys were generated
# replace [ZEDAT_USER_NAME] with your own ZEDAT account
ssh-copy-id -i fu.pub [ZEDAT_USER_NAME]@andorra.imp.fu-berlin.de
```
You might see an output like this:
```sh
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
```
This means that your local computer does not recognize the remote host. This will happen the first time you connect to a new host. Type yes and press ENTER to continue. And you will be asked to provide the password of your ZEDAT account:
```sh
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
ZEDAT_USER_NAME@andorra.imp.fu-berlin.de's password:
```
After providing the correct password, it will then copy the contents of your `~/.ssh/fu.pub` key into a file in the remote account’s home `~/.ssh` directory called `authorized_keys`.
If you don't have `ssh-copy-id` available, you could copy your SSH public key manually using the following command:
```
# make sure you are loacted in the ~/.ssh directory
cat ~/.ssh/fu.pub | ssh [ZEDAT_USER_NAME]@andorra.imp.fu-berlin.de "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
```
This will copy the content of your public key and append it to the `~/.ssh/authorized_keys` on the remote server.
### Step 3: Connecting to Your Server Using SSH Keys
If you have successfully completed the procedures above, you should be able to log into the remote host without the remote account’s password.
```sh
# since ssh uses the default private key under the name ~/.ssh/id_rsa, ~/.ssh/id_dsa etc.
# We have to use -i to select the private key we just generated explicitly, but we will fix that later
ssh -i ~/.ssh/fu [ZEDAT_USER_NAME]@andorra.imp.fu-berlin.de
```
If this is your first time connecting to this host (if you used the last method above), you may see something like this:
```sh
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
```
This means that your local computer does not recognize the remote host. Type yes and then press ENTER to continue.
If you did not supply a passphrase for your private key, you will be logged in immediately. If you supplied a passphrase for the private key when you created the key, you will be required to enter it now. Afterwards, a new shell session will be created for you with the account on the remote system.
### Step 4: Saving Your SSH options in a Configuration file
Typing `ssh -i identity_file username@hostname` to connect to your target server is quite verbose, we want to create a kind of shortcut to memorize these options so that we can set up the connection quickly without worrying about the details.
Now, let's create a configuration file using the following command:
```sh
touch ~/.ssh/config
```
Then open the file using any text editor you prefer, e.g. `vi ~/.ssh/config` or `nano ~/.ssh.config` and add the following content to the configuration file:
```sh
# change [ZEDAT_USER_NAME] to your own ZEDAT account
# This option is only useful in MacOS, ignore it in other OS
IgnoreUnknown UseKeychain
UseKeychain yes
# For andorra
Host andorra
HostName andorra.imp.fu-berlin.de
User [ZEDAT_USER_NAME]
IdentityFile ~/.ssh/fu
# For gitlab at FU
Host git.imp.fu-berlin.de
User git
IdentityFile ~/.ssh/fu
# Wildcard
Host *
# add the keys automatically to a running ssh-agent
AddKeysToAgent yes
UseKeychain yes
```
We are not going to discuss the syntax of the configuration file here, you can read the man page using `man ssh_config` for further information.
Now, save the file and then test the connection using the following command:
```
# test the connection to Andorra, you make have to invoke CTRL-C to quit
ssh -T andorra
```
Congratulations, from now on, you can always set up a new secure connection between your local device and the Linux-Pool using the command `ssh andorra`. (For Gitlab we won't set up the connection explicitly, but via the `git` command)
## Access to Gitlab at FU
Go to https://git.imp.fu-berlin.de/users/sign_in and sign in with you ZEDAT account and fill in your personal information.
You will be using Gitlab intensively for later assignments, read [this markdown file](./git.md) for more information about Git.
Later we are going to use the `git` command via SSH to manipulate the git repository hosted by Gitlab at FU. But we still need to add our public key to Gitlab, so that we can manipulate the remote repository without using password authentication.
### Adding your SSH Key to your Gitlab account
Just like storing our public key on the andorra server, we need to add our public key to our Gitlab account:
1. Sign in to [GitLab](https://git.imp.fu-berlin.de/).
2. On the top bar, in the upper-right corner, select your avatar.
3. Select **Edit profile**.
4. On the left sidebar, select **SSH Keys**.
5. In the Key box, paste the contents of your public key (use `cat ~/.ssh/fu.pub` to print the contents).
6. Optional. Type a description in the **Title** box, Select the **Usage type** and update the **Expiration date** (clear the field to set the key to be permanent).
7. Add the key
Now, you can run the following command to test the connection to the Gitlab:
```
# test the connection
ssh -T git@git.imp.fu-berlin.de
# try to clone this repository
git clone git@git.imp.fu-berlin.de:mactavish96/alp4-tutorials.git
```
## Installing Git and GCC/Clang
For the assignments you will need to use `git` to submit and `gcc` or `clang` to compile and test the your program.
If you are using MacOS or one of the many Linux-distributions, you should already have both commands available on your machine.
If you are using WSL on Windows, you might need to install `gcc` separately:
```sh
# assuming you are using WSL Ubuntu
sudo apt-get update
sudo apt-get install gcc
```
You can verify if those programs are already available on your machine using the following commands:
```sh
git --version
gcc --version
# or
cc --version
```
Alternatively, you can write your programs directly on Andorra, all these tools are already available to you.
## Troubleshooting
### Gitlab related
Check: https://docs.gitlab.com/ee/user/ssh.html#troubleshooting
## References
- https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server
- https://docs.gitlab.com/ee/user/ssh.html
- https://docs.github.com/en/authentication/connecting-to-github-with-ssh/about-ssh
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Lager_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 800 907" style="enable-background:new 0 0 800 907;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st1{fill:#59AFE1;stroke:#404040;stroke-width:4;stroke-linejoin:round;stroke-miterlimit:10;}
.st2{fill:#FFFFFF;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st3{fill:#B18BE8;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st4{fill:#404040;}
.st5{fill:none;stroke:#CCCCCC;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st6{fill:#999999;}
.st7{fill:#B3E3FF;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st8{fill:#414141;}
</style>
<path class="st0" d="M321.6,272.5V249 M332.4,263.8l-10.8,10.9l-10.9-10.9 M615.9,235.4h-83h41.2 M419.2,276.4c0,22.6-18.4,41-41,41
H176 M419.2,276.4c0-22.6,18.4-41,41-41h30.7"/>
<circle class="st1" cx="321.6" cy="317.4" r="21"/>
<ellipse transform="matrix(0.1602 -0.9871 0.9871 0.1602 197.5424 702.9832)" class="st2" cx="511.9" cy="235.4" rx="21" ry="21"/>
<circle class="st2" cx="595.1" cy="235.4" r="21"/>
<ellipse transform="matrix(0.1602 -0.9871 0.9871 0.1602 -113.173 501.7811)" class="st2" cx="238.3" cy="317.4" rx="21" ry="21"/>
<circle class="st2" cx="155.1" cy="317.4" r="21"/>
<path class="st3" d="M524.3,99.5h141.6v50H524.3L524.3,99.5z"/>
<path class="st4" d="M552.1,122.8c-0.1-0.8-0.8-1.8-2.2-1.8c-1.2,0-2.1,0.8-2.1,1.8c0,0.8,0.5,1.3,1.4,1.5l1.6,0.3
c1.8,0.4,2.8,1.5,2.8,3c0,1.6-1.4,3.1-3.7,3.1c-2.6,0-3.8-1.6-4-3.2l1.4-0.4c0.1,1.2,0.9,2.3,2.5,2.3c1.5,0,2.2-0.8,2.2-1.7
c0-0.8-0.5-1.4-1.6-1.7l-1.5-0.3c-1.5-0.3-2.6-1.3-2.6-2.9c0-1.7,1.5-3.2,3.5-3.2c2.4,0,3.4,1.5,3.6,2.6L552.1,122.8L552.1,122.8z
M562.8,126.9c0,2.2-1.5,3.8-3.7,3.8s-3.7-1.6-3.7-3.8s1.5-3.8,3.7-3.8S562.8,124.7,562.8,126.9z M561.4,126.9
c0-1.7-1.1-2.6-2.2-2.6s-2.2,0.9-2.2,2.6c0,1.7,1.1,2.6,2.2,2.6S561.4,128.6,561.4,126.9z M565.3,130.5v-7.2h1.3v1
c0.5-0.8,1.4-1.2,2.2-1.2c0.9,0,1.8,0.4,2.2,1.4c0.6-1,1.5-1.4,2.4-1.4c1.3,0,2.5,0.9,2.5,2.7v4.7h-1.4V126c0-0.9-0.5-1.6-1.5-1.6
s-1.7,0.8-1.7,1.8v4.4H570V126c0-0.9-0.4-1.6-1.5-1.6c-1,0-1.7,0.8-1.7,1.8v4.3L565.3,130.5L565.3,130.5z M585.2,128.5
c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.5h-5.4c0,1.3,1,2.2,2.2,2.2
s1.8-0.6,2-1.5L585.2,128.5z M583.8,126.2c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H583.8z M592.5,130.5v-10.6h6.5v1.4h-5v3.4h4.5
v1.4H594v4.5h-1.5V130.5z M607.1,128.5c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8
c2.2,0,3.5,1.5,3.5,3.8v0.5h-5.4c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L607.1,128.5z M605.7,126.2c0-1-0.7-1.8-2-1.8
c-1.2,0-1.9,0.9-2,1.8H605.7z M611.4,126.4l1.9-0.3c0.4-0.1,0.6-0.3,0.6-0.5c0-0.7-0.5-1.3-1.6-1.3c-1,0-1.5,0.6-1.6,1.5l-1.4-0.3
c0.2-1.4,1.4-2.3,3-2.3c2.2,0,3,1.2,3,2.6v3.6c0,0.6,0.1,1,0.1,1.2H614c0-0.2-0.1-0.5-0.1-1c-0.3,0.5-1,1.2-2.3,1.2
c-1.5,0-2.4-1-2.4-2.2C609.3,127.3,610.2,126.6,611.4,126.4L611.4,126.4z M613.9,127.5v-0.3l-2.2,0.3c-0.6,0.1-1.1,0.4-1.1,1.1
c0,0.5,0.4,1,1.2,1C613,129.6,613.9,129,613.9,127.5z M620.2,123.3h1.6v1.3h-1.6v3.8c0,0.7,0.3,1,1,1c0.2,0,0.4,0,0.6-0.1v1.2
c-0.1,0-0.5,0.1-1,0.1c-1.2,0-2-0.8-2-2.1v-4h-1.4v-1.3h0.4c0.8,0,1.1-0.5,1.1-1.1V121h1.3L620.2,123.3L620.2,123.3z M627,130.8
c-1.7,0-2.7-1.3-2.7-2.9v-4.5h1.4v4.3c0,1,0.4,1.9,1.6,1.9c1.1,0,1.7-0.8,1.7-1.8v-4.3h1.4v5.9c0,0.6,0,1.1,0.1,1.3h-1.4
c0-0.2-0.1-0.6-0.1-0.9C628.7,130.4,627.8,130.8,627,130.8z M637.6,124.8H637c-1.2,0-2,0.6-2,2.2v3.6h-1.4v-7.2h1.4v1.3
c0.5-1.1,1.4-1.4,2.2-1.4h0.5v1.5L637.6,124.8z M646.1,128.5c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9
c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.5h-5.4c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L646.1,128.5z M644.7,126.2
c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H644.7z"/>
<path class="st0" d="M595.1,192.7v-23.5 M606,184l-10.9,10.9L584.2,184"/>
<path class="st5" d="M129.3,441.1h541.4"/>
<path class="st6" d="M346.9,17.1c2,0,3.2,1.2,3.2,2.9c0,1.1-0.7,2-1.6,2.3c1.2,0.3,1.9,1.4,1.9,2.6c0,1.7-1.3,2.9-3.3,2.9h-3.7V17.1
C343.4,17.1,346.9,17.1,346.9,17.1z M346.8,21.8c1.2,0,1.9-0.7,1.9-1.7s-0.7-1.7-1.9-1.7H345v3.4C345,21.8,346.8,21.8,346.8,21.8z
M347,26.5c1.2,0,2-0.7,2-1.7s-0.6-1.7-1.9-1.7H345v3.4C345,26.5,347,26.5,347,26.5z M359.4,25.7c-0.4,1.3-1.6,2.3-3.2,2.3
c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.4H354c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L359.4,25.7z
M358,23.4c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H358z M363.9,21.8v5.9h-1.5v-5.9h-1.3v-1.3h1.3v-1.2c0-1.6,1.1-2.5,2.4-2.5
c0.5,0,0.8,0.1,0.8,0.2v1.3c-0.1,0-0.3-0.1-0.6-0.1c-0.5,0-1.1,0.2-1.1,1.2v1.1h1.7v1.3H363.9L363.9,21.8z M374.4,24.1
c0,2.2-1.5,3.8-3.7,3.8s-3.7-1.6-3.7-3.8s1.5-3.8,3.7-3.8S374.4,21.9,374.4,24.1z M373,24.1c0-1.7-1.1-2.6-2.2-2.6s-2.2,0.9-2.2,2.6
s1.1,2.6,2.2,2.6S373,25.8,373,24.1z M381,22h-0.6c-1.2,0-2,0.6-2,2.2v3.6H377v-7.2h1.4v1.3c0.5-1.1,1.4-1.4,2.2-1.4h0.5V22L381,22z
M389.4,25.7c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.4H384
c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L389.4,25.7z M388,23.4c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H388z M406.7,27.7v-8.3l-3.6,8.3
h-1.3l-3.6-8.3v8.3h-1.5V17.1h2l3.7,8.7l3.8-8.7h2v10.6C408.2,27.7,406.7,27.7,406.7,27.7z M417.8,25.7c-0.4,1.3-1.6,2.3-3.2,2.3
c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L417.8,25.7z
M416.3,23.4c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H416.3z M424.4,22h-0.6c-1.2,0-2,0.6-2,2.2v3.6h-1.4v-7.2h1.4v1.3
c0.5-1.1,1.4-1.4,2.2-1.4h0.5V22H424.4z M427.4,27.8c0.1,1,0.9,1.8,2,1.8c1.5,0,2.2-0.8,2.2-2.3v-1c-0.3,0.7-1.1,1.2-2.2,1.2
c-1.9,0-3.3-1.5-3.3-3.5c0-1.9,1.3-3.5,3.3-3.5c1.1,0,1.9,0.4,2.2,1.1v-1h1.4v6.7c0,1.8-0.9,3.6-3.6,3.6c-1.8,0-3.1-1.1-3.3-2.7
L427.4,27.8z M431.6,23.9c0-1.4-0.8-2.3-2.1-2.3c-1.2,0-2.1,0.9-2.1,2.3s0.8,2.3,2.1,2.3S431.6,25.3,431.6,23.9z M436.6,16.8
c0.6,0,1,0.4,1,1s-0.4,1-1,1s-1-0.5-1-1C435.6,17.2,436.1,16.8,436.6,16.8z M435.9,27.7v-7.2h1.4v7.2
C437.3,27.7,435.9,27.7,435.9,27.7z M441.9,27.7h-1.4v-7.2h1.4v1c0.5-0.9,1.4-1.2,2.2-1.2c1.7,0,2.6,1.2,2.6,2.9v4.6h-1.4v-4.3
c0-1-0.4-1.8-1.7-1.8c-1.1,0-1.7,0.9-1.7,2C441.9,23.7,441.9,27.7,441.9,27.7z M450.5,27.8c0.1,1,0.9,1.8,2,1.8
c1.5,0,2.2-0.8,2.2-2.3v-1c-0.3,0.7-1.1,1.2-2.2,1.2c-1.9,0-3.3-1.5-3.3-3.5c0-1.9,1.3-3.5,3.3-3.5c1.1,0,1.9,0.4,2.2,1.1v-1h1.4
v6.7c0,1.8-0.9,3.6-3.6,3.6c-1.8,0-3.1-1.1-3.3-2.7L450.5,27.8z M454.7,23.9c0-1.4-0.8-2.3-2.1-2.3c-1.2,0-2.1,0.9-2.1,2.3
s0.8,2.3,2.1,2.3S454.7,25.3,454.7,23.9z"/>
<path class="st0" d="M595.6,805.9v23.5 M584.7,814.6l10.9-10.8l10.8,10.8 M615.4,763.6h-83h41.2 M418.7,804.6c0,22.6-18.4,41-41,41
H175.6 M418.7,804.6c0-22.6,18.4-41,41-41h30.7"/>
<circle class="st2" cx="321.1" cy="845.6" r="21"/>
<circle class="st2" cx="237.9" cy="845.6" r="21"/>
<circle class="st1" cx="594.6" cy="763.6" r="21"/>
<ellipse transform="matrix(0.1602 -0.9871 0.9871 0.1602 -324.2571 1146.0814)" class="st2" cx="511.4" cy="763.6" rx="21" ry="21"/>
<circle class="st2" cx="154.6" cy="845.6" r="21"/>
<path class="st0" d="M594.6,720.9v-23.5 M605.5,712.2l-10.9,10.9l-10.8-10.9"/>
<path class="st6" d="M331.9,549.8h-4.7l-1.1,3h-1.6l4.2-10.6h1.7l4.2,10.6H333L331.9,549.8z M327.8,548.4h3.7l-1.8-4.8L327.8,548.4
L327.8,548.4z M338.7,546.8v5.9h-1.5v-5.9h-1.3v-1.3h1.3v-1.2c0-1.6,1.1-2.5,2.4-2.5c0.5,0,0.8,0.1,0.8,0.2v1.3
c-0.1,0-0.3-0.1-0.6-0.1c-0.5,0-1.1,0.2-1.1,1.2v1.1h1.7v1.3H338.7L338.7,546.8z M344.6,545.5h1.6v1.3h-1.6v3.8c0,0.7,0.3,1,1,1
c0.2,0,0.4,0,0.6-0.1v1.2c-0.1,0-0.5,0.1-1,0.1c-1.2,0-2-0.8-2-2.1v-4h-1.4v-1.3h0.4c0.8,0,1.1-0.5,1.1-1.1v-1.2h1.3V545.5
L344.6,545.5z M355,550.7c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4
c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L355,550.7z M353.5,548.4c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H353.5z M361.6,547H361
c-1.2,0-2,0.6-2,2.2v3.6h-1.4v-7.2h1.4v1.3c0.5-1.1,1.4-1.4,2.2-1.4h0.5v1.5L361.6,547z M370.1,548.6l1.9-0.3
c0.4-0.1,0.6-0.3,0.6-0.5c0-0.7-0.5-1.3-1.6-1.3c-1,0-1.5,0.6-1.6,1.5l-1.4-0.3c0.2-1.4,1.4-2.3,3-2.3c2.2,0,3,1.2,3,2.6v3.6
c0,0.6,0.1,1,0.1,1.2h-1.4c0-0.2-0.1-0.5-0.1-1c-0.3,0.5-1,1.2-2.3,1.2c-1.5,0-2.4-1-2.4-2.2C367.9,549.5,368.8,548.8,370.1,548.6
L370.1,548.6z M372.6,549.7v-0.3l-2.2,0.3c-0.6,0.1-1.1,0.4-1.1,1.1c0,0.5,0.4,1,1.2,1C371.6,551.8,372.6,551.2,372.6,549.7z
M381.6,552.7v-10.6h6.5v1.4h-5v3.4h4.5v1.4H383v4.5h-1.4V552.7z M391.6,548.6l1.9-0.3c0.4-0.1,0.6-0.3,0.6-0.5
c0-0.7-0.5-1.3-1.6-1.3c-1,0-1.5,0.6-1.6,1.5l-1.4-0.3c0.2-1.4,1.4-2.3,3-2.3c2.2,0,3,1.2,3,2.6v3.6c0,0.6,0.1,1,0.1,1.2h-1.4
c0-0.2-0.1-0.5-0.1-1c-0.3,0.5-1,1.2-2.3,1.2c-1.5,0-2.4-1-2.4-2.2C389.5,549.5,390.4,548.8,391.6,548.6L391.6,548.6z M394.2,549.7
v-0.3l-2.2,0.3c-0.6,0.1-1,0.4-1,1.1c0,0.5,0.4,1,1.2,1C393.2,551.8,394.2,551.2,394.2,549.7z M399.1,550.4c0.1,0.8,0.7,1.3,1.7,1.3
c0.8,0,1.2-0.4,1.2-1c0-0.4-0.3-0.8-0.9-0.9l-1.2-0.3c-1.1-0.2-1.8-1-1.8-2c0-1.2,1.2-2.3,2.6-2.3c2,0,2.6,1.3,2.7,1.9l-1.2,0.5
c-0.1-0.4-0.4-1.2-1.5-1.2c-0.7,0-1.2,0.5-1.2,1c0,0.4,0.3,0.8,0.8,0.9l1.2,0.3c1.3,0.3,2,1.1,2,2.1s-0.9,2.2-2.6,2.2
c-2,0-2.8-1.3-2.9-2.1L399.1,550.4L399.1,550.4z M407.9,545.5h1.6v1.3h-1.6v3.8c0,0.7,0.3,1,1,1c0.2,0,0.4,0,0.6-0.1v1.2
c-0.1,0-0.5,0.1-1,0.1c-1.2,0-2-0.8-2-2.1v-4h-1.4v-1.3h0.4c0.8,0,1.1-0.5,1.1-1.1v-1.2h1.3V545.5L407.9,545.5z M411.6,549.1v-1.2
h4.1v1.2H411.6z M418.4,552.7v-10.6h6.5v1.4h-5v3.4h4.5v1.4h-4.5v4.5h-1.5V552.7z M433.5,549.1c0,2.2-1.5,3.8-3.7,3.8
s-3.7-1.6-3.7-3.8s1.5-3.8,3.7-3.8S433.5,546.9,433.5,549.1z M432.1,549.1c0-1.7-1.1-2.6-2.2-2.6s-2.2,0.9-2.2,2.6
c0,1.7,1.1,2.6,2.2,2.6S432.1,550.8,432.1,549.1z M440.1,547h-0.6c-1.2,0-2,0.6-2,2.2v3.6h-1.4v-7.2h1.4v1.3
c0.5-1.1,1.4-1.4,2.2-1.4h0.5v1.5L440.1,547z M448,545.5l1.9,5.4l1.6-5.4h1.5l-2.3,7.2h-1.5l-1.9-5.5l-1.9,5.5h-1.5l-2.4-7.2h1.5
l1.6,5.4l1.9-5.4H448L448,545.5z M456.8,548.6l1.9-0.3c0.4-0.1,0.6-0.3,0.6-0.5c0-0.7-0.5-1.3-1.6-1.3c-1,0-1.5,0.6-1.6,1.5
l-1.4-0.3c0.2-1.4,1.4-2.3,3-2.3c2.2,0,3,1.2,3,2.6v3.6c0,0.6,0.1,1,0.1,1.2h-1.4c0-0.2-0.1-0.5-0.1-1c-0.3,0.5-1,1.2-2.3,1.2
c-1.5,0-2.4-1-2.4-2.2C454.6,549.5,455.6,548.8,456.8,548.6L456.8,548.6z M459.3,549.7v-0.3l-2.2,0.3c-0.6,0.1-1.1,0.4-1.1,1.1
c0,0.5,0.4,1,1.2,1C458.4,551.8,459.3,551.2,459.3,549.7z M467.7,547h-0.6c-1.2,0-2,0.6-2,2.2v3.6h-1.4v-7.2h1.4v1.3
c0.5-1.1,1.4-1.4,2.2-1.4h0.5v1.5L467.7,547z M474.9,551.7c-0.3,0.7-1.1,1.3-2.2,1.3c-2.1,0-3.4-1.7-3.4-3.8c0-2,1.4-3.8,3.4-3.8
c1.3,0,2,0.6,2.2,1.2v-4.7h1.4v9.5c0,0.7,0.1,1.2,0.1,1.3H475C475,552.5,474.9,552.2,474.9,551.7z M472.8,551.7
c1.3,0,2.1-1.1,2.1-2.6s-0.8-2.5-2.1-2.5s-2.1,1-2.1,2.5S471.4,551.7,472.8,551.7z M494.1,552.7v-8.3l-3.6,8.3h-1.3l-3.6-8.3v8.3
h-1.5v-10.6h2l3.7,8.7l3.8-8.7h2v10.6H494.1z M505.1,550.7c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8
c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L505.1,550.7z M503.7,548.4c0-1-0.7-1.8-2-1.8
c-1.2,0-1.9,0.9-2,1.8H503.7z M511.7,547h-0.6c-1.2,0-2,0.6-2,2.2v3.6h-1.4v-7.2h1.4v1.3c0.5-1.1,1.4-1.4,2.2-1.4h0.5v1.5L511.7,547
z M514.7,552.8c0.1,1,0.9,1.8,2,1.8c1.5,0,2.2-0.8,2.2-2.3v-1c-0.3,0.7-1.1,1.2-2.2,1.2c-1.9,0-3.3-1.5-3.3-3.5
c0-1.9,1.3-3.5,3.3-3.5c1.1,0,1.9,0.4,2.2,1.1v-1h1.4v6.7c0,1.8-0.9,3.6-3.6,3.6c-1.8,0-3.1-1.1-3.3-2.7L514.7,552.8L514.7,552.8z
M519,548.9c0-1.4-0.8-2.3-2.1-2.3c-1.2,0-2.1,0.9-2.1,2.3s0.8,2.3,2.1,2.3C518.1,551.2,519,550.3,519,548.9z M529.6,550.7
c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4c0,1.3,1,2.2,2.2,2.2
s1.8-0.6,2-1.5L529.6,550.7z M528.2,548.4c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H528.2z"/>
<path class="st3" d="M524.8,625.4h141.6v50H524.8L524.8,625.4z"/>
<path class="st4" d="M552.6,648.7c-0.1-0.8-0.8-1.8-2.2-1.8c-1.2,0-2.1,0.8-2.1,1.8c0,0.8,0.5,1.4,1.4,1.5l1.6,0.3
c1.8,0.4,2.8,1.5,2.8,3c0,1.6-1.4,3.1-3.7,3.1c-2.6,0-3.8-1.6-4-3.2l1.4-0.4c0.1,1.2,0.9,2.3,2.5,2.3c1.5,0,2.2-0.8,2.2-1.7
c0-0.8-0.5-1.4-1.6-1.6l-1.5-0.3c-1.5-0.3-2.6-1.3-2.6-2.9c0-1.7,1.5-3.2,3.5-3.2c2.4,0,3.4,1.5,3.6,2.6L552.6,648.7L552.6,648.7z
M563.3,652.8c0,2.2-1.5,3.8-3.7,3.8s-3.7-1.6-3.7-3.8s1.5-3.8,3.7-3.8S563.3,650.6,563.3,652.8z M561.8,652.8
c0-1.7-1.1-2.6-2.2-2.6s-2.2,0.9-2.2,2.6c0,1.7,1.1,2.6,2.2,2.6S561.8,654.5,561.8,652.8z M565.8,656.4v-7.2h1.3v1
c0.5-0.8,1.4-1.2,2.2-1.2c0.9,0,1.8,0.4,2.2,1.4c0.6-1,1.5-1.4,2.4-1.4c1.3,0,2.5,0.9,2.5,2.7v4.7H575v-4.5c0-0.9-0.5-1.6-1.5-1.6
s-1.7,0.8-1.7,1.8v4.4h-1.4V652c0-0.9-0.4-1.6-1.5-1.6c-1,0-1.7,0.8-1.7,1.8v4.3h-1.4L565.8,656.4z M585.7,654.4
c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4c0,1.3,1,2.2,2.2,2.2
s1.8-0.6,2-1.5L585.7,654.4z M584.3,652.1c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H584.3z M592.9,656.4v-10.6h6.5v1.4h-5v3.4h4.5
v1.4h-4.5v4.5h-1.5V656.4z M607.6,654.4c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8
c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L607.6,654.4z M606.1,652.1c0-1-0.7-1.8-2-1.8
c-1.2,0-1.9,0.9-2,1.8H606.1z M611.9,652.3l1.9-0.3c0.4-0.1,0.6-0.3,0.6-0.5c0-0.7-0.5-1.3-1.6-1.3c-1,0-1.5,0.6-1.6,1.5l-1.4-0.3
c0.2-1.4,1.4-2.3,3-2.3c2.2,0,3,1.2,3,2.6v3.6c0,0.6,0.1,1,0.1,1.2h-1.4c0-0.2-0.1-0.5-0.1-1c-0.3,0.5-1,1.2-2.3,1.2
c-1.5,0-2.4-1-2.4-2.2C609.7,653.2,610.7,652.5,611.9,652.3z M614.4,653.3V653l-2.2,0.3c-0.6,0.1-1.1,0.4-1.1,1.1c0,0.5,0.4,1,1.2,1
C613.5,655.5,614.4,654.9,614.4,653.3z M620.6,649.2h1.6v1.3h-1.6v3.8c0,0.7,0.3,1,1,1c0.2,0,0.4,0,0.6-0.1v1.2
c-0.1,0-0.5,0.1-1,0.1c-1.2,0-2-0.8-2-2.1v-4h-1.4v-1.3h0.4c0.8,0,1.1-0.5,1.1-1.1v-1.2h1.3L620.6,649.2L620.6,649.2z M627.5,656.7
c-1.7,0-2.7-1.3-2.7-2.9v-4.5h1.4v4.3c0,1,0.4,1.9,1.6,1.9c1.1,0,1.7-0.8,1.7-1.8v-4.4h1.4v5.9c0,0.6,0,1.1,0.1,1.3h-1.4
c0-0.2-0.1-0.6-0.1-0.9C629.2,656.3,628.3,656.7,627.5,656.7L627.5,656.7z M638.1,650.6h-0.6c-1.2,0-2,0.6-2,2.2v3.6h-1.4v-7.2h1.4
v1.3c0.5-1.1,1.4-1.4,2.2-1.4h0.5v1.5L638.1,650.6z M646.5,654.4c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9
c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L646.5,654.4z M645.1,652.1
c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H645.1z"/>
<g>
<path class="st7" d="M273.5,176.9h96.2v50h-96.2V176.9z"/>
<g>
<path class="st8" d="M306.4,208v-10h2l2.4,7.1c0.2,0.7,0.4,1.2,0.5,1.5c0.1-0.4,0.3-0.9,0.5-1.6l2.4-7h1.8v10h-1.3v-8.4l-2.9,8.4
h-1.2l-2.9-8.5v8.5H306.4z"/>
<path class="st8" d="M323.4,207.1c-0.5,0.4-0.9,0.7-1.3,0.8c-0.4,0.2-0.9,0.2-1.4,0.2c-0.8,0-1.4-0.2-1.8-0.6s-0.6-0.9-0.6-1.5
c0-0.4,0.1-0.7,0.2-1c0.2-0.3,0.4-0.5,0.6-0.7c0.3-0.2,0.6-0.3,0.9-0.4c0.2-0.1,0.6-0.1,1.1-0.2c1-0.1,1.7-0.3,2.2-0.4
c0-0.2,0-0.3,0-0.3c0-0.5-0.1-0.9-0.3-1.1c-0.3-0.3-0.8-0.4-1.4-0.4s-1,0.1-1.3,0.3c-0.3,0.2-0.5,0.6-0.6,1.1l-1.2-0.2
c0.1-0.5,0.3-0.9,0.5-1.2c0.3-0.3,0.6-0.6,1.1-0.7c0.5-0.2,1-0.3,1.6-0.3c0.6,0,1.1,0.1,1.5,0.2c0.4,0.1,0.7,0.3,0.9,0.6
c0.2,0.2,0.3,0.5,0.4,0.8c0,0.2,0.1,0.6,0.1,1.1v1.6c0,1.1,0,1.9,0.1,2.2c0.1,0.3,0.2,0.6,0.3,0.9h-1.3
C323.5,207.8,323.4,207.5,323.4,207.1z M323.3,204.4c-0.4,0.2-1.1,0.3-2,0.5c-0.5,0.1-0.9,0.2-1.1,0.2c-0.2,0-0.4,0.2-0.5,0.4
c-0.1,0.2-0.2,0.4-0.2,0.6c0,0.3,0.1,0.6,0.4,0.8c0.2,0.2,0.6,0.3,1.1,0.3s0.9-0.1,1.3-0.3c0.4-0.2,0.6-0.5,0.8-0.9
c0.1-0.3,0.2-0.7,0.2-1.2V204.4L323.3,204.4z"/>
<path class="st8" d="M327.1,199.4V198h1.2v1.4H327.1z M327.1,208v-7.3h1.2v7.3H327.1z"/>
<path class="st8" d="M330.9,208v-7.3h1.1v1c0.5-0.8,1.3-1.2,2.3-1.2c0.4,0,0.8,0.1,1.2,0.2c0.4,0.2,0.6,0.4,0.8,0.6
c0.2,0.2,0.3,0.6,0.4,0.9c0,0.2,0.1,0.6,0.1,1.2v4.5h-1.2v-4.4c0-0.5,0-0.9-0.1-1.1c-0.1-0.2-0.3-0.4-0.5-0.6
c-0.2-0.1-0.5-0.2-0.9-0.2c-0.5,0-1,0.2-1.4,0.5c-0.4,0.3-0.6,1-0.6,1.9v4H330.9z"/>
</g>
</g>
<g>
<path class="st7" d="M547.5,849.4h96.2v50h-96.2V849.4z"/>
<g>
<path class="st8" d="M580.4,880.5v-10h2l2.4,7.1c0.2,0.7,0.4,1.2,0.5,1.5c0.1-0.4,0.3-0.9,0.5-1.6l2.4-7h1.8v10h-1.3v-8.4
l-2.9,8.4h-1.2l-2.9-8.5v8.5H580.4z"/>
<path class="st8" d="M597.4,879.6c-0.5,0.4-0.9,0.7-1.3,0.8c-0.4,0.2-0.9,0.2-1.4,0.2c-0.8,0-1.4-0.2-1.8-0.6
c-0.4-0.4-0.6-0.9-0.6-1.5c0-0.4,0.1-0.7,0.2-1c0.2-0.3,0.4-0.5,0.6-0.7c0.3-0.2,0.6-0.3,0.9-0.4c0.2-0.1,0.6-0.1,1.1-0.2
c1-0.1,1.7-0.3,2.2-0.4c0-0.2,0-0.3,0-0.3c0-0.5-0.1-0.9-0.3-1.1c-0.3-0.3-0.8-0.4-1.4-0.4c-0.6,0-1,0.1-1.3,0.3
c-0.3,0.2-0.5,0.6-0.6,1.1l-1.2-0.2c0.1-0.5,0.3-0.9,0.5-1.2c0.3-0.3,0.6-0.6,1.1-0.7c0.5-0.2,1-0.3,1.6-0.3s1.1,0.1,1.5,0.2
c0.4,0.1,0.7,0.3,0.9,0.6c0.2,0.2,0.3,0.5,0.4,0.8c0,0.2,0.1,0.6,0.1,1.1v1.6c0,1.1,0,1.9,0.1,2.2c0.1,0.3,0.2,0.6,0.3,0.9h-1.3
C597.5,880.3,597.4,880,597.4,879.6z M597.3,876.9c-0.4,0.2-1.1,0.3-2,0.5c-0.5,0.1-0.9,0.2-1.1,0.2s-0.4,0.2-0.5,0.4
c-0.1,0.2-0.2,0.4-0.2,0.6c0,0.3,0.1,0.6,0.4,0.8c0.2,0.2,0.6,0.3,1.1,0.3s0.9-0.1,1.3-0.3c0.4-0.2,0.6-0.5,0.8-0.9
c0.1-0.3,0.2-0.7,0.2-1.2V876.9L597.3,876.9z"/>
<path class="st8" d="M601.1,871.9v-1.4h1.2v1.4H601.1z M601.1,880.5v-7.3h1.2v7.3H601.1z"/>
<path class="st8" d="M604.9,880.5v-7.3h1.1v1c0.5-0.8,1.3-1.2,2.3-1.2c0.4,0,0.8,0.1,1.2,0.2c0.4,0.2,0.6,0.4,0.8,0.6
c0.2,0.2,0.3,0.6,0.4,0.9c0,0.2,0.1,0.6,0.1,1.2v4.5h-1.2V876c0-0.5,0-0.9-0.1-1.1c-0.1-0.2-0.3-0.4-0.5-0.6
c-0.2-0.1-0.5-0.2-0.9-0.2c-0.5,0-1,0.2-1.4,0.5c-0.4,0.3-0.6,1-0.6,1.9v4H604.9z"/>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.2.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Lager_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 800 458" style="enable-background:new 0 0 800 458;" xml:space="preserve">
<style type="text/css">
.st0{fill:none;stroke:#404040;stroke-width:4;stroke-miterlimit:10;}
.st1{fill:#B18BE8;stroke:#404040;stroke-width:4;stroke-miterlimit:10;}
.st2{fill:#4ED1A1;stroke:#404040;stroke-width:4;stroke-miterlimit:10;}
.st3{fill:#B3E3FF;stroke:#404040;stroke-width:4;stroke-miterlimit:10;}
.st4{fill:#B18BE8;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st5{fill:#404040;}
.st6{fill:#4ED1A1;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st7{fill:none;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st8{fill:#B3E3FF;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
.st9{fill:#414141;}
</style>
<path class="st0" d="M148.2,187.3c0,22.6-18.4,41-41,41 M148.2,187.3c0-22.6,18.4-41,41-41h22.4"/>
<circle class="st1" cx="232.6" cy="146.3" r="21"/>
<path class="st0" d="M428.9,269.3c0-22.6-18.4-41-41-41 M428.9,269.3c0,22.6,18.4,41,41,41h214.4"/>
<circle class="st2" cx="513.2" cy="310.3" r="21"/>
<circle class="st2" cx="609.2" cy="310.3" r="21"/>
<circle class="st2" cx="705.2" cy="310.3" r="21"/>
<path class="st3" d="M75.2,228.3h417"/>
<circle class="st3" cx="54.2" cy="228.3" r="21"/>
<circle class="st3" cx="231.6" cy="228.3" r="21"/>
<circle class="st3" cx="328.6" cy="228.3" r="21"/>
<circle class="st3" cx="513.2" cy="228.3" r="21"/>
<path class="st4" d="M166,5.1h133.1v50H166V5.1z"/>
<path class="st5" d="M184.3,36.1V25.5h1.5v9.3h5v1.4h-6.5V36.1z M193.8,25.2c0.6,0,1,0.4,1,1s-0.4,1-1,1s-1-0.5-1-1
C192.8,25.6,193.3,25.2,193.8,25.2z M193.1,36.1v-7.2h1.4v7.2H193.1z M199.6,28.9h1.6v1.3h-1.6V34c0,0.7,0.3,1,1,1
c0.2,0,0.4,0,0.6-0.1v1.2c-0.1,0-0.5,0.1-1,0.1c-1.2,0-2-0.8-2-2.1v-4h-1.4v-1.3h0.4c0.8,0,1.1-0.5,1.1-1.1v-1.2h1.3L199.6,28.9
L199.6,28.9z M205.6,28.9h1.6v1.3h-1.6V34c0,0.7,0.3,1,1,1c0.2,0,0.4,0,0.6-0.1v1.2c-0.1,0-0.5,0.1-1,0.1c-1.2,0-2-0.8-2-2.1v-4
h-1.4v-1.3h0.4c0.8,0,1.1-0.5,1.1-1.1v-1.2h1.3L205.6,28.9L205.6,28.9z M209.8,36.1V25.3h1.4v10.9L209.8,36.1L209.8,36.1z
M220.7,34.1c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4
c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L220.7,34.1z M219.3,31.8c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H219.3z M227.9,36.1V25.5h6.5
v1.4h-5v3.4h4.5v1.4h-4.5v4.5L227.9,36.1L227.9,36.1z M242.5,34.1c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9
c0-2.3,1.6-3.8,3.4-3.8c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L242.5,34.1z M241.1,31.8
c0-1-0.7-1.8-2-1.8c-1.2,0-1.9,0.9-2,1.8H241.1z M246.9,32l1.9-0.3c0.4-0.1,0.6-0.3,0.6-0.5c0-0.7-0.5-1.3-1.6-1.3
c-1,0-1.5,0.6-1.6,1.5l-1.4-0.3c0.2-1.4,1.4-2.3,3-2.3c2.2,0,3,1.2,3,2.6V35c0,0.6,0.1,1,0.1,1.2h-1.4c0-0.2-0.1-0.5-0.1-1
c-0.3,0.5-1,1.2-2.3,1.2c-1.5,0-2.4-1-2.4-2.2C244.7,32.9,245.6,32.2,246.9,32z M249.4,33.1v-0.3l-2.2,0.3c-0.6,0.1-1,0.4-1,1.1
c0,0.5,0.4,1,1.2,1C248.5,35.2,249.4,34.6,249.4,33.1z M255.6,28.9h1.6v1.3h-1.6V34c0,0.7,0.3,1,1,1c0.2,0,0.4,0,0.6-0.1v1.2
c-0.1,0-0.5,0.1-1,0.1c-1.2,0-2-0.8-2-2.1v-4h-1.4v-1.3h0.4c0.8,0,1.1-0.5,1.1-1.1v-1.2h1.3V28.9z M262.4,36.4
c-1.7,0-2.7-1.3-2.7-2.9V29h1.4v4.3c0,1,0.4,1.9,1.6,1.9c1.1,0,1.7-0.8,1.7-1.8V29h1.4v5.9c0,0.6,0,1.1,0.1,1.3h-1.4
c0-0.2-0.1-0.6-0.1-0.9C264.2,36,263.3,36.4,262.4,36.4z M273.1,30.4h-0.6c-1.2,0-2,0.6-2,2.2v3.6h-1.4V29h1.4v1.3
c0.5-1.1,1.4-1.4,2.2-1.4h0.5v1.5L273.1,30.4z M281.5,34.1c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8
c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L281.5,34.1z M280.1,31.8c0-1-0.7-1.8-2-1.8
c-1.2,0-1.9,0.9-2,1.8H280.1z"/>
<path class="st6" d="M643.6,401.4h123.2v50H643.6V401.4z"/>
<path class="st5" d="M668.1,421.7c2,0,3.2,1.2,3.2,2.9c0,1.1-0.7,2-1.6,2.3c1.2,0.3,1.9,1.4,1.9,2.6c0,1.7-1.3,2.9-3.3,2.9h-3.7
v-10.6L668.1,421.7L668.1,421.7z M667.9,426.4c1.2,0,1.9-0.7,1.9-1.7s-0.7-1.7-1.9-1.7h-1.8v3.4L667.9,426.4L667.9,426.4z
M668.2,431.1c1.2,0,2-0.7,2-1.7s-0.6-1.7-1.9-1.7h-2.1v3.4L668.2,431.1L668.2,431.1z M675,421.4c0.6,0,1,0.4,1,1s-0.4,1-1,1
s-1-0.5-1-1C674,421.8,674.4,421.4,675,421.4z M674.3,432.4v-7.2h1.4v7.2H674.3z M679.7,432.4c0.1,1,0.9,1.8,2,1.8
c1.5,0,2.2-0.8,2.2-2.3v-1c-0.3,0.7-1.1,1.2-2.2,1.2c-1.9,0-3.3-1.5-3.3-3.5c0-1.9,1.3-3.5,3.3-3.5c1.1,0,1.9,0.4,2.2,1.1v-1h1.4
v6.7c0,1.8-0.9,3.6-3.6,3.6c-1.8,0-3.1-1.1-3.3-2.7L679.7,432.4L679.7,432.4z M683.9,428.5c0-1.4-0.8-2.3-2.1-2.3
c-1.2,0-2.1,0.9-2.1,2.3s0.8,2.3,2.1,2.3C683,430.8,683.9,429.9,683.9,428.5z M692.9,432.4v-10.6h6.5v1.4h-5v3.4h4.5v1.4h-4.5v4.5
L692.9,432.4L692.9,432.4z M707.5,430.3c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8
c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L707.5,430.3z M706.1,428c0-1-0.7-1.8-2-1.8
c-1.2,0-1.9,0.9-2,1.8H706.1z M711.8,428.2l1.9-0.3c0.4-0.1,0.6-0.3,0.6-0.5c0-0.7-0.5-1.3-1.6-1.3c-1,0-1.5,0.6-1.6,1.5l-1.4-0.3
c0.2-1.4,1.4-2.3,3-2.3c2.2,0,3,1.2,3,2.6v3.6c0,0.6,0.1,1,0.1,1.2h-1.4c0-0.2-0.1-0.5-0.1-1c-0.3,0.5-1,1.2-2.3,1.2
c-1.5,0-2.4-1-2.4-2.2C709.7,429.1,710.6,428.4,711.8,428.2L711.8,428.2z M714.4,429.3V429l-2.2,0.3c-0.6,0.1-1.1,0.4-1.1,1.1
c0,0.5,0.4,1,1.2,1C713.4,431.4,714.4,430.8,714.4,429.3z M720.6,425.1h1.6v1.3h-1.6v3.8c0,0.7,0.3,1,1,1c0.2,0,0.4,0,0.6-0.1v1.2
c-0.1,0-0.5,0.1-1,0.1c-1.2,0-2-0.8-2-2.1v-4h-1.4V425h0.4c0.8,0,1.1-0.5,1.1-1.1v-1.2h1.3L720.6,425.1L720.6,425.1z M727.4,432.6
c-1.7,0-2.7-1.3-2.7-2.9v-4.5h1.4v4.3c0,1,0.4,1.9,1.6,1.9c1.1,0,1.7-0.8,1.7-1.8v-4.4h1.4v5.9c0,0.6,0,1.1,0.1,1.3h-1.4
c0-0.2-0.1-0.6-0.1-0.9C729.1,432.2,728.2,432.6,727.4,432.6z M738,426.6h-0.6c-1.2,0-2,0.6-2,2.2v3.6H734v-7.2h1.4v1.3
c0.5-1.1,1.4-1.4,2.2-1.4h0.5v1.5H738z M746.5,430.3c-0.4,1.3-1.6,2.3-3.2,2.3c-1.9,0-3.6-1.4-3.6-3.9c0-2.3,1.6-3.8,3.4-3.8
c2.2,0,3.5,1.5,3.5,3.8v0.4h-5.4c0,1.3,1,2.2,2.2,2.2s1.8-0.6,2-1.5L746.5,430.3z M745.1,428c0-1-0.7-1.8-2-1.8
c-1.2,0-1.9,0.9-2,1.8H745.1z"/>
<path class="st7" d="M232.6,100.8V77.3 M243.4,92.1l-10.8,10.8l-10.9-10.8 M513.2,183v-23.5 M524.1,174.3l-10.9,10.8l-10.9-10.8
M705.2,355.7v23.5 M694.3,364.4l10.9-10.9l10.9,10.9"/>
<g>
<path class="st8" d="M463.9,86.8h96.2v50h-96.2V86.8z"/>
<g>
<path class="st9" d="M496.8,117.9v-10h2l2.4,7.1c0.2,0.7,0.4,1.2,0.5,1.5c0.1-0.4,0.3-0.9,0.5-1.6l2.4-7h1.8v10h-1.3v-8.4
l-2.9,8.4H501l-2.9-8.5v8.5H496.8z"/>
<path class="st9" d="M513.8,117c-0.5,0.4-0.9,0.7-1.3,0.8c-0.4,0.2-0.9,0.2-1.4,0.2c-0.8,0-1.4-0.2-1.8-0.6
c-0.4-0.4-0.6-0.9-0.6-1.5c0-0.4,0.1-0.7,0.2-1c0.2-0.3,0.4-0.5,0.6-0.7c0.3-0.2,0.6-0.3,0.9-0.4c0.2-0.1,0.6-0.1,1.1-0.2
c1-0.1,1.7-0.3,2.2-0.4c0-0.2,0-0.3,0-0.3c0-0.5-0.1-0.9-0.3-1.1c-0.3-0.3-0.8-0.4-1.4-0.4c-0.6,0-1,0.1-1.3,0.3
c-0.3,0.2-0.5,0.6-0.6,1.1l-1.2-0.2c0.1-0.5,0.3-0.9,0.5-1.2c0.3-0.3,0.6-0.6,1.1-0.7c0.5-0.2,1-0.3,1.6-0.3s1.1,0.1,1.5,0.2
s0.7,0.3,0.9,0.6c0.2,0.2,0.3,0.5,0.4,0.8c0,0.2,0.1,0.6,0.1,1.1v1.6c0,1.1,0,1.9,0.1,2.2s0.2,0.6,0.3,0.9h-1.3
C513.9,117.7,513.8,117.4,513.8,117z M513.7,114.3c-0.4,0.2-1.1,0.3-2,0.5c-0.5,0.1-0.9,0.2-1.1,0.2c-0.2,0-0.4,0.2-0.5,0.4
c-0.1,0.2-0.2,0.4-0.2,0.6c0,0.3,0.1,0.6,0.4,0.8c0.2,0.2,0.6,0.3,1.1,0.3s0.9-0.1,1.3-0.3c0.4-0.2,0.6-0.5,0.8-0.9
c0.1-0.3,0.2-0.7,0.2-1.2V114.3L513.7,114.3z"/>
<path class="st9" d="M517.5,109.3v-1.4h1.2v1.4H517.5z M517.5,117.9v-7.3h1.2v7.3H517.5z"/>
<path class="st9" d="M521.3,117.9v-7.3h1.1v1c0.5-0.8,1.3-1.2,2.3-1.2c0.4,0,0.8,0.1,1.2,0.2c0.4,0.2,0.6,0.4,0.8,0.6
s0.3,0.6,0.4,0.9c0,0.2,0.1,0.6,0.1,1.2v4.5H526v-4.4c0-0.5,0-0.9-0.1-1.1s-0.3-0.4-0.5-0.6c-0.2-0.1-0.5-0.2-0.9-0.2
c-0.5,0-1,0.2-1.4,0.5s-0.6,1-0.6,1.9v4H521.3L521.3,117.9z"/>
</g>
</g>
</svg>
images/git-commit.png

25.6 KiB

images/git-create-branch.png

16.2 KiB

images/git-merge-1.png

17 KiB

images/git-merge-2.png

22.1 KiB

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 410"><style>.st0{display:none;} .st1{display:inline;} .st2{fill:#FFFFFF;} .st3{fill:none;stroke:#9882CE;stroke-width:4;stroke-miterlimit:10;} .st4{fill:#FFFFFF;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st5{fill:#FFFFFF;stroke:#404040;stroke-width:4;stroke-miterlimit:10;} .st6{fill:#B3E3FF;stroke:#404040;stroke-width:4;stroke-miterlimit:10;} .st7{fill:#B18BE8;stroke:#404040;stroke-width:4;stroke-miterlimit:10;} .st8{fill:#FFFFFF;stroke:#404040;stroke-width:6;stroke-miterlimit:10;} .st9{fill:#B3E3FF;stroke:#404040;stroke-width:6;stroke-miterlimit:10;} .st10{fill:#404040;} .st11{fill:none;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st12{fill:#B18BE8;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st13{fill:#444444;} .st14{fill:none;stroke:#404040;stroke-width:4;stroke-miterlimit:10;} .st15{fill:#4ED1A1;stroke:#404040;stroke-width:4;stroke-miterlimit:10;} .st16{fill:none;stroke:#CCCCCC;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st17{fill:#FFFFFF;stroke:#CCCCCC;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st18{fill:none;stroke:#404040;stroke-width:7;stroke-miterlimit:10;} .st19{fill:#B3E3FF;stroke:#404040;stroke-width:7;stroke-miterlimit:10;} .st20{fill:none;stroke:#CCCCCC;stroke-width:8;stroke-linecap:round;stroke-miterlimit:10;} .st21{fill:none;stroke:#404040;stroke-width:8;stroke-linecap:round;stroke-miterlimit:10;} .st22{fill:#FFFFFF;stroke:#404040;stroke-width:4;stroke-linejoin:round;stroke-miterlimit:10;} .st23{fill:#B3E3FF;stroke:#404040;stroke-width:4;stroke-linejoin:round;stroke-miterlimit:10;} .st24{fill:none;stroke:#CCCCCC;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st25{fill:#999999;} .st26{fill:#4ED1A1;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st27{fill:#4CD3D6;stroke:#404040;stroke-width:4;stroke-linejoin:round;stroke-miterlimit:10;} .st28{fill:none;stroke:#59AFE1;stroke-width:4;stroke-miterlimit:10;} .st29{fill:#59AFE1;stroke:#404040;stroke-width:4;stroke-linejoin:round;stroke-miterlimit:10;} .st30{fill:none;stroke:#404040;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:0,30;} .st31{fill:#FFFFFF;stroke:#59AFE1;stroke-width:4;stroke-miterlimit:10;} .st32{fill:#FC8363;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st33{fill:#CCCCCC;stroke:#404040;stroke-width:4;stroke-miterlimit:10;} .st34{fill:#FFFFFF;stroke:#6693ED;stroke-width:4;stroke-miterlimit:10;} .st35{fill:none;stroke:#A97CDD;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st36{fill:none;stroke:#B3E3FF;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st37{fill:none;stroke:#4ED1A1;stroke-width:4;stroke-linecap:round;stroke-miterlimit:10;} .st38{fill:none;stroke:#4ED1A1;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st39{fill:#E24B88;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st40{fill:none;stroke:#DEEFF8;stroke-width:4;stroke-miterlimit:10;} .st41{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;} .st42{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,14.3051;} .st43{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,14.1689;} .st44{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,13.9788;} .st45{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,14.7877;} .st46{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,14.9632;} .st47{fill:#B3E3FF;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st48{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,12.543;} .st49{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,13.6844;} .st50{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,13.7717;} .st51{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,13.6492;} .st52{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,13.907;} .st53{fill:#4CD3D6;stroke:#404040;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st54{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,14.9858;} .st55{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,14.0118;} .st56{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:0,14.1243;} .st57{fill:none;} .st58{fill:#FFFFFF;stroke:#404040;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st59{fill:#59AFE1;stroke:#404040;stroke-width:7;stroke-linejoin:round;stroke-miterlimit:10;} .st60{fill:#E24B88;stroke:#404040;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st61{fill:none;stroke:#404040;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st62{fill:none;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st63{fill:#FFFFFF;stroke:#CCCCCC;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;} .st64{fill:#F5F5F5;} .st65{fill:#3873AE;} .st66{fill:#75706C;} .st67{fill:none;stroke:#B3E3FF;stroke-width:4;stroke-miterlimit:10;} .st68{fill:#6F6F6F;} .st69{fill:none;stroke:#6F6F6F;stroke-width:2;stroke-miterlimit:10;} .st70{fill:none;stroke:#6F6F6F;stroke-width:3;stroke-miterlimit:10;}</style><g id="git_x5F_remote"><path id="repo1_146_" class="st6" d="M337.5 124.5c0-12.4 28.2-22.4 63-22.4s63 10 63 22.4m-126 0v27.9c0 3 1.7 5.9 4.7 8.5 9.4 8.2 32 13.9 58.3 13.9 26.4 0 48.9-5.8 58.3-13.9 3-2.6 4.7-5.5 4.7-8.5v-27.9"/><path class="st5" d="M463.5 124.5c0 12.4-28.2 22.4-63 22.4s-63-10-63-22.4c0-12.4 28.2-22.4 63-22.4s63 10 63 22.4z"/><path id="repo1_145_" class="st6" d="M337.5 96.6c0-12.4 28.2-22.4 63-22.4s63 10 63 22.4m-126 0v27.9c0 3 1.7 5.9 4.7 8.5 9.4 8.2 32 13.9 58.3 13.9 26.4 0 48.9-5.8 58.3-13.9 3-2.6 4.7-5.5 4.7-8.5v-27.9"/><path class="st5" d="M463.5 96.6c0 12.4-28.2 22.4-63 22.4s-63-10-63-22.4 28.2-22.4 63-22.4 63 10 63 22.4z"/><path id="repo1_144_" class="st6" d="M337.5 68.7c0-12.4 28.2-22.4 63-22.4s63 10 63 22.4m-126 0v27.9c0 3 1.7 5.9 4.7 8.5 9.4 8.2 32 13.9 58.3 13.9 26.4 0 48.9-5.8 58.3-13.9 3-2.6 4.7-5.5 4.7-8.5v-27.9"/><path class="st5" d="M463.5 68.7c0 12.4-28.2 22.4-63 22.4s-63-10-63-22.4c0-12.4 28.2-22.4 63-22.4s63 10 63 22.4z"/><path id="repo1_143_" class="st6" d="M337.5 40.8c0-12.4 28.2-22.4 63-22.4s63 10 63 22.4m-126 0v27.9c0 3 1.7 5.9 4.7 8.5 9.4 8.2 32 13.9 58.3 13.9 26.4 0 48.9-5.8 58.3-13.9 3-2.6 4.7-5.5 4.7-8.5v-27.9"/><path class="st5" d="M463.5 40.8c0 12.4-28.2 22.4-63 22.4s-63-10-63-22.4c0-12.4 28.2-22.4 63-22.4s63 10 63 22.4z"/><path class="st11" d="M505.1 322.4c3.1 6.8 9.9 11.2 17.3 11.2 7.5 0 14.3-4.4 17.4-11.3"/><path class="st26" d="M522 366.7s27.4.8 37.7-5.2c17-9.9-.3-30.2-13.7-33.6-4.1 7.7-13.3 13-24 13h.3c-10.7 0-19.8-5.4-24-13-13.4 3.4-30.7 23.8-13.7 33.6 10.3 6 37.7 5.2 37.7 5.2"/><circle class="st26" cx="522.4" cy="297" r="23"/><path class="st5" d="M533 284.8c2.6 20 7.9 2.4 11.8 17-2.2 10.4-11.4 18.2-22.5 18.2-12.7 0-23-10.3-23-23 0-1.3.1-2.6.3-3.9 1.2.1 26.3 11.1 33.4-8.3z"/><path class="st11" d="M534.9 317.3v10.6m-24.6 0v-10.3"/><path class="st4" d="M260.8 322.6c3.1 6.8 9.9 11.2 17.3 11.2 7.5 0 14.3-4.4 17.4-11.3"/><path class="st7" d="M278.3 366.9s27.4.8 37.7-5.2c17-9.9-.3-30.2-13.7-33.6-4.1 7.7-13.3 13-24 13h.3c-10.7 0-19.8-5.4-24-13-13.4 3.4-30.7 23.8-13.7 33.6 10.3 6 37.7 5.2 37.7 5.2"/><circle class="st7" cx="278.2" cy="297.2" r="23"/><path class="st4" d="M288.2 276.5c-6.7 17.2-19.4.5-32.6 25.5 2.2 10.4 11.4 18.2 22.5 18.2 12.7 0 23-10.3 23-23 .1-1.4-11-5.9-12.9-20.7zm2.5 40v11.5m-24.6.1v-11.3"/><path class="st7" d="M255.2 297.7s0 10.6 4.6 14.5c-3.6 1.7-11.6-.9-10.5-1.7 4.4-3.2 5.9-12.8 5.9-12.8zm46-.5s-.2 11.1-4.8 15c3.6 1.7 11.6-.9 10.5-1.7-4.5-3.2-5.7-13.3-5.7-13.3z"/><path class="st10" d="M241.2 386.2h1.8l2.8 4.7 2.8-4.7h1.7l-3.7 6.1v4.5h-1.5v-4.5l-3.9-6.1zm16.5 7c0 2.2-1.5 3.8-3.7 3.8s-3.7-1.6-3.7-3.8c0-2.2 1.5-3.8 3.7-3.8s3.7 1.6 3.7 3.8zm-1.5 0c0-1.7-1.1-2.6-2.2-2.6s-2.2.9-2.2 2.6c0 1.7 1 2.6 2.2 2.6s2.2-.9 2.2-2.6zm6.6 3.8c-1.7 0-2.7-1.3-2.7-2.9v-4.5h1.4v4.3c0 1 .4 1.9 1.6 1.9 1.1 0 1.7-.8 1.7-1.8v-4.4h1.4v5.9c0 .6 0 1.1.1 1.3h-1.3c0-.2-.1-.6-.1-.9-.4.8-1.3 1.1-2.1 1.1zm10.6-6h-.6c-1.2 0-2 .6-2 2.2v3.6h-1.4v-7.2h1.4v1.3c.5-1.1 1.4-1.4 2.2-1.4h.5v1.5zm10 1.5h-1.6v4.3h-1.5v-10.6h4c2 0 3.3 1.4 3.3 3.2 0 1.5-1 2.7-2.6 3l2.5 4.5h-1.7l-2.4-4.4zm.6-1.4c1.2 0 2-.7 2-1.8s-.8-1.8-2-1.8h-2.2v3.6h2.2zm12.2 3.7c-.4 1.3-1.6 2.3-3.2 2.3-1.9 0-3.6-1.4-3.6-3.9 0-2.3 1.6-3.8 3.4-3.8 2.2 0 3.5 1.5 3.5 3.8v.4h-5.4c0 1.3 1 2.2 2.2 2.2 1.2 0 1.8-.6 2-1.5l1.1.5zm-1.4-2.3c0-1-.7-1.8-2-1.8-1.2 0-1.9.9-2 1.8h4zm4 7.2v-10.1h1.4v1.1c.4-.7 1.2-1.3 2.4-1.3 2.2 0 3.3 1.7 3.3 3.8 0 2.1-1.2 3.8-3.4 3.8-1.1 0-1.9-.5-2.3-1.2v3.8h-1.4zm3.5-9c-1.3 0-2.1 1.1-2.1 2.5 0 1.5.9 2.5 2.1 2.5 1.3 0 2.1-1.1 2.1-2.5s-.8-2.5-2.1-2.5zm12.9 2.5c0 2.2-1.5 3.8-3.7 3.8s-3.7-1.6-3.7-3.8c0-2.2 1.5-3.8 3.7-3.8s3.7 1.6 3.7 3.8zm-1.4 0c0-1.7-1.1-2.6-2.2-2.6s-2.2.9-2.2 2.6c0 1.7 1.1 2.6 2.2 2.6s2.2-.9 2.2-2.6zm165-.1l1.5-.3v1c0 1.4.8 2 1.8 2 1.1 0 1.7-.7 1.7-1.9v-7.6h1.5v7.5c0 1.9-1.2 3.4-3.2 3.4-2.1 0-3.3-1.4-3.3-3.4v-.7zm16.4.3c0 2.2-1.5 3.8-3.7 3.8s-3.7-1.6-3.7-3.8c0-2.2 1.5-3.8 3.7-3.8s3.7 1.6 3.7 3.8zm-1.5 0c0-1.7-1.1-2.6-2.2-2.6s-2.2.9-2.2 2.6c0 1.7 1.1 2.6 2.2 2.6s2.2-.9 2.2-2.6zm5.4 3.6h-1.4v-10.9h1.4v4.5c.5-.8 1.4-1.1 2.2-1.1 1.7 0 2.6 1.2 2.6 2.9v4.6h-1.4v-4.3c0-1-.4-1.8-1.7-1.8-1.1 0-1.6.8-1.7 1.9v4.2zm9.2 0h-1.4v-7.2h1.4v1c.5-.9 1.4-1.2 2.2-1.2 1.7 0 2.6 1.2 2.6 2.9v4.6h-1.4v-4.3c0-1-.4-1.8-1.7-1.8-1.1 0-1.7.9-1.7 2v4zm7.4-10.8c.6 0 1.1.5 1.1 1.3 0 1.9-1.2 2.6-2.1 2.7v-.7c.7-.2 1.1-.8 1.2-1.5 0 0-.2.1-.3.1-.5 0-.9-.4-.9-1 0-.4.5-.9 1-.9zm3.5 8.5c.1.8.7 1.3 1.7 1.3.8 0 1.2-.4 1.2-1 0-.4-.3-.8-.9-.9l-1.2-.3c-1.1-.2-1.8-1-1.8-2 0-1.2 1.2-2.3 2.6-2.3 2 0 2.6 1.3 2.7 1.9l-1.2.5c-.1-.4-.4-1.2-1.5-1.2-.7 0-1.2.5-1.2 1 0 .4.3.8.8.9l1.2.3c1.3.3 2 1.1 2 2.1s-.9 2.2-2.6 2.2c-2 0-2.8-1.3-2.9-2.1l1.1-.4zm14.7-2.1h-1.6v4.3h-1.5v-10.6h4c2 0 3.3 1.4 3.3 3.2 0 1.5-1 2.7-2.6 3l2.5 4.5h-1.7l-2.4-4.4zm.6-1.3c1.2 0 2-.7 2-1.8s-.8-1.8-2-1.8h-2.2v3.6h2.2zm12.2 3.6c-.4 1.3-1.6 2.3-3.2 2.3-1.9 0-3.6-1.4-3.6-3.9 0-2.3 1.6-3.8 3.4-3.8 2.2 0 3.5 1.5 3.5 3.8v.4h-5.4c0 1.3 1 2.2 2.2 2.2 1.2 0 1.8-.6 2-1.5l1.1.5zm-1.5-2.3c0-1-.7-1.8-2-1.8-1.2 0-1.9.9-2 1.8h4zm4.1 7.2v-10.1h1.4v1.1c.4-.7 1.2-1.3 2.4-1.3 2.2 0 3.3 1.7 3.3 3.8 0 2.1-1.2 3.8-3.4 3.8-1.1 0-1.9-.5-2.3-1.2v3.8h-1.4zm3.5-8.9c-1.3 0-2.1 1.1-2.1 2.5 0 1.5.9 2.5 2.1 2.5 1.3 0 2.1-1.1 2.1-2.5 0-1.5-.8-2.5-2.1-2.5zm12.9 2.5c0 2.2-1.5 3.8-3.7 3.8s-3.7-1.6-3.7-3.8c0-2.2 1.5-3.8 3.7-3.8s3.7 1.6 3.7 3.8zm-1.5 0c0-1.7-1.1-2.6-2.2-2.6s-2.2.9-2.2 2.6c0 1.7 1 2.6 2.2 2.6s2.2-.9 2.2-2.6zm-211.3-192.3c0-3.6 2.6-5.5 5.3-5.5 2.4 0 4.1 1.3 4.7 3.4l-1.4.5c-.4-1.6-1.6-2.5-3.3-2.5-1.9 0-3.8 1.4-3.8 4.2s1.8 4.2 3.8 4.2c1.8 0 3-1.1 3.4-2.5l1.3.5c-.6 2-2.2 3.4-4.7 3.4-2.7-.1-5.3-2.1-5.3-5.7zm18.6 3.3c-.4 1.3-1.6 2.3-3.2 2.3-1.9 0-3.6-1.4-3.6-3.9 0-2.3 1.6-3.8 3.4-3.8 2.2 0 3.5 1.5 3.5 3.8v.4h-5.6c0 1.3 1 2.2 2.2 2.2 1.2 0 1.8-.6 2-1.5l1.3.5zm-1.5-2.3c0-1-.7-1.8-2-1.8-1.2 0-1.9.9-2 1.8h4zm5.5 4.3h-1.4v-7.2h1.4v1c.5-.9 1.4-1.2 2.2-1.2 1.7 0 2.6 1.2 2.6 2.9v4.6h-1.4v-4.3c0-1-.4-1.8-1.7-1.8-1.1 0-1.7.9-1.7 2v4zm9.6-7.2h1.6v1.3h-1.6v3.8c0 .7.3 1 1 1 .2 0 .4 0 .6-.1v1.2c-.1 0-.5.1-1 .1-1.2 0-2-.8-2-2.1v-4h-1.4v-1.3h.4c.8 0 1.1-.5 1.1-1.1v-1.2h1.3v2.4zm8.1 1.4h-.6c-1.2 0-2 .6-2 2.2v3.6h-1.4v-7.2h1.4v1.3c.5-1.1 1.4-1.4 2.2-1.4h.5v1.5zm4 1.7l1.9-.3c.4-.1.6-.3.6-.5 0-.7-.5-1.3-1.6-1.3-1 0-1.5.6-1.6 1.5l-1.4-.3c.2-1.4 1.4-2.3 3-2.3 2.2 0 3 1.2 3 2.6v3.6c0 .6.1 1 .1 1.2h-1.4c0-.2-.1-.5-.1-1-.3.5-1 1.2-2.3 1.2-1.5 0-2.4-1-2.4-2.2 0-1.3.9-2 2.2-2.2zm2.5 1v-.3l-2.2.3c-.6.1-1.1.4-1.1 1.1 0 .5.4 1 1.2 1 1.1.1 2.1-.5 2.1-2.1zm4.3 3.1v-10.9h1.4v10.9h-1.4zm12.3-4.3h-1.6v4.3h-1.5v-10.6h4c2 0 3.3 1.4 3.3 3.2 0 1.5-1 2.7-2.6 3l2.5 4.5h-1.7l-2.4-4.4zm.7-1.3c1.2 0 2-.7 2-1.8s-.8-1.8-2-1.8h-2.2v3.6h2.2zm12.1 3.6c-.4 1.3-1.6 2.3-3.2 2.3-1.9 0-3.6-1.4-3.6-3.9 0-2.3 1.6-3.8 3.4-3.8 2.2 0 3.5 1.5 3.5 3.8v.4h-5.4c0 1.3 1 2.2 2.2 2.2 1.2 0 1.8-.6 2-1.5l1.1.5zm-1.4-2.3c0-1-.7-1.8-2-1.8-1.2 0-1.9.9-2 1.8h4zm4 7.2v-10.1h1.4v1.1c.4-.7 1.2-1.3 2.4-1.3 2.2 0 3.3 1.7 3.3 3.8 0 2.1-1.2 3.8-3.4 3.8-1.1 0-1.9-.5-2.3-1.2v3.8h-1.4zm3.5-9c-1.3 0-2.1 1.1-2.1 2.5 0 1.5.9 2.5 2.1 2.5 1.3 0 2.1-1.1 2.1-2.5s-.8-2.5-2.1-2.5zm12.9 2.5c0 2.2-1.5 3.8-3.7 3.8s-3.7-1.6-3.7-3.8c0-2.2 1.5-3.8 3.7-3.8s3.7 1.6 3.7 3.8zm-1.4 0c0-1.7-1.1-2.6-2.2-2.6s-2.2.9-2.2 2.6c0 1.7 1 2.6 2.2 2.6s2.2-.9 2.2-2.6z"/><path id="repo1_149_" class="st7" d="M126.6 331c0-6.3 14.2-11.3 31.8-11.3s31.8 5.1 31.8 11.3m-63.6 0v14.1c0 1.5.9 3 2.4 4.3 4.8 4.1 16.2 7 29.5 7s24.7-2.9 29.5-7c1.5-1.3 2.4-2.8 2.4-4.3v-14.1"/><path class="st31" d="M190.3 331c0 6.3-14.2 11.3-31.8 11.3s-31.8-5.1-31.8-11.3c0-6.3 14.2-11.3 31.8-11.3s31.8 5 31.8 11.3z"/><path id="repo1_148_" class="st7" d="M126.6 316.9c0-6.3 14.2-11.3 31.8-11.3s31.8 5.1 31.8 11.3m-63.6 0v14.1c0 1.5.9 3 2.4 4.3 4.8 4.1 16.2 7 29.5 7s24.7-2.9 29.5-7c1.5-1.3 2.4-2.8 2.4-4.3v-14.1"/><path class="st31" d="M190.3 316.9c0 6.3-14.2 11.3-31.8 11.3s-31.8-5.1-31.8-11.3c0-6.3 14.2-11.3 31.8-11.3s31.8 5 31.8 11.3z"/><path id="repo1_147_" class="st7" d="M126.6 302.8c0-6.3 14.2-11.3 31.8-11.3s31.8 5.1 31.8 11.3m-63.6 0v14.1c0 1.5.9 3 2.4 4.3 4.8 4.1 16.2 7 29.5 7s24.7-2.9 29.5-7c1.5-1.3 2.4-2.8 2.4-4.3v-14.1"/><path class="st5" d="M190.3 302.8c0 6.3-14.2 11.3-31.8 11.3s-31.8-5.1-31.8-11.3c0-6.3 14.2-11.3 31.8-11.3s31.8 5 31.8 11.3z"/><path id="repo1_152_" class="st26" d="M609.7 331c0-6.3 14.2-11.3 31.8-11.3s31.8 5.1 31.8 11.3m-63.6 0v14.1c0 1.5.9 3 2.4 4.3 4.8 4.1 16.2 7 29.5 7s24.7-2.9 29.5-7c1.5-1.3 2.4-2.8 2.4-4.3v-14.1"/><path class="st31" d="M673.4 331c0 6.3-14.2 11.3-31.8 11.3s-31.8-5.1-31.8-11.3c0-6.3 14.2-11.3 31.8-11.3 17.5-.1 31.8 5 31.8 11.3z"/><path id="repo1_151_" class="st26" d="M609.7 316.9c0-6.3 14.2-11.3 31.8-11.3s31.8 5.1 31.8 11.3m-63.6 0v14.1c0 1.5.9 3 2.4 4.3 4.8 4.1 16.2 7 29.5 7s24.7-2.9 29.5-7c1.5-1.3 2.4-2.8 2.4-4.3v-14.1"/><path class="st31" d="M673.4 316.9c0 6.3-14.2 11.3-31.8 11.3s-31.8-5.1-31.8-11.3c0-6.3 14.2-11.3 31.8-11.3 17.5 0 31.8 5 31.8 11.3z"/><path id="repo1_150_" class="st26" d="M609.7 302.8c0-6.3 14.2-11.3 31.8-11.3s31.8 5.1 31.8 11.3m-63.6 0v14.1c0 1.5.9 3 2.4 4.3 4.8 4.1 16.2 7 29.5 7s24.7-2.9 29.5-7c1.5-1.3 2.4-2.8 2.4-4.3v-14.1"/><path class="st5" d="M673.4 302.8c0 6.3-14.2 11.3-31.8 11.3s-31.8-5.1-31.8-11.3c0-6.3 14.2-11.3 31.8-11.3 17.5 0 31.8 5 31.8 11.3z"/><path class="st11" d="M432.2 333.6h-65.5m56.8-10.8l10.8 10.8-10.8 10.9m-87.2-110.4l-22.1 22.1m8.3-23.6h15.4v15.4"/></g></svg>
\ No newline at end of file
images/git-three-states.png

21.5 KiB

images/git_workflow.jpeg

62 KiB

images/pull-request.png

55.5 KiB

images/ssh-key-auth-flow.png

7.06 KiB

# Organization
This document contains all of the organisational information for my tutorials.
## Contact Me
E-Mail: chao.zhan@fu-berlin.de
Gitlab issues: https://git.imp.fu-berlin.de/mactavish96/alp4-tutorials/-/issues
## Tutorial Sessions
- Thursday 8 am - 10 am at T9/051 Seminarraum
- Friday 12 pm - 2 pm at T9/053 Seminarraum
## Active Participation
- Participate in group discussions
- Present your answer to one of the questions from the assignments at least twice
## Miscellaneous
If possible, bring your personal laptop with you. There will be some small programming exercises from time to time.