digraph d {
        disconnected -> peerUpdating;
        peerUpdating -> disconnected;
        peerUpdating -> server;
        peerUpdating -> clientInit;
        server -> peerUpdating;
        clientInit -> peerUpdating;
        clientInit -> clientInit;
        clientInit -> client;
        client -> clientInit;
        client -> peerUpdating;

        clientInitializing -> clientSyncing;
        clientSyncing -> clientInitializing;
        clientSyncing -> clientUpIndirect;
        clientSyncing -> clientUpDirect;
        clientUpIndirect -> clientUpDirect;
        clientUpIndirect -> clientInitializing;
        clientUpDirect -> clientInitializing;

        serverInitializing -> serverSyncing;
        serverSyncing -> serverInitializing;
        serverSyncing -> serverUpIndirect;
        serverSyncing -> serverUpDirect;
        serverUpIndirect -> serverUpDirect;
        serverUpIndirect -> serverInitializing;
        serverUpDirect -> serverInitializing;
}