Browse Source

Revert "Merge landing repo"

Bedeho Mender 4 years ago
parent
commit
a39b0b83b9
95 changed files with 76 additions and 14583 deletions
  1. 0 2
      .gitignore
  2. 76 331
      README.md
  3. 0 156
      img/KR-Weighting.svg
  4. 0 80
      img/OKR-figure.svg
  5. 0 0
      img/github-policy.svg
  6. 0 10
      img/github-policy_new.svg
  7. 0 326
      img/landing-cover.svg
  8. 0 10
      img/landing-cover_new.svg
  9. 0 0
      img/meetings.svg
  10. 0 10
      img/meetings_new.svg
  11. 0 321
      img/okr-section.svg
  12. 0 10
      img/okr-section_new.svg
  13. 0 346
      img/pm-section.svg
  14. 0 10
      img/pm-section_new.svg
  15. 0 311
      img/release-section.svg
  16. 0 10
      img/release-section_new.svg
  17. 0 0
      img/testnet-planning.svg
  18. 0 32
      img/testnet-planning_new.svg
  19. 0 0
      img/testnet-releases.svg
  20. 0 48
      img/testnet-releases_new.svg
  21. 0 75
      meetings/README.md
  22. 0 615
      meetings/acropolis/README.md
  23. 0 215
      meetings/acropolis/img/meetings-cover.svg
  24. 0 215
      meetings/img/meetings-cover.svg
  25. 0 10
      meetings/img/meetings-cover_new.svg
  26. 0 840
      meetings/rome/README.md
  27. 0 215
      meetings/rome/img/meetings-cover.svg
  28. 0 222
      meetings/rome/sprint-in-london.md
  29. 0 0
      node/LICENSE
  30. 0 93
      node/README.md
  31. 0 125
      okrs/OKR-archive/Q1-19/README.md
  32. 0 215
      okrs/OKR-archive/Q2-19/README.md
  33. 0 70
      okrs/OKR-archive/releases/acropolis/README.md
  34. 0 56
      okrs/OKR-archive/releases/athens/README.md
  35. 0 186
      okrs/README.md
  36. 0 0
      okrs/img/live-okr.svg
  37. 0 72
      okrs/img/live-okr_new.svg
  38. 0 32
      reports/README.md
  39. 0 63
      reports/archive/1.md
  40. 0 472
      reports/archive/2-attachments/members-module.md
  41. 0 38
      reports/archive/2.md
  42. 0 107
      reports/archive/3.md
  43. 0 43
      runtime/README.md
  44. 0 41
      testnets/README.md
  45. 0 538
      testnets/acropolis/README.md
  46. 0 33
      testnets/acropolis/branding/README.md
  47. 0 0
      testnets/acropolis/img/acropolis-cover.svg
  48. 0 10
      testnets/acropolis/img/acropolis-cover_new.svg
  49. 0 277
      testnets/acropolis/specification/README.md
  50. 0 294
      testnets/acropolis/specification/runtime/actors-module.md
  51. 0 212
      testnets/acropolis/specification/runtime/content-directory.md
  52. 0 211
      testnets/acropolis/specification/runtime/data-directory-module.md
  53. 0 133
      testnets/acropolis/specification/runtime/data-object-storage-registry-module.md
  54. 0 206
      testnets/acropolis/specification/runtime/data-object-type-registry-module.md
  55. 0 189
      testnets/acropolis/specification/runtime/discovery-module.md
  56. 0 373
      testnets/acropolis/specification/runtime/forum-module.md
  57. 0 209
      testnets/acropolis/specification/runtime/members-module.md
  58. 0 86
      testnets/acropolis/specification/runtime/migration-module.md
  59. 0 141
      testnets/acropolis/specification/runtime/storage-modules.md
  60. 0 82
      testnets/acropolis/specification/specification-format.md
  61. 0 540
      testnets/athens/README.md
  62. BIN
      testnets/athens/branding/logo.png
  63. 0 232
      testnets/athens/img/athens-cover.svg
  64. 0 72
      testnets/athens/img/athens-cover_new.svg
  65. 0 337
      testnets/constantinople/README.md
  66. 0 17
      testnets/constantinople/branding/README.md
  67. BIN
      testnets/constantinople/branding/img/constantinople-logomark.png
  68. 0 17
      testnets/constantinople/img/constantinople-cover.svg
  69. 0 2
      testnets/constantinople/specification/README.md
  70. 0 0
      testnets/img/testnets.svg
  71. 0 120
      testnets/img/testnets_new.svg
  72. 0 176
      testnets/rome/README.md
  73. 0 20
      testnets/rome/branding/README.md
  74. BIN
      testnets/rome/branding/img/rome-logomark.png
  75. 0 0
      testnets/rome/img/rome-cover.svg
  76. 0 6
      testnets/rome/img/rome-cover_new.svg
  77. 0 337
      testnets/rome/specification/README.md
  78. 0 294
      testnets/rome/specification/runtime/actors-module.md
  79. 0 411
      testnets/rome/specification/runtime/content-directory-working-group.md
  80. 0 212
      testnets/rome/specification/runtime/content-directory.md
  81. 0 211
      testnets/rome/specification/runtime/data-directory-module.md
  82. 0 133
      testnets/rome/specification/runtime/data-object-storage-registry-module.md
  83. 0 206
      testnets/rome/specification/runtime/data-object-type-registry-module.md
  84. 0 189
      testnets/rome/specification/runtime/discovery-module.md
  85. 0 373
      testnets/rome/specification/runtime/forum-module.md
  86. 0 377
      testnets/rome/specification/runtime/hiring-module.md
  87. BIN
      testnets/rome/specification/runtime/img/versioned_data_store_example.png
  88. 0 202
      testnets/rome/specification/runtime/membership-module.md
  89. 0 86
      testnets/rome/specification/runtime/migration-module.md
  90. 0 150
      testnets/rome/specification/runtime/recurring-reward-module.md
  91. 0 259
      testnets/rome/specification/runtime/staking-module.md
  92. 0 141
      testnets/rome/specification/runtime/storage-modules.md
  93. 0 126
      testnets/rome/specification/runtime/token-mint-module.md
  94. 0 144
      testnets/rome/specification/runtime/versioned-store-permissions.md
  95. 0 166
      testnets/rome/specification/runtime/versioned-store.md

+ 0 - 2
.gitignore

@@ -16,5 +16,3 @@ joystream_runtime.wasm
 
 # Visual Studio Code
 .vscode
-
-.DS_Store

+ 76 - 331
README.md

@@ -1,393 +1,138 @@
 # Joystream [![Build Status](https://travis-ci.org/Joystream/substrate-runtime-joystream.svg?branch=master)](https://travis-ci.org/Joystream/substrate-runtime-joystream)
 
+This is the main code reposity for all joystream software. It will  house the substrate chain project, the full node and runtime and all reusable substrate runtime modules that make up the joystream runtime. In addition to all front-end apps and infrastructure servers necessary for operating the network.
 
-<p align="center"><img src="img/landing-cover_new.svg"></p>
-
-<div align="center">
-  <h4>Eventually, this all goes on-chain, read our :scroll: <a href="https://github.com/Joystream/whitepaper/blob/master/paper.pdf">whitepaper</a> :scroll:, we are on-chain governance maximalists!<h4>
-</div>
-<div align="center">
-  <h5>The place to learn about Joystream project planning, collaboration and communication</h5>
-</div>
-<div align="center">
-  These are our <a href="https://github.com/Joystream/manifesto">ends and means</a>
-</div>
-
-<br />
-
-<div align="center">
-  <h3>
-    <a href="/testnets/rome">
-      Rome Testnet
-    </a>
-    <span> | </span>
-    <a href="/okrs">
-      Live OKRs
-    </a>
-    <span> | </span>
-    <a href="/meetings">
-      Meetings
-    </a>
-    <span> | </span>
-    <a href="https://github.com/Joystream/helpdesk/blob/master/README.md">
-      Helpdesk
-    </a>
-  </h3>
-</div>
-
-Table of Contents
-
-- [Overview](#overview)
-- [Contribute](#contribute)
-- [Repository Index](#repository-index)
-    - [Products and Nodes](#products-and-nodes)
-    - [Documentation and Communication](#documentation-and-communication)
-    - [Runtime Repos](#runtime-repos)
-    - [Libraries and Tools](#libraries-and-tools)
-- [Testnet Releases](#testnet-releases)
-    - [Live Testnet](#live-testnet)
-    - [Next Testnet](#next-testnet)
-    - [Past Testnets](#past-testnets)
-- [Project Management](#project-management)
-    - [Why is this on Github?](#why-is-this-on-github)
-    - [Meetings](#meetings)
-      - [Daily standup](#daily-standup)
-      - [Tuesday all-hands](#tuesday-all-hands)
-      - [Release meeting](#release-meeting)
-    - [OKR System](#okr-system)
-      - [Assignment](#assignment)
-      - [OKR types](#okr-types)
-      - [Hierarchy](#hierarchy)
-      - [Tracking](#tracking)
-      - [Template](#template)
-    - [Testnet Planning](#testnet-planning)
-      - [Branding](#branding)
-      - [Testnet Directory](#testnet-directory)
-      - [Roles](#roles)
-      - [Tracking Issues](#tracking-issues)
-      - [Milestones](#milestones)
-      - [Step-by-step Process](#step-by-step-process)
-- [Github Policy](#github-policy)
-
-# Overview
-
-This is the main code repository for all joystream software as well as the best starting place to get a coherent view of how information is organized in this GitHub organization.
-
-It will  house the substrate chain project, the full node and runtime and all reusable substrate runtime modules that make up the joystream runtime. In addition to all front-end apps and infrastructure servers necessary for operating the network.
-
-The repository is both a cargo workspace and a yarn workspace.
+The repository is currently just a cargo workspace, but eventually will also contain yarn workspaces, and possibly other project type workspaces.
 
-The Joystream network builds on a pre-release version of [substrate v2.0](https://substrate.dev/) and adds additional
-functionality to support the [various roles](https://www.joystream.org/roles) that can be entered into on the platform.
-
-
-# Contribute
-
-For software development we try to follow the [git-flow](https://nvie.com/posts/a-successful-git-branching-model/) branching [model](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) with some minor differences:
-  - `development` branch instead of `develop`.
-  - feature branches should be created in contributors' own fork of the repo.
-  - for more collaborative long running feature development, a feature branch may be created by the maintainer on the central repo.
-
-The central repos will have multiple members of the core team with write access, but there will be one designated maintainer or "product owner" and responsible for the final product. The maintainer must approve either directly or by delegation (accepting other members' reviews) PRs to be merged.
-
-The core team, maintainers and outside contributors are encouraged to follow these general guidelines when contributing to the code repositories:
-
-* All contributions should be via pull requests.
-* Do not create arbitrary branches or push directly to the central repo `master` or `development` branches.
-* Do not force push branches.
-* Avoid rebasing branches of open PRs to help preserve conversation history.
-* Authors must always request a review for their PRs, Exception: It does not alter any logic (e.g. comments, dependencies, docs, file organisation), then it may be merged once CI checks are complete.
-* Author should avoid merging their own PR, if it hasn't been reviewed and approved.
-* If travis or other CI integrations are configured for the repo, avoid merging PRs that fail checks.
-* When the maintainer is opening a PRs they must still request a review from a core team member.
-
-Each repository may have contributing guidelines detailed in their README files.
-The maintainer must ensure this contribution section is linked to as the base guideline.
-
-Documentation, project management, and other or non-code repositories should try to follow similar PR etiquette if it makes sense but exceptions can be made as changes usually don't require the same level of review.
-
-# Repository Index
-
-This is the set of active repos to which this document refers:
-
-## Products and Nodes
-
-| Repo                                                                                      | Description                                           | Maintainer      |
-| :-------------                                                                            | :-------------                                        | :-----------:   |
-| [apps](https://github.com/Joystream/apps)                                                 | The Pioneer application.                              | @siman          |
-| [joystream-node](./node)         | The Joystream substrate node.                         | @mnaamani       |
-| [storage-node-joystream](https://github.com/Joystream/storage-node-joystream)             | The storage node application.                         | @mnaamani   |
-| [query-node-joystream](https://github.com/Joystream/query-node-joystream)                             | Query node for the Joystream Platform.    | @paul           |
-
-## Documentation and Communication
-
-| Repo                                                                                      | Description                                           | Maintainer      |
-| :-------------                                                                            | :-------------                                        | :-----------:   |
-| [joystream](https://github.com/Joystream/joystream)                             | The Joystream landing repo.    | @bedeho           |
-| [joystream-website](https://github.com/Joystream/joystream-website)                       | The Joystream website.    | @bwhm           |
-| [whitepaper](https://github.com/Joystream/whitepaper)                                     | The Joystream whitepaper.                             | @bedeho         |
-| [communications](https://github.com/Joystream/communications)                             | The Joystream communications workspace and archive.   | @bwhm           |
-| [helpdesk](https://github.com/Joystream/helpdesk)                             | Information and guides for users and contributors.    | @bwhm           |
-| [bounties](https://github.com/Joystream/bounties)                             | Bounties and testnet payout overview.    | @blrhc           |
-| [design](https://github.com/Joystream/design)                             | Joystream brand guide and assets.    | @bwhm           |
-| [manifesto](https://github.com/Joystream/manifesto)                             | The Joystream manifesto.    | @bedeho           |
-| [joystream-content-system](https://github.com/Joystream/joystream-content-system)                             | A repo containing information and resources about the Joystream content system.     | @bwhm           |
-
-## Runtime & Runtime Modules
-
-| Repo                                                                                      | Description                                           | Maintainer      |
-| :-------------                                                                            | :-------------                                        | :-----------:   |
-| [runtime](./runtime)   | The Joystream substrate runtime.                      | @mnaamani       |
-| [substrate-content-directory-working-group-module](./runtime-modules/content-directory-working-group)                             | A working group module for the Joystream content directory.    | @bedeho           |
-| [substrate-versioned-store-permissions-module](./runtime-modules/versioned-store-permissions-module)                             | Permissioned access to the versioned store.    | @mnaamani           |
-| [substrate-versioned-store-module](./runtime-modules/versioned-store-module)                             | A versioned data store Substrate module.    | @siman           |
-| [substrate-recurring-reward-module](./runtime-modules/recurring-reward)                             | Recurring periodic minting of rewards for recipients.    | @mnaamani           |
-| [substrate-token-minting-module](./runtime-modules/token-minting)                             | Transferrable capacity constrained token minting.    | @mnaamani           |
-| [substrate-hiring-module](./runtime-modules/hiring)                             | Hiring for on-chain organisations.    | @bedeho           |
-| [substrate-stake-module](./runtime-modules/stake)                             | Managed staking, unstaking and slashing.    | @mnaamani           |
-| [substrate-forum-module](./runtime-modules/forum)                             | The on-chain Joystream community forum.    | @bedeho           |
-
-## Libraries and Tools
-
-| Repo                                                                                      | Description                                           | Maintainer      |
-| :-------------                                                                            | :-------------                                        | :-----------:   |
-| [versioned-store-js](https://github.com/Joystream/versioned-store-js)                             | A typescript library for versioned object store.    | @siman           |
-| [query-resolver-toolkit](https://github.com/Joystream/query-resolver-toolkit)                             | A toolkit for query resolution.    | @yourheropaul           |
-| [status-endpoint-joystream](https://github.com/Joystream/status-endpoint-joystream)                             | The status endpoint for the Joystream network.    | @bwhm           |
-
-<br />
-<img src="img/testnet-releases_new.svg" id="testnet-releases"/>
-
-
-Until the Joystream mainnet goes live, a sequence of test networks will be rolled out and deployed, and this section covers this activity.
-
-## Live Testnet
-
-[Rome](/testnets/rome/README.md)
-
-## Next Testnet
+## Build Status
 
-[Constantinople](/testnets/constantinople/README.md)
+Development [![Development Branch Build Status](https://travis-ci.org/Joystream/substrate-runtime-joystream.svg?branch=development)](https://travis-ci.org/Joystream/substrate-runtime-joystream)
 
+More detailed build history on [Travis CI](https://travis-ci.org/github/Joystream/substrate-runtime-joystream/builds)
 
-## Past Testnets
+## Overview
 
-| Network         | Started           | Ended         | Release Plan    |
-| -------------   | -------------     | -----         | -----           |
-| Acropolis       | 24.06.19          |   13.03.20    | [Link](/testnets/acropolis/README.md)        |
-| Athens          | 17.04.19          |   24.06.19    | [Link](/testnets/athens/README.md)        |
-| Sparta          | 28.02.19          |   29.03.19    |       N/A        |
-| Mesopotamia     | 21.12.18          |   28.02.19    |       N/A        |
-
-<br />
-<img src="img/pm-section_new.svg" id="project-management"/>
-
-## Why is this on GitHub?
-
-The reason this is placed in public view on GitHub is two fold:
-
-- **Open Invitation:** Serves as an open invitation for anyone who wants to learn, comment and possibly contribute, to the current or future development of the Joystream project.
-
-- **Best Practices**: Establish best practices which can be replicated by the platform, when it is fully live, in how to collaboratively build and manage the platform using open tools. In particular, the current plan is that the platform has a built-in GitHub equivalent, which thus would allow the use of these conventions.
-
-
-<br />
-<img src="img/meetings_new.svg" id="meetings"/>
-
-### Itinerary
-
-Meeting itineraries are prepared on a case by case basis, depending on the context, and a template for this, as well as an index of archived itineraries, can be found [here](/meetings).
-
-### Meeting Types
-
-#### Daily standup
-
-- **Description:** Everyone states, within 1 minute, what they accomplished the prior day, and what the goals are for the day. After this, people can start separate calls which need not be conducted in plenum.
-- **When:** Every day at 10am (GMT)
-- **Where:** Zoom
-- **Participant:** Core Jsgenesis team _must_ be present, anyone else is welcome (join Telegram for invite).
-- **Record&Publish:** YES, if no participant objects.
-
-#### Tuesday all-hands
-
-- **Description:** Everyone states individual:
-  1. **OKR Tracking**: Track your OKRs and OKR assignments
-  2. **Health Comments:** Any points you wish to discuss related to things like team health, code health, workflow/system health etc.
-  3. **Weekly Priorities:** Your top 3-5 priorities this week. *Not* the same as your tasks today.
-  4. **Announcements:** Anything you think should be brought to everyone's attention.
-- **When:** Every working Tuesday at 10am (GMT)
-- **Where:** Zoom
-- **Participant:** Core Jsgenesis team _must_ be present, anyone else is welcome (join Telegram for invite).
-- **Record&Publish:** YES, if no participant objects.
-
-#### Release meeting
-
-- **Description:** Discussion concerning testnet planning and release.
-- **When:** On-demand
-- **Where:** Zoom
-- **Participant:** Core release team _must_ be present, anyone else is welcome (join Telegram for invite).
-- **Record&Publish:** YES, if no participant objects.
-
-<br />
-<img src="img/okr-section_new.svg" id="okr-system"/>
-
-Project management is primarily centered around planning and tracking OKRs. OKRs is a planning and project management system, which can be reviewed in further detail [here](https://en.wikipedia.org/wiki/OKR).
-
-### Assignment
-
-A key result can be _assigned_ to a mix of people or other objectives. The _assignment set_ of a key result constitutes the set of relevant actors, directly or indirectly - for OKRs, that are working to satisfy the result. Each assignment is given a weight from 0 to 1, and the total weight across an assignment set is 1. Some key results, in particular for very higher order OKRs, may not have assignments at all times.
-
-### OKR types
-
-The OKRs can be classified into two separate families of types, first:
-
-- **Project OKRs**: Project OKRs can run over multiple years and are graded very rarely. They contain the root objectives that require no deeper justification. Every other objective must be justified directly, or indirectly through another key result, by virtue of its relevance to the project OKRs. The current set of such OKRs can be found [below](#project-okrs).
+The Joystream network builds on a pre-release version of [substrate v2.0](https://substrate.dev/) and adds additional
+functionality to support the [various roles](https://www.joystream.org/roles) that can be entered into on the platform.
 
-- **Quarterly OKRs**: Every quarter, new OKRs for the given quarter are derived, referred to as quarterly OKRs. Only OKRs which have independent objectives are formally referred to as quarterly OKRs, any derivative OKR is not, even if derived at the start of a quarter. Importantly, they should contain very little detail about releases. The current set of such OKRs can be found [below](#quarterly-okrs).
 
-- **Release OKRs**: Releases are planned one after the other on a rolling basis, and the release OKRs correspond to a single release. Only OKRs which have independent objectives are formally referred to as release OKRs, any derivative OKR is not, even if derived at in the context of a release. The current set of such OKRs can be found [below](#release-okrs)
+## Validator
+![ Nodes for Joystream](./node/validator-node-banner.svg)
 
-and then second:
+Joystream node is the main server application that connects to the network, synchronizes the blockchain with other nodes and produces blocks if configured as a validator node.
 
-- **Group OKRs**: Group OKRs are defined by the set of stakeholders assigned to the key results, and in particular that there is more than one person involved. Typically this could be a set of people working as a team on some topic or problem. In principle, such an OKR can be rationalised by a mix of release and quarterly OKRs, but in practice, it will most often just be one or the other. These OKRs should be flexible in time scope and should be reorganized if circumstances change. The current set of such OKRs can be found [below](#group-okrs).
+To setup a full node and validator review the [advanced guide from the helpdesk](https://github.com/Joystream/helpdesk/tree/master/roles/validators).
 
-- **Personal OKRs**: The exact same thing as group OKRs, only applying to a single person only. The current set of such OKRs can be found [below](#personal-okrs).
 
-_Note:_ Any OKR from the first family is
+###  Pre-built Binaries
 
- - never a personal OKR, even if assigned to a single person
+The latest pre-built binaries can be downloads from the [releases](https://github.com/Joystream/substrate-runtime-joystream/releases) page.
 
- - never a group OKR, even if assigned to a multiple persons
 
-The following figure attempts to summarise how these OKR families and types are related, and their relevant temporal scopes.
+### Building from source
 
-![alt text](img/OKR-figure.svg "OKR Tree")
+Clone the repository and install build tools:
 
-### Hierarchy
+```bash
+git clone https://github.com/Joystream/substrate-runtime-joystream.git
 
-All OKRs, except the project OKR, should be derived, in terms of its objective, from one or more key results of already existing higher order OKRs.
+cd substrate-runtime-joystream/
 
-### Tracking
+./setup.sh
+```
 
-In order to keep track of whether a key result and thus the corresponding objective will in the end, be satisfied, forecasts are tracked throughout the lifetime of an OKR. Each OKR has its own periodic tracking of progress, and to compute its forecasted value, do as indicated in the example figure below.
+### Building
 
-![alt text](img/KR-Weighting.svg "Key Result ")
+```bash
+cargo build --release
+```
 
-Briefly, do a topological sort of the key result graph, where having an objective in the result assignment set counts towards the indegree. Then just do ascending weighted averaging of scores, where key results are simply averaged into objective scores. Importantly, in order to do this, one has to get personal scores on key results, and there are two modes of doing this:
+### Running a public node on the Rome testnet
 
-- **Naive (n)**: Simply evaluate the key result statement directly based on available data at the time. For example, if the result is `Get $100 in revenue`, and one has $20 so far, then the score would be 0.2. This method is often suitable, but no if partial work is unlikely to have had any real world effects while tracking.
+Run the node and connect to the public testnet.
 
-- **Estimate of Work Done (ewd)**: Fraction of estimated total hours required that have been completed. This means that, if the estimate of total time required changes, then the score can change, even there is not change in actual hours completed.
+```bash
+cargo run --release -- --chain ./rome-tesnet.json
+```
 
-The mode used depends on the nature of the key result.
+The `rome-testnet.json` chain file can be ontained from the [release page](https://github.com/Joystream/substrate-runtime-joystream/releases/tag/v6.8.0)
 
-### Template
 
-The template used for recording and tracking OKRs has the following form:
+### Installing a release build
+This will install the executable `joystream-node` to your `~/.cargo/bin` folder, which you would normally have in your `$PATH` environment.
 
-## Objective: `<Name of objective>`
- - **Active from:** `<When the OKR is set/live>`
- - **KR Measurement Deadline**: `<When the final grading is conducted>`
- - **Tracked**: `<Time interval at which OKR is tracked>`
- - **Tracking Manager**: `<Name of person responsible for doing tracking, at a given interval, and final grading>`
- - **Key Results**: `<If all key results have the same assignment set, write here>`
-   1. `<Statement of Key result>` `<n/ewd>`
-     - `<Name of assignee>`: `<assignment weight>`
-     - ...
-  <br />
-  - **Final Score:**
+```bash
+cargo install joystream-node --path node/
+```
 
-  | Date     | KR #1 | ... |  Total |
-  |:--------:|:-----:|:-----:|:--------------:|
-  | `<final date>` | (`<... assignment set scores>`)  **Total KR score**  | ... |  **Final Objective Score** |
+Now you can run
 
- - **Notes**
-    * `<Notes on setup/tracking/final score if necessary>`
-    * ...
-  <br />
+```bash
+joystream-node --chain rome-testnet.json
+```
 
- - **Tracking:**
+### Local development
 
-| Date     | KR #1 | ... |  Comments |
-|:--------:|:-----:|:-----:|:--------------:|
-| `<date1>` | (`<... assignment set scores>`)  **Total KR score**  | ... |  **Tracking comments** |
-| `<date2>` | (`<... assignment set scores>`)  **Total KR score**  | ... |  **Tracking comments** |
+This will build and run a fresh new local development chain purging existing one:
 
-<br />
-<img src="img/testnet-planning_new.svg" id="testnet-planning"/>
+```bash
+./scripts/run-dev-chain.sh
+```
 
-### Branding
+### Unit tests
 
-All releases have the following branding materials, which should be summarised in a markdown _Branding Document_:
+```bash
+cargo test
+```
 
-- **Name:** Our current naming system is important historical ancient cities in the development of new political systems. It's still not clear if we will just stick to ancient cities, or if we will also move forward in time (TBD).
-- **Naming Rationale:** A brief 40-150 word text about the significance of this city in our context.
-- **Goal:** A brief 100-200 word text about the technical and community goals we are trying to achieve.
-- **Logomark:** Illustrated logomark corresponding to name.
 
-### Testnet Directory
+## Joystream Runtime
 
-All releases should have a corresponding _release directory_ in the `/testnets` directory of this repo, and it should have the following structure:
+![Joystream Runtime](./runtime/runtime-banner.svg)
 
-- `release_name`
-  - `README.md`: Release document.
-  - `specification.md`: Testnet specification.
-  - `/branding`: A directory which includes a branding document and related assets, as described in the branding [section](#branding).
 
-### Roles
+The runtime is the code that defines the consensus rules of the Joystream protocol.
+It is compiled to WASM and lives on chain.
+Joystream node execute the code's logic to validate transactions and blocks on the blockchain.
 
-#### Release Manager
+When building joystream-node as described abot with `cargo build --release`, in addition to the joystream-node binary being built the WASM blob artifact is produced in:
 
-Each release is directed by a _Release Manager_ (**RM**) who is responsible for:
+`target/release/wbuild/joystream-node-runtime/joystream_node_runtime.compact.wasm`
 
- - Conduct weekly status meetings (Monday), for each [Tracking Issue](#tracking-issues) of the release.
- - Based on this information, set a weekly tracking score for each KR to be presented and discussed with the team as part of the [Tuesday all-hands](#tuesday-all-hands).
- - Preparing all administrative pull requests for the release on this repo.
- - Follow up the Release [Milestones](#milestones)
 
-### Tracking Issues
+### Deployment
 
-A Tracking Issue is a GitHub issue which **evolves**, and at any given time holds a list of TODO items, with corresponding completion status and possibly responsibility indicator (i.e. each item has one responsible actor). TODO items are grouped into Tracking Issues based on what most deeply facilitates effective collaboration and progress tracking.
+Deploying the compiled runtime on a live system can be done in one of two ways:
 
-- Every Monday, each Tracking Issue will be discussed in a video meeting between all assigned team members and the Release Manager.
-- These meetings should be highly focused and kept at a reasonably high level.
-- If a discussion gets to deep, the **RM** can request that the relevant participants schedule a new meeting to address the issue.
-- The Release Manager will then update the Tracking Issue if necessary by changing/adding/removing/reassigning tasks, and checking off concluded tasks.
-- A concise summary of the meeting shall be added as a comment.
+1. Joystream runtime upgrade proposals which will be voted on by the council. When the Joystream platform is live, this will be the only way to upgrade the chain's runtime code.
 
-### Milestones
+2. During development and testnet phases, we can send an extrinsic (transaction signed with the sudo key) invoking `system::setCode()`. This can be done either from the UI/extrinsics app, or directly with an admin script.
 
-As part of the Release Plan, a set of Milestones are set, with a "target date". Similar to the concept of [Tracking Issues](#tracking-issues), the "Live Milestones" is a GitHub issue which **evolves**. Experience has shown, that during a release cycle:
-- we may require adjusting the target date(s)
-- we may want to add or remove certain Milestones
-- we may want to adjust the scope of certain Milestones
+### Versioning the runtime
 
-### Standard Release Meetings
+Versioning of the runtime is set in `runtime/src/lib.rs`
+For detailed information about how to set correct version numbers when developing a new runtime, [see this](https://github.com/Joystream/substrate-runtime-joystream/issues/1)
 
-In addition to the weekly follow-up meetings addressed above, each release cycle includes the more formal meetings listed below.
 
-- `Launch Meeting`
-- `User Stories Meeting`
-- `Release Plan Finalization Meeting`
-- `Release Checklist Meeting`
-- `Lessons Learned`
+## Coding style
 
-The **RM** is responsible for scheduling, conducting and taking minutes. Go [here](/meetings) to read about previously held, and scheduled release meetings.
+We use `cargo-fmt` to format the source code for consistency.
 
-### Step by Step Process
+It should be available on your machine if you ran the `setup.sh` script, otherwise install it with rustup:
 
-TODO
+```bash
+rustup component add rustfmt
+```
 
-<br />
-<img src="img/github-policy_new.svg" id="github-policy"/>
+Applying code formatting on all source files recursing subfolders:
 
-WIP: describe how we use GitHub, in particular
+```
+cargo-fmt
+```
 
-- repo creation, naming and formatting policies
-- how to use this repo, in particular managing label sets, projects, etc.
-- explain gitflow
-- collaboration, membership status policies.
+## Contributing
 
+Please see our [contributing guidlines](https://github.com/Joystream/joystream#contribute) for details on our code of conduct, and the process for submitting pull requests to us.
 
 ## Authors
 
@@ -395,7 +140,7 @@ See also the list of [CONTRIBUTORS](./CONTRIBUTORS) who participated in this pro
 
 ## License
 
-This project is licensed under the GPLv3 License - see the [LICENSE](./LICENSE) file for details
+This project is licensed under the GPLv3 License - see the [LICENSE](LICENSE) file for details
 
 ## Acknowledgments
 

+ 0 - 156
img/KR-Weighting.svg

@@ -1,156 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="1188px" height="929px" viewBox="0 0 1188 929" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 53.2 (72643) - https://sketchapp.com -->
-    <title>Group 3</title>
-    <desc>Created with Sketch.</desc>
-    <g id="Page-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group-3">
-            <g id="OKR" transform="translate(459.000000, 139.000000)">
-                <rect id="Rectangle" stroke="#B0B0B0" stroke-width="1" fill="#D8D8D8" x="0.5" y="0.5" width="234" height="67" rx="3"></rect>
-                <text id="Personal-OKR" fill="#000000" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal">
-                    <tspan x="63.101" y="44">Objective</tspan>
-                </text>
-            </g>
-            <g id="OKR" transform="translate(469.000000, 788.000000)">
-                <rect id="Rectangle" stroke="#B0B0B0" stroke-width="1" fill="#D8D8D8" x="0.5" y="0.5" width="234" height="67" rx="3"></rect>
-                <text id="Personal-OKR" fill="#000000" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal">
-                    <tspan x="63.101" y="44">Objective</tspan>
-                </text>
-            </g>
-            <g id="OKR" transform="translate(744.000000, 728.000000)">
-                <rect id="Rectangle" stroke="#B0B0B0" stroke-width="1" fill="#D8D8D8" x="0.5" y="0.5" width="234" height="67" rx="3"></rect>
-                <text id="Personal-OKR" fill="#000000" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal">
-                    <tspan x="63.101" y="44">Objective</tspan>
-                </text>
-            </g>
-            <g id="Group" transform="translate(704.000000, 383.000000)">
-                <rect id="Rectangle" stroke="#000000" x="0.5" y="0.5" width="222" height="43" rx="21.5"></rect>
-                <text id="Key-result" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="53.449" y="31">Key result</tspan>
-                </text>
-            </g>
-            <g id="Group" transform="translate(240.000000, 383.000000)">
-                <rect id="Rectangle" stroke="#000000" x="0.5" y="0.5" width="222" height="43" rx="21.5"></rect>
-                <text id="Key-Result" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="48.639" y="31">Key Result</tspan>
-                </text>
-            </g>
-            <path id="Line-Copy-3" d="M812.824064,488.802489 L803.641653,492.636419 L802.718859,493.021713 L801.948271,491.176125 L802.871065,490.790831 L815.576249,485.486039 L817.216771,484.801072 L816.95024,486.558757 L814.886065,500.171313 L814.736141,501.16001 L812.758746,500.860163 L812.90867,499.871465 L814.40051,490.033269 L809.424073,496.407343 L581.288223,788.61539 L580.672833,789.403613 L579.096387,788.172833 L579.711777,787.38461 L807.847628,495.176563 L812.824064,488.802489 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy-3" d="M352.561474,490.04678 L353.930175,499.902862 L354.067724,500.893357 L352.086734,501.168455 L351.949185,500.17796 L350.055391,486.540656 L349.81086,484.779776 L351.442689,485.485204 L364.080545,490.948454 L364.998448,491.345257 L364.204843,493.181065 L363.286939,492.784262 L354.153187,488.835809 L359.04935,495.271377 L581.295856,787.394515 L581.901342,788.190371 L580.309629,789.401342 L579.704144,788.605485 L357.457637,496.482348 L352.561474,490.04678 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy-3" d="M815.092849,490.200598 L811.926959,499.634199 L811.608801,500.582237 L809.712726,499.945919 L810.030884,498.997882 L814.411348,485.945141 L814.976963,484.259741 L816.123588,485.618323 L825.003731,496.139994 L825.648707,496.904197 L824.120302,498.194149 L823.475326,497.429947 L817.057384,489.825624 L818.576934,497.786745 L862.482267,727.812513 L862.669754,728.79478 L860.70522,729.169754 L860.517733,728.187487 L816.6124,498.161719 L815.092849,490.200598 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy-3" d="M817.776544,489.286251 L823.279716,497.576655 L823.832761,498.409806 L822.16646,499.515897 L821.613414,498.682746 L813.998987,487.211783 L813.015795,485.730626 L814.792151,485.659537 L828.549308,485.108984 L829.548509,485.068997 L829.628483,487.067397 L828.629283,487.107384 L818.686579,487.505285 L825.918865,491.200825 L1066.45502,614.109517 L1067.3455,614.564534 L1066.43547,616.3455 L1065.54498,615.890483 L825.008831,492.98179 L817.776544,489.286251 Z" fill="#000000" fill-rule="nonzero"></path>
-            <g id="Group-2" transform="translate(48.000000, 615.000000)">
-                <circle id="Oval" stroke="#000000" cx="72" cy="72" r="72"></circle>
-                <text id="Person" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="32.076" y="82">Person</tspan>
-                </text>
-            </g>
-            <g id="Group-2" transform="translate(256.000000, 615.000000)">
-                <circle id="Oval" stroke="#000000" cx="72" cy="72" r="72"></circle>
-                <text id="Person" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="32.076" y="82">Person</tspan>
-                </text>
-            </g>
-            <g id="Group-2" transform="translate(1007.000000, 615.000000)">
-                <circle id="Oval" stroke="#000000" cx="72" cy="72" r="72"></circle>
-                <text id="Person" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="32.076" y="82">Person</tspan>
-                </text>
-            </g>
-            <path d="M816,383 L573,296" id="Line-Copy-3" stroke="#000000" stroke-width="2" stroke-linecap="square" stroke-dasharray="6"></path>
-            <path d="M340,383 L573,296" id="Line-Copy-3" stroke="#000000" stroke-width="2" stroke-linecap="square" stroke-dasharray="6"></path>
-            <path id="Line-Copy-3" d="M349.962522,489.836505 L343.598205,497.485764 L342.958618,498.254482 L341.421181,496.975308 L342.060768,496.206589 L350.866713,485.622742 L352.003757,484.256131 L352.581209,485.937513 L357.053338,498.959132 L357.378155,499.904909 L355.486601,500.554542 L355.161784,499.608765 L351.929644,490.197656 L350.466876,498.165074 L328.983561,615.180576 L328.802985,616.164137 L326.835863,615.802985 L327.016439,614.819424 L348.499754,497.803923 L349.962522,489.836505 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy-3" d="M348.331637,487.609159 L338.38124,487.536416 L337.381267,487.529105 L337.395887,485.529159 L338.395861,485.536469 L352.163663,485.637119 L353.941393,485.650115 L353.007133,487.162614 L345.771665,498.876303 L345.246144,499.727083 L343.544583,498.676041 L344.070104,497.82526 L349.29939,489.359431 L342.160858,493.306438 L120.483877,615.875136 L119.60874,616.359013 L118.640987,614.60874 L119.516123,614.124864 L341.193105,491.556165 L348.331637,487.609159 Z" fill="#000000" fill-rule="nonzero"></path>
-            <g id="Weight" transform="translate(150.000000, 539.000000)">
-                <rect id="Rectangle" stroke="#979797" stroke-width="1" fill="#FFFFFF" fill-rule="evenodd" x="0.5" y="0.5" width="120" height="39" rx="4"></rect>
-                <text id="w-=-0.25" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="10.82" y="28">w =</tspan>
-                    <tspan x="53.356" y="28" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold"> 0.25</tspan>
-                </text>
-            </g>
-            <g id="Weight" transform="translate(290.000000, 568.000000)">
-                <rect id="Rectangle" stroke="#979797" stroke-width="1" fill="#FFFFFF" fill-rule="evenodd" x="0.5" y="0.5" width="120" height="39" rx="4"></rect>
-                <text id="w-=-0.25" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="10.82" y="28">w =</tspan>
-                    <tspan x="53.356" y="28" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold"> 0.25</tspan>
-                </text>
-            </g>
-            <g id="Weight" transform="translate(429.000000, 630.000000)">
-                <rect id="Rectangle" stroke="#979797" stroke-width="1" fill="#FFFFFF" fill-rule="evenodd" x="0.5" y="0.5" width="120" height="39" rx="4"></rect>
-                <text id="w-=-0.25" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="18.048" y="28">w = </tspan>
-                    <tspan x="67.812" y="28" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold">0.5</tspan>
-                </text>
-            </g>
-            <g id="Weight" transform="translate(629.000000, 630.000000)">
-                <rect id="Rectangle" stroke="#979797" stroke-width="1" fill="#FFFFFF" fill-rule="evenodd" x="0.5" y="0.5" width="120" height="39" rx="4"></rect>
-                <text id="w-=-0.25" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="18.048" y="28">w = </tspan>
-                    <tspan x="67.812" y="28" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold">0.1</tspan>
-                </text>
-            </g>
-            <g id="Weight" transform="translate(789.000000, 600.000000)">
-                <rect id="Rectangle" stroke="#979797" stroke-width="1" fill="#FFFFFF" fill-rule="evenodd" x="0.5" y="0.5" width="120" height="39" rx="4"></rect>
-                <text id="w-=-0.25" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="18.048" y="28">w = </tspan>
-                    <tspan x="67.812" y="28" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold">0.6</tspan>
-                </text>
-            </g>
-            <g id="Weight" transform="translate(941.000000, 548.000000)">
-                <rect id="Rectangle" stroke="#979797" stroke-width="1" fill="#FFFFFF" fill-rule="evenodd" x="0.5" y="0.5" width="120" height="39" rx="4"></rect>
-                <text id="w-=-0.25" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                    <tspan x="18.048" y="28">w = </tspan>
-                    <tspan x="67.812" y="28" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold">0.3</tspan>
-                </text>
-            </g>
-            <text id="Score-=-0.5" font-family="HelveticaNeue, Helvetica Neue" font-size="18" font-weight="normal" fill="#000000">
-                <tspan x="74.587" y="789">Score =</tspan>
-                <tspan x="137.389" y="789" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold"> 0.5</tspan>
-            </text>
-            <text id="Score-=-0.45-=-0.5*0" font-family="HelveticaNeue, Helvetica Neue" font-size="18" font-weight="normal">
-                <tspan x="282.681" y="451" fill="#000000">Score =</tspan>
-                <tspan x="345.483" y="451" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold" fill="#000000"> </tspan>
-                <tspan x="350.487" y="451" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold" fill="#14BA43">0.45</tspan>
-                <tspan x="385.515" y="451" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold" fill="#000000"> </tspan>
-                <tspan x="390.519" y="451" fill="#000000">=</tspan>
-                <tspan x="260.044" y="473" font-size="14" fill="#000000">0.5*0.25+0.9*0.25+0.2*0.5</tspan>
-            </text>
-            <text id="Score-=-0.1-=-0.1*0." font-family="HelveticaNeue, Helvetica Neue" font-size="18" font-weight="normal">
-                <tspan x="769.685" y="451" fill="#000000">Score =</tspan>
-                <tspan x="832.487" y="451" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold" fill="#000000"> </tspan>
-                <tspan x="837.491" y="451" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold" fill="#14BA43">0.1</tspan>
-                <tspan x="862.511" y="451" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold" fill="#000000"> </tspan>
-                <tspan x="867.515" y="451" fill="#000000">= </tspan>
-                <tspan x="755.666" y="473" font-size="14" fill="#000000">0.1*0.2+0.6*0.4+0.3*0</tspan>
-            </text>
-            <text id="Score-=-0.9" font-family="HelveticaNeue, Helvetica Neue" font-size="18" font-weight="normal" fill="#000000">
-                <tspan x="280.587" y="796">Score =</tspan>
-                <tspan x="343.389" y="796" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold"> 0.9</tspan>
-            </text>
-            <text id="Score-=-0.2" font-family="HelveticaNeue, Helvetica Neue" font-size="18" font-weight="normal" fill="#000000">
-                <tspan x="533.587" y="884">Score =</tspan>
-                <tspan x="596.389" y="884" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold"> 0.2</tspan>
-            </text>
-            <text id="Score-=-0.4" font-family="HelveticaNeue, Helvetica Neue" font-size="18" font-weight="normal" fill="#000000">
-                <tspan x="823.587" y="834">Score =</tspan>
-                <tspan x="886.389" y="834" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold"> 0.4</tspan>
-            </text>
-            <text id="Score-=-0" font-family="HelveticaNeue, Helvetica Neue" font-size="18" font-weight="normal" fill="#000000">
-                <tspan x="1041.093" y="794">Score =</tspan>
-                <tspan x="1103.895" y="794" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold"> 0</tspan>
-            </text>
-            <text id="Score-=-0.275-=-0.5*" font-family="HelveticaNeue, Helvetica Neue" font-size="32" font-weight="normal">
-                <tspan x="465.148" y="239" fill="#000000">Score =</tspan>
-                <tspan x="576.796" y="239" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold" fill="#000000"> </tspan>
-                <tspan x="585.692" y="239" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold" fill="#14BA43">0.275</tspan>
-                <tspan x="665.756" y="239" font-family="HelveticaNeue-Bold, Helvetica Neue" font-weight="bold" fill="#000000"> </tspan>
-                <tspan x="674.652" y="239" fill="#000000">=</tspan>
-                <tspan x="483.04" y="277" font-size="26" fill="#000000">0.5*0.45+0.5*0.1</tspan>
-            </text>
-            <rect id="Rectangle" stroke="#979797" x="0.5" y="0.5" width="1187" height="928" rx="4"></rect>
-            <text id="OKR-Tracking" font-family="HelveticaNeue-Light, Helvetica Neue" font-size="52" font-weight="300" fill="#000000">
-                <tspan x="432.346" y="72">OKR Tracking</tspan>
-            </text>
-        </g>
-    </g>
-</svg>

+ 0 - 80
img/OKR-figure.svg

@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="1009px" height="826px" viewBox="0 0 1009 826" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 53.2 (72643) - https://sketchapp.com -->
-    <title>Group</title>
-    <desc>Created with Sketch.</desc>
-    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group">
-            <rect id="Rectangle" fill="#F8F8F8" x="798" y="0" width="210" height="826" rx="4"></rect>
-            <g id="OKR" transform="translate(136.000000, 515.000000)">
-                <rect id="Rectangle" stroke="#B0B0B0" stroke-width="1" fill="#D8D8D8" x="0.5" y="0.5" width="234" height="67" rx="3"></rect>
-                <text id="Personal-OKR" fill="#000000" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal">
-                    <tspan x="36.139" y="44">Personal OKR</tspan>
-                </text>
-            </g>
-            <g id="OKR" transform="translate(421.000000, 515.000000)">
-                <rect id="Rectangle" stroke="#B0B0B0" stroke-width="1" fill="#D8D8D8" x="0.5" y="0.5" width="234" height="67" rx="3"></rect>
-                <text id="Personal-OKR" fill="#000000" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal">
-                    <tspan x="50.569" y="44">Group OKR</tspan>
-                </text>
-            </g>
-            <g id="OKR" transform="translate(33.000000, 297.000000)">
-                <rect id="Rectangle" stroke="#B0B0B0" stroke-width="1" fill="#D8D8D8" x="0.5" y="0.5" width="234" height="67" rx="3"></rect>
-                <text id="Personal-OKR" fill="#000000" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal">
-                    <tspan x="40.715" y="44">Release OKR</tspan>
-                </text>
-            </g>
-            <g id="OKR" transform="translate(289.000000, 133.000000)">
-                <rect id="Rectangle" stroke="#B0B0B0" stroke-width="1" fill="#D8D8D8" x="0.5" y="0.5" width="234" height="67" rx="3"></rect>
-                <text id="Personal-OKR" fill="#000000" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal">
-                    <tspan x="46.006" y="44">Project OKR</tspan>
-                </text>
-            </g>
-            <path id="Line" d="M269.907226,333.602323 L274.102412,342.625411 L274.524011,343.532193 L272.710446,344.37539 L272.288847,343.468608 L266.484206,330.983872 L265.734697,329.371814 L267.501572,329.568406 L281.185299,331.090935 L282.179166,331.201518 L281.958,333.189252 L280.964133,333.078669 L271.074499,331.978292 L277.645094,336.700908 L524.583636,514.187985 L525.395651,514.771621 L524.228379,516.395651 L523.416364,515.812015 L276.477822,338.324939 L269.907226,333.602323 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line" d="M633.367456,366.865291 L624.278316,370.915381 L623.364896,371.322398 L622.550861,369.495557 L623.464282,369.08854 L636.040411,363.484659 L637.664269,362.761073 L637.439395,364.524571 L635.697838,378.18215 L635.571347,379.174118 L633.587411,378.921135 L633.713903,377.929167 L634.972578,368.058431 L630.147786,374.549182 L525.302561,515.59657 L524.705991,516.399131 L523.100869,515.205991 L523.697439,514.40343 L628.542664,373.356042 L633.367456,366.865291 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy" d="M417.932493,548 L409.259739,543.121576 L408.388163,542.631314 L409.368686,540.888163 L410.240261,541.378424 L422.240261,548.128424 L423.789729,549 L422.240261,549.871576 L410.240261,556.621576 L409.368686,557.111837 L408.388163,555.368686 L409.259739,554.878424 L417.932493,550 L409.75,550 L371,550 L370,550 L370,548 L371,548 L409.75,548 L417.932493,548 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy-2" d="M434.8744,204.223945 L432.545904,213.898334 L432.311899,214.87057 L430.367428,214.402561 L430.601432,213.430326 L433.823242,200.044421 L434.239249,198.316002 L435.500327,199.569069 L445.266867,209.273562 L445.976223,209.978412 L444.566524,211.397125 L443.857167,210.692275 L436.7986,203.678551 L439.024456,211.531571 L524.9621,514.727303 L525.234797,515.689403 L523.310597,516.234797 L523.0379,515.272697 L437.100256,212.076965 L434.8744,204.223945 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy-3" d="M286.047584,174.301091 L276.332061,176.451511 L275.355691,176.667619 L274.923475,174.71488 L275.899844,174.498772 L289.342665,171.523358 L291.078432,171.139165 L290.5054,172.822058 L286.067494,185.85538 L285.745163,186.802007 L283.851909,186.157346 L284.17424,185.210719 L287.381645,175.791151 L281.333268,181.206305 L151.167031,297.74503 L150.422,298.412061 L149.087939,296.922 L149.832969,296.25497 L279.999207,179.716245 L286.047584,174.301091 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy-3" d="M378.919416,203.465921 L371.136552,209.666141 L370.354407,210.289237 L369.108214,208.724947 L369.89036,208.101851 L380.659068,199.522957 L382.049548,198.41523 L382.274151,200.178763 L384.01361,213.83661 L384.139949,214.828597 L382.155975,215.081275 L382.029635,214.089288 L380.772477,204.218358 L377.730177,211.710769 L254.426531,515.376219 L254.050312,516.30275 L252.19725,515.550312 L252.573469,514.623781 L375.877115,210.958332 L378.919416,203.465921 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy-3" d="M520.901224,331.898433 L510.986434,332.742615 L509.990039,332.827452 L509.820366,330.834662 L510.81676,330.749826 L524.535294,329.581779 L526.306663,329.430958 L525.515704,331.023088 L519.390049,343.353491 L518.945134,344.249064 L517.153988,343.359236 L517.598902,342.463662 L522.026095,333.552116 L515.324959,338.110374 L254.062435,515.826841 L253.235594,516.389277 L252.110723,514.735594 L252.937565,514.173159 L514.200089,336.456691 L520.901224,331.898433 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy-3" d="M144.014238,368.062829 L145.23038,377.938895 L145.352598,378.931399 L143.367591,379.175833 L143.245374,378.18333 L141.562666,364.518375 L141.345391,362.753924 L142.966118,363.484499 L155.51799,369.142503 L156.429648,369.553451 L155.607752,371.376768 L154.696093,370.96582 L145.624484,366.876614 L150.421768,373.388763 L254.305123,514.406893 L254.898231,515.212016 L253.287984,516.398231 L252.694877,515.593107 L148.811521,374.574978 L144.014238,368.062829 Z" fill="#000000" fill-rule="nonzero"></path>
-            <g id="OKR" transform="translate(524.000000, 297.000000)">
-                <rect id="Rectangle" stroke="#B0B0B0" stroke-width="1" fill="#D8D8D8" x="0.5" y="0.5" width="234" height="67" rx="3"></rect>
-                <text id="Personal-OKR" fill="#000000" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal">
-                    <tspan x="33.721" y="44">Quarterly OKR</tspan>
-                </text>
-            </g>
-            <path id="Line-Copy-3" d="M525.244581,169.976679 L527.209429,179.731425 L527.406888,180.711736 L525.446266,181.106654 L525.248807,180.126343 L522.530157,166.629253 L522.179119,164.886477 L523.850783,165.491482 L536.79715,170.177 L537.737462,170.517316 L537.056831,172.397939 L536.11652,172.057623 L526.759798,168.671261 L532.049465,174.811053 L636.757609,296.347291 L637.410318,297.1049 L635.8951,298.410318 L635.242391,297.652709 L530.534248,176.116471 L525.244581,169.976679 Z" fill="#000000" fill-rule="nonzero"></path>
-            <path id="Line-Copy-3" d="M108.932493,672 L100.259739,667.121576 L99.3881632,666.631314 L100.368686,664.888163 L101.240261,665.378424 L113.240261,672.128424 L114.789729,673 L113.240261,673.871576 L101.240261,680.621576 L100.368686,681.111837 L99.3881632,679.368686 L100.259739,678.878424 L108.932493,674 L100.75,674 L32.5,674 L31.5,674 L31.5,672 L32.5,672 L100.75,672 L108.932493,672 Z" fill="#000000" fill-rule="nonzero"></path>
-            <text id="Derived-from-Key-Res" fill="#000000" font-family="HelveticaNeue, Helvetica Neue" font-size="18" font-weight="normal">
-                <tspan x="129.647" y="679">Derived from Key Result </tspan>
-            </text>
-            <path d="M0.5,234.5 L1007.69141,234.5" id="Line-2" stroke="#979797" opacity="0.401692708" stroke-linecap="square"></path>
-            <path d="M0.5,434.5 L1007.69141,434.5" id="Line-2-Copy" stroke="#979797" opacity="0.401692708" stroke-linecap="square"></path>
-            <path d="M0.5,634.5 L1007.69141,642.5" id="Line-2-Copy-2" stroke="#979797" opacity="0.401692708" stroke-linecap="square"></path>
-            <rect id="Rectangle" stroke="#979797" fill="#FFFFFF" x="289.5" y="706.5" width="228" height="58" rx="29"></rect>
-            <text id="1-3-Years" font-family="Arial-Black, Arial Black" font-size="24" font-weight="700" fill="#000000">
-                <tspan x="842.828125" y="162">1-3 Years</tspan>
-            </text>
-            <text id="8-12-Weeks" font-family="Arial-Black, Arial Black" font-size="24" font-weight="700" fill="#000000">
-                <tspan x="829.458984" y="344">8-12 Weeks</tspan>
-            </text>
-            <text id="Flexible" font-family="Arial-Black, Arial Black" font-size="24" font-weight="700" fill="#000000">
-                <tspan x="852.708984" y="562">Flexible</tspan>
-            </text>
-            <text id="Days" font-family="Arial-Black, Arial Black" font-size="24" font-weight="700" fill="#000000">
-                <tspan x="872.001953" y="740">Days</tspan>
-            </text>
-            <text id="Task" fill="#000000" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal">
-                <tspan x="375.253" y="744">Task</tspan>
-            </text>
-            <text id="OKR-Types" font-family="HelveticaNeue-Light, Helvetica Neue" font-size="52" font-weight="300" fill="#000000">
-                <tspan x="281.284" y="76">OKR Types</tspan>
-            </text>
-            <text id="Time-scales" font-family="HelveticaNeue, Helvetica Neue" font-size="26" font-weight="normal" fill="#000000">
-                <tspan x="834.639" y="56">Time scales</tspan>
-            </text>
-            <rect id="Rectangle" stroke="#979797" x="0.5" y="0.5" width="1007" height="825" rx="4"></rect>
-        </g>
-    </g>
-</svg>

File diff suppressed because it is too large
+ 0 - 0
img/github-policy.svg


File diff suppressed because it is too large
+ 0 - 10
img/github-policy_new.svg


+ 0 - 326
img/landing-cover.svg

@@ -1,326 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 882 300" style="enable-background:new 0 0 882 300;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#C4C3C6;}
-	.st1{fill:#FFFFFF;}
-	.st2{fill-rule:evenodd;clip-rule:evenodd;}
-	.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#C4C3C6;}
-	.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
-	.st5{fill:#010101;}
-	.st6{fill:none;}
-	.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#B1B2B7;}
-	.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;}
-	.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;}
-</style>
-<g id="Layer_4">
-	<path d="M876,209H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h870c3.3,0,6,2.7,6,6v197C882,206.3,879.3,209,876,209z"/>
-	<g>
-		<path class="st0" d="M65,133.5c-1.8,0-2.7,0.7-2.7,2c0,0.8,0.2,1.3,0.6,1.6s1.3,0.6,2.5,0.8c1.3,0.3,2.2,0.6,2.7,1.1
-			c0.5,0.5,0.8,1.2,0.8,2.2c0,2.6-1.3,3.8-4,3.8c-0.9,0-2-0.1-3.3-0.3l-0.6-0.1l0.1-1.2c1.6,0.2,2.9,0.3,3.7,0.3
-			c1.8,0,2.7-0.8,2.7-2.5c0-0.7-0.2-1.2-0.6-1.4c-0.4-0.3-1.1-0.5-2.2-0.7c-1.4-0.3-2.4-0.7-3-1.2c-0.6-0.5-0.9-1.3-0.9-2.4
-			c0-2.2,1.3-3.3,4-3.3c0.9,0,1.9,0.1,3.1,0.3l0.6,0.1l-0.1,1.2C66.8,133.6,65.7,133.5,65,133.5z"/>
-		<path class="st0" d="M75.6,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path class="st0" d="M83.6,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7
-			c-0.8,0-1.5-0.2-1.9-0.7c-0.4-0.5-0.6-1.1-0.6-2c0-0.9,0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7
-			C83.3,136.9,83.6,137.6,83.6,138.6z M78,142.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C78.1,141.4,78,141.8,78,142.3z"/>
-		<path class="st0" d="M86.2,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2
-			v6.6H86.2z"/>
-		<path class="st0" d="M97.1,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path class="st0" d="M104.1,144.9h-1.4V132h1.4v4.4c1-0.5,1.9-0.7,2.8-0.7c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.4v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6c-0.2-0.5-0.8-0.7-1.6-0.7c-0.8,0-1.5,0.1-2.2,0.4l-0.3,0.1V144.9z"/>
-		<path class="st0" d="M118.5,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7
-			S117.6,143.9,118.5,143.8z M118,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H118z"/>
-		<path class="st0" d="M121.5,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2
-			v6.6H121.5z"/>
-		<path class="st0" d="M133.7,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7
-			S132.7,143.9,133.7,143.8z M133.2,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H133.2
-			z"/>
-		<path class="st0" d="M145.2,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path class="st0" d="M146.5,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1s0.9,1.9,0.9,3.6
-			s-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C146.8,143.2,146.5,142,146.5,140.4z M147.9,140.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8s0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			c-0.9,0-1.6,0.2-1.9,0.7C148.1,138.2,147.9,139.1,147.9,140.4z"/>
-		<path class="st0" d="M160.5,144.9V132h1.4v12.9H160.5z"/>
-		<path class="st0" d="M170.6,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7
-			S169.7,143.9,170.6,143.8z M170.2,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H170.2
-			z"/>
-		<path class="st0" d="M180,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7
-			c-0.8,0-1.5-0.2-1.9-0.7c-0.4-0.5-0.6-1.1-0.6-2c0-0.9,0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7
-			C179.7,136.9,180,137.6,180,138.6z M174.4,142.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C174.5,141.4,174.4,141.8,174.4,142.3z"/>
-		<path class="st0" d="M182.6,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2
-			v6.6H182.6z"/>
-		<path class="st0" d="M190.2,144.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.3v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V144.9z"/>
-		<path class="st0" d="M208.8,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7
-			c-0.8,0-1.5-0.2-1.9-0.7c-0.4-0.5-0.6-1.1-0.6-2c0-0.9,0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7
-			C208.6,136.9,208.8,137.6,208.8,138.6z M203.3,142.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C203.4,141.4,203.3,141.8,203.3,142.3z"/>
-		<path class="st0" d="M215.5,135.7c1.2,0,2.1,0.3,2.5,1c0.5,0.7,0.7,1.9,0.7,3.6s-0.3,2.9-0.9,3.6c-0.6,0.7-1.7,1.1-3.3,1.1
-			c-0.5,0-1.3,0-2.5-0.1l-0.5-0.1V132h1.3v4.4C213.7,136,214.6,135.7,215.5,135.7z M214.5,143.9c1.2,0,2-0.3,2.3-0.8
-			c0.4-0.5,0.6-1.4,0.6-2.7c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-0.8-0.8-1.6-0.8c-0.7,0-1.4,0.1-2.1,0.4l-0.4,0.1v6.3
-			C213.6,143.9,214.2,143.9,214.5,143.9z"/>
-		<path class="st0" d="M220.6,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1s0.9,1.9,0.9,3.6
-			s-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C220.9,143.2,220.6,142,220.6,140.4z M222,140.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8s0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			c-0.9,0-1.6,0.2-1.9,0.7C222.1,138.2,222,139.1,222,140.4z"/>
-		<path class="st0" d="M236.1,135.9h1.4v9h-1.4v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-1.2,0-2-0.3-2.4-1c-0.4-0.6-0.6-1.8-0.6-3.5v-4.7
-			h1.4v4.7c0,1.3,0.1,2.2,0.3,2.6s0.7,0.7,1.5,0.7c0.4,0,0.8-0.1,1.2-0.2c0.4-0.1,0.7-0.2,0.9-0.3l0.3-0.2V135.9z"/>
-		<path class="st0" d="M244.7,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path class="st0" d="M255,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path class="st0" d="M258,144.9h-1.4V132h1.4v4.4c1-0.5,1.9-0.7,2.8-0.7c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.4v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6c-0.2-0.5-0.8-0.7-1.6-0.7c-0.8,0-1.5,0.1-2.2,0.4l-0.3,0.1V144.9z"/>
-		<path class="st0" d="M272.4,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7
-			S271.5,143.9,272.4,143.8z M271.9,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H271.9
-			z"/>
-		<path class="st0" d="M278.4,146.2V145c0.9,0,1.4-0.1,1.7-0.3c0.2-0.2,0.4-0.8,0.4-1.6v-10.5h1.4l0,10.7c0,1-0.2,1.7-0.5,2.2
-			c-0.3,0.4-0.8,0.6-1.6,0.7C279.3,146.2,278.9,146.2,278.4,146.2z"/>
-		<path class="st0" d="M284.1,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1s0.9,1.9,0.9,3.6
-			s-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C284.3,143.2,284.1,142,284.1,140.4z M285.4,140.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8s0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			c-0.9,0-1.6,0.2-1.9,0.7C285.6,138.2,285.4,139.1,285.4,140.4z"/>
-		<path class="st0" d="M292.9,135.9h1.3l2.2,7.8h0.6l2.3-7.8h1.4l-3.7,13h-1.4l1.2-4h-1.3L292.9,135.9z"/>
-		<path class="st0" d="M305.2,136.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8
-			c0.4,0.3,0.7,1,0.7,1.9c0,0.9-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2
-			c1.4,0.2,2.4,0.3,3.1,0.3c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1s-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5
-			c-1.1-0.2-1.8-0.4-2.2-0.7c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2
-			C307,137,305.9,136.9,305.2,136.9z"/>
-		<path class="st0" d="M315.4,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path class="st0" d="M317,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2
-			v6.6H317z"/>
-		<path class="st0" d="M329.2,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7
-			S328.3,143.9,329.2,143.8z M328.7,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H328.7
-			z"/>
-		<path class="st0" d="M338.5,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7
-			c-0.8,0-1.5-0.2-1.9-0.7c-0.4-0.5-0.6-1.1-0.6-2c0-0.9,0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7
-			C338.3,136.9,338.5,137.6,338.5,138.6z M333,142.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C333.1,141.4,333,141.8,333,142.3z"/>
-		<path class="st0" d="M342.5,144.9h-1.4v-9h1.3v0.6c0.9-0.5,1.8-0.8,2.6-0.8c1.1,0,1.9,0.3,2.3,0.9c0.4-0.2,0.9-0.5,1.5-0.6
-			c0.6-0.2,1.2-0.3,1.7-0.3c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.5-0.7
-			c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-1,0.3l-0.3,0.2c0.2,0.4,0.2,1.3,0.2,2.6v4.7h-1.3v-4.6c0-1.3-0.1-2.2-0.4-2.6
-			c-0.2-0.5-0.7-0.7-1.5-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-0.9,0.3l-0.3,0.2V144.9z"/>
-		<path class="st0" d="M360.2,148.9v-13h1.3v0.6c0.9-0.6,1.8-0.8,2.7-0.8c1.1,0,2,0.4,2.5,1.1c0.5,0.7,0.8,1.9,0.8,3.6
-			s-0.3,2.9-0.9,3.6c-0.6,0.7-1.6,1.1-3,1.1c-0.7,0-1.4-0.1-2-0.2v4H360.2z M364,136.9c-0.4,0-0.7,0.1-1.2,0.2
-			c-0.4,0.1-0.7,0.2-1,0.4l-0.3,0.2v6.1c0.9,0.1,1.5,0.2,1.9,0.2c1,0,1.7-0.3,2-0.8s0.6-1.5,0.6-2.7s-0.2-2.1-0.5-2.7
-			C365.2,137.2,364.7,136.9,364,136.9z"/>
-		<path class="st0" d="M369.7,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2
-			v6.6H369.7z"/>
-		<path class="st0" d="M375.3,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1s0.9,1.9,0.9,3.6
-			s-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C375.6,143.2,375.3,142,375.3,140.4z M376.7,140.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8s0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			c-0.9,0-1.6,0.2-1.9,0.7C376.9,138.2,376.7,139.1,376.7,140.4z"/>
-		<path class="st0" d="M385.3,144.7v-8.8h1.3v8.8c0,1.1-0.2,1.9-0.6,2.5c-0.4,0.6-1.2,1.1-2.4,1.7l-0.5-1c0.9-0.5,1.5-1,1.8-1.4
-			C385.1,146.1,385.3,145.5,385.3,144.7z M385.3,133.9v-1.6h1.3v1.6H385.3z"/>
-		<path class="st0" d="M395.3,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7
-			S394.4,143.9,395.3,143.8z M394.8,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H394.8
-			z"/>
-		<path class="st0" d="M401.6,135.7c0.4,0,1.1,0.1,2,0.2l0.4,0.1l-0.1,1.1c-1-0.1-1.7-0.2-2.1-0.2c-1,0-1.7,0.2-2.1,0.7
-			c-0.4,0.5-0.5,1.4-0.5,2.7s0.2,2.2,0.5,2.7c0.3,0.5,1.1,0.8,2.1,0.8l2.1-0.2l0.1,1.1c-1.1,0.2-2,0.3-2.5,0.3
-			c-1.4,0-2.4-0.4-2.9-1.1c-0.5-0.7-0.8-1.9-0.8-3.6s0.3-2.9,0.9-3.6C399.3,136.1,400.3,135.7,401.6,135.7z"/>
-		<path class="st0" d="M410.8,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path class="st0" d="M416,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1s0.9,1.9,0.9,3.6
-			s-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C416.3,143.2,416,142,416,140.4z M417.4,140.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8s0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			c-0.9,0-1.6,0.2-1.9,0.7C417.6,138.2,417.4,139.1,417.4,140.4z"/>
-		<path class="st0" d="M427.2,144.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.3v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V144.9z"/>
-		<path class="st0" d="M444.7,139.8v-1.2h3.4v6.1c-1.5,0.3-2.9,0.4-4,0.4c-1.8,0-3.1-0.5-3.8-1.6c-0.7-1-1.1-2.7-1.1-4.8
-			c0-2.2,0.4-3.8,1.1-4.8c0.7-1,1.9-1.6,3.7-1.6c1.1,0,2.3,0.1,3.5,0.4l0.6,0.1l-0.1,1.2c-1.5-0.3-2.8-0.4-3.9-0.4
-			c-1.4,0-2.3,0.4-2.8,1.2c-0.5,0.8-0.7,2.1-0.7,4s0.2,3.2,0.7,4c0.5,0.8,1.4,1.2,2.8,1.2c0.8,0,1.7-0.1,2.6-0.3v-3.8H444.7z"/>
-		<path class="st0" d="M450.6,133.9v-1.6h1.3v1.6H450.6z M450.6,144.9v-9h1.3v9H450.6z"/>
-		<path class="st0" d="M459.2,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path class="st0" d="M462.2,144.9h-1.3V132h1.3v4.4c1-0.5,1.9-0.7,2.8-0.7c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.4v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6c-0.2-0.5-0.8-0.7-1.6-0.7c-0.8,0-1.5,0.1-2.2,0.4l-0.3,0.1V144.9z"/>
-		<path class="st0" d="M476.2,135.9h1.3v9h-1.3v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-1.2,0-2-0.3-2.4-1c-0.4-0.6-0.6-1.8-0.6-3.5v-4.7
-			h1.3v4.7c0,1.3,0.1,2.2,0.3,2.6c0.2,0.4,0.7,0.7,1.5,0.7c0.4,0,0.8-0.1,1.2-0.2c0.4-0.1,0.7-0.2,0.9-0.3l0.3-0.2V135.9z"/>
-		<path class="st0" d="M484.1,135.7c1.2,0,2.1,0.3,2.5,1c0.5,0.7,0.7,1.9,0.7,3.6s-0.3,2.9-0.9,3.6c-0.6,0.7-1.7,1.1-3.3,1.1
-			c-0.5,0-1.3,0-2.5-0.1l-0.5-0.1V132h1.3v4.4C482.3,136,483.2,135.7,484.1,135.7z M483.1,143.9c1.2,0,2-0.3,2.3-0.8
-			c0.4-0.5,0.6-1.4,0.6-2.7c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-0.8-0.8-1.6-0.8c-0.7,0-1.4,0.1-2.1,0.4l-0.4,0.1v6.3
-			C482.2,143.9,482.8,143.9,483.1,143.9z"/>
-	</g>
-	<g>
-		<path class="st1" d="M82.4,100.6H64.1V67.4h3.7v29.9h14.6V100.6z"/>
-		<path class="st1" d="M103.4,83.9v12.3c0.1,1.2,1,1.9,2.8,2.1l-0.1,2.8c-2.5,0-4.4-0.6-5.7-1.9c-2.9,1.3-5.8,1.9-8.6,1.9
-			c-2.2,0-3.9-0.6-5-1.9c-1.2-1.2-1.7-3-1.7-5.4s0.6-4.1,1.8-5.2c1.2-1.1,3-1.8,5.6-2l7.5-0.7v-2.1c0-1.6-0.4-2.8-1.1-3.5
-			c-0.7-0.7-1.7-1.1-2.9-1.1c-2.6,0-5.2,0.2-8,0.5l-1.5,0.1l-0.1-2.7c3.5-0.7,6.6-1.1,9.4-1.1c2.7,0,4.7,0.6,5.9,1.9
-			C102.8,79.2,103.4,81.2,103.4,83.9z M88.6,93.6c0,2.9,1.2,4.4,3.6,4.4c2.2,0,4.3-0.4,6.4-1.1l1.1-0.4v-7.9l-7.1,0.7
-			c-1.4,0.1-2.5,0.5-3.1,1.2C88.9,91.3,88.6,92.3,88.6,93.6z"/>
-		<path class="st1" d="M114.1,100.6h-3.6v-24h3.6v1.7c2.6-1.4,5.1-2.2,7.4-2.2c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7
-			H126V88c0-3.3-0.3-5.6-1-6.8c-0.7-1.2-2.1-1.8-4.2-1.8c-1,0-2.1,0.2-3.2,0.5c-1.1,0.3-2,0.6-2.6,0.9l-0.9,0.4V100.6z"/>
-		<path class="st1" d="M154.7,66.1v34.5h-3.6V99c-2.5,1.4-4.9,2.1-7.3,2.1c-1.3,0-2.4-0.2-3.4-0.5s-1.9-0.9-2.7-1.7
-			c-1.7-1.7-2.6-4.9-2.6-9.6c0-4.7,0.8-8,2.3-10.1c1.6-2.1,4.1-3.1,7.7-3.1c1.9,0,3.8,0.2,5.9,0.6V66.1H154.7z M142.2,97.5
-			c0.6,0.2,1.3,0.3,2.2,0.3s1.9-0.2,3.1-0.5c1.1-0.3,2-0.6,2.7-0.9l1-0.4V79.8c-2-0.4-4-0.6-5.7-0.6c-2.4,0-4.1,0.8-5.1,2.3
-			c-1,1.6-1.4,4-1.4,7.2c0,3.7,0.6,6.2,1.7,7.5C141.1,96.9,141.6,97.3,142.2,97.5z"/>
-		<path class="st1" d="M161.7,71.2V67h3.6v4.2H161.7z M161.7,100.6v-24h3.6v24H161.7z"/>
-		<path class="st1" d="M175.8,100.6h-3.6v-24h3.6v1.7c2.6-1.4,5.1-2.2,7.4-2.2c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7
-			h-3.6V88c0-3.3-0.3-5.6-1-6.8c-0.7-1.2-2.1-1.8-4.2-1.8c-1,0-2.1,0.2-3.2,0.5c-1.1,0.3-2,0.6-2.6,0.9l-0.9,0.4V100.6z"/>
-		<path class="st1" d="M207.2,111.9c-3.8,0-6.5-0.5-8-1.6c-1.5-1-2.3-2.9-2.3-5.7c0-1.3,0.3-2.4,0.9-3.2c0.6-0.8,1.6-1.7,2.9-2.8
-			c-0.9-0.6-1.3-1.7-1.3-3.3c0-0.5,0.4-1.6,1.2-3l0.4-0.8c-2.5-1.2-3.8-3.6-3.8-7.2c0-5.5,3-8.2,9-8.2c1.5,0,3,0.2,4.3,0.5l0.7,0.1
-			l7.1-0.2v3.1l-4.6-0.1c1.1,1.1,1.6,2.7,1.6,4.8c0,3-0.7,5.1-2.2,6.3s-3.8,1.8-7,1.8c-0.9,0-1.6-0.1-2.4-0.2
-			c-0.6,1.4-0.9,2.3-0.9,2.7c0,1,0.3,1.6,0.9,1.8c0.6,0.2,2.4,0.4,5.5,0.4c3.1,0,5.3,0.5,6.6,1.4c1.3,1,2,2.8,2,5.6
-			C217.9,109.3,214.3,111.9,207.2,111.9z M200.4,104.4c0,1.7,0.5,2.9,1.4,3.5c0.9,0.7,2.7,1,5.2,1s4.4-0.4,5.5-1.1
-			c1.1-0.7,1.7-1.9,1.7-3.5c0-1.6-0.4-2.7-1.2-3.2c-0.8-0.5-2.4-0.7-4.7-0.7l-5.2-0.2c-1.1,0.8-1.8,1.4-2.1,2
-			C200.6,102.7,200.4,103.5,200.4,104.4z M200.8,84.3c0,1.9,0.4,3.2,1.3,4c0.8,0.8,2.2,1.2,4.2,1.2c2,0,3.3-0.4,4.2-1.2
-			c0.8-0.8,1.2-2.2,1.2-4.1c0-1.9-0.4-3.3-1.2-4.1s-2.2-1.2-4.2-1.2c-2,0-3.4,0.4-4.2,1.2C201.2,81.1,200.8,82.4,200.8,84.3z"/>
-		<path class="st1" d="M237.5,87.9v12.7h-3.7V67.4h12.3c3.5,0,6.2,0.8,7.9,2.4c1.8,1.6,2.7,4.2,2.7,7.6c0,5.1-2,8.3-6.1,9.6
-			l6.4,13.5h-4.1l-6-12.7H237.5z M246.1,84.6c4.5,0,6.8-2.3,6.8-7s-2.3-7-6.8-7h-8.6v14H246.1z"/>
-		<path class="st1" d="M278.6,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3
-			c0-8.4,3.3-12.6,10-12.6c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9
-			c1,1.3,2.6,1.9,5,1.9C273.7,97.9,276.2,97.8,278.6,97.6z M277.3,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8
-			c-2.1,0-3.7,0.6-4.8,1.9c-1.1,1.3-1.6,3.3-1.7,6.1H277.3z"/>
-		<path class="st1" d="M286.6,111.3V76.6h3.6v1.7c2.4-1.5,4.8-2.2,7.2-2.2c3,0,5.2,1,6.6,2.9c1.4,1.9,2.1,5.1,2.1,9.6
-			c0,4.4-0.8,7.6-2.4,9.6c-1.6,1.9-4.3,2.9-8,2.9c-2,0-3.7-0.2-5.4-0.5v10.7H286.6z M296.8,79.3c-1,0-2,0.2-3.1,0.5
-			c-1.1,0.3-2,0.6-2.6,1l-0.9,0.5v16.2c2.3,0.4,4,0.5,5.2,0.5c2.6,0,4.4-0.7,5.4-2.2s1.6-3.9,1.6-7.2s-0.5-5.7-1.4-7.1
-			C300,80,298.6,79.3,296.8,79.3z"/>
-		<path class="st1" d="M310.8,88.6c0-4.4,0.8-7.6,2.4-9.5c1.6-2,4.2-2.9,7.9-2.9s6.4,1,7.9,2.9c1.6,2,2.3,5.1,2.3,9.5
-			c0,4.4-0.7,7.6-2.2,9.6c-1.5,2-4.2,3-8.1,3c-3.9,0-6.6-1-8.1-3C311.5,96.1,310.8,92.9,310.8,88.6z M314.5,88.5
-			c0,3.5,0.4,6,1.3,7.4c0.8,1.4,2.6,2.1,5.3,2.1s4.5-0.7,5.3-2.1c0.8-1.4,1.2-3.8,1.2-7.4s-0.5-5.9-1.4-7.3c-0.9-1.3-2.6-2-5.2-2
-			s-4.2,0.7-5.2,2C315,82.6,314.5,85,314.5,88.5z"/>
-		<path class="st1" d="M344.7,79.3c-3.5,0-5.2,1.2-5.2,3.6c0,1.1,0.4,1.9,1.2,2.4c0.8,0.5,2.6,0.9,5.5,1.4c2.8,0.5,4.9,1.2,6,2.1
-			c1.2,0.9,1.8,2.6,1.8,5c0,2.5-0.8,4.3-2.4,5.4s-3.9,1.7-6.9,1.7c-2,0-4.3-0.2-7-0.7l-1.4-0.2l0.2-3.1c3.6,0.5,6.4,0.8,8.3,0.8
-			s3.3-0.3,4.2-0.9c1-0.6,1.5-1.6,1.5-3c0-1.4-0.4-2.3-1.2-2.8c-0.8-0.5-2.7-1-5.5-1.4c-2.8-0.4-4.8-1.1-6-2
-			c-1.2-0.9-1.8-2.5-1.8-4.8c0-2.3,0.8-4.1,2.5-5.2c1.6-1.1,3.7-1.7,6.2-1.7c2,0,4.4,0.2,7.3,0.7l1.3,0.2l-0.1,3.1
-			C349.6,79.6,346.8,79.3,344.7,79.3z"/>
-		<path class="st1" d="M359.5,71.2V67h3.6v4.2H359.5z M359.5,100.6v-24h3.6v24H359.5z"/>
-		<path class="st1" d="M382.5,79.7h-7.6v11.5c0,2.8,0.2,4.6,0.6,5.4c0.4,0.9,1.4,1.3,2.9,1.3l4.3-0.3l0.2,3
-			c-2.1,0.4-3.8,0.5-4.9,0.5c-2.5,0-4.2-0.6-5.2-1.8c-1-1.2-1.4-3.5-1.4-7V79.7h-3.4v-3.1h3.4v-7.3h3.6v7.3h7.6V79.7z"/>
-		<path class="st1" d="M385.8,88.6c0-4.4,0.8-7.6,2.4-9.5c1.6-2,4.2-2.9,7.9-2.9s6.4,1,7.9,2.9c1.6,2,2.3,5.1,2.3,9.5
-			c0,4.4-0.7,7.6-2.2,9.6c-1.5,2-4.2,3-8.1,3c-3.9,0-6.6-1-8.1-3C386.6,96.1,385.8,92.9,385.8,88.6z M389.5,88.5
-			c0,3.5,0.4,6,1.3,7.4c0.8,1.4,2.6,2.1,5.3,2.1s4.5-0.7,5.3-2.1c0.8-1.4,1.2-3.8,1.2-7.4s-0.5-5.9-1.4-7.3c-0.9-1.3-2.6-2-5.2-2
-			s-4.2,0.7-5.2,2C390,82.6,389.5,85,389.5,88.5z"/>
-		<path class="st1" d="M412.2,100.6v-24h3.6v3.3c2.8-1.9,5.7-3.2,8.8-3.8v3.6c-1.3,0.3-2.7,0.7-4.2,1.2s-2.6,1-3.3,1.4l-1.2,0.6
-			v17.6H412.2z"/>
-		<path class="st1" d="M426.6,76.6h3.6l6,20.9h1.6l6-20.9h3.6l-10,34.7h-3.6l3.1-10.7h-3.6L426.6,76.6z"/>
-	</g>
-</g>
-<g id="Layer_2">
-</g>
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
-	<g>
-		
-			<g id="Scroll_4_" transform="translate(76.483186, 92.413601) rotate(13.000000) translate(-76.483186, -92.413601) translate(6.483186, 59.913601)">
-			<path class="st2" d="M728.9,7.3c-0.3-3.1-0.6-5.8-0.7-8c6.2,2.3,18.8,4.4,21.1,4.5c13.2,0.5,18.4-12,18.9-26.9
-				c0.5-14.9-6.6-27.8-19.8-28.3c-10.2-0.4-74.8-6.9-101.9-7.8c-8.2-0.3-15.7,18-16.2,33.3c-0.1,3.1,4.2,9.9,11.9,18.2L728.9,7.3z"
-				/>
-			<path class="st3" d="M656.8-13.3c13.6,3.7,34.6,7.5,62.9,11.5c0.2-9.2,1-18.6,2.6-25.3c2-8.3,6.6-14.6,13.9-18.9l-86.7-6
-				c-4.6,3.2-8.2,7.9-10,19.4C638.7-28.5,648.2-15.6,656.8-13.3z"/>
-			<path class="st4" d="M716.6-27.4c7.8-9.5,14.1-15.7,19-18.7l-86.7-6.1c-4.2,3.1-7.2,9.7-9.1,19.9
-				C685.8-22.7,711.4-21.1,716.6-27.4z"/>
-			<g id="Group-3_4_" transform="translate(12.744498, 19.020401)">
-				<path class="st4" d="M724.2-56.3c-1.8,1.6-8.7,5.6-9.1,16c-0.2,5.2,0.8,12.3,1.7,17c12.2,2.8,21.5,5.2,22.6,3.5
-					c-4-1.2-7-3.6-8.8-7.4c-1.5-3-3.5-9.2-2.8-15.8c0.8-8.5,5.9-10.7,7-11.7L724.2-56.3z"/>
-				<path class="st3" d="M716.7-23.4c12.2,2.7,21.5,5.1,22.6,3.5c-4-1.2-7-3.6-8.8-7.3c-0.8-1.6-2.5-5.8-6.9-8.9
-					c-2.9-2-5.8-2.7-8.6-1.9C715.1-33.2,715.9-27.4,716.7-23.4z"/>
-				<path class="st3" d="M737.6-50.4c-2.3,2.3-3.5,5.5-3.6,9.4c0,0.9,0,1.9,0,2.7l9.2,1.6c0.1-0.4,0.3-2.7,0.2-4.5
-					c-0.1-1.5-0.8-4.7-2.4-6.8C739.6-49.7,737.8-50.4,737.6-50.4z"/>
-			</g>
-			<path id="Combined-Shape-Copy_5_" class="st2" d="M641.9-54.3l-1.8,11.3c2.4,0.7,4.2,1.1,5.4,1.1c2.4,0,4.8,0.9,3.6-0.1
-				c-0.6-0.5-3.3-2.2-5-3.1c-0.5-0.3-0.9-0.5-1.3-0.7c2.9,0.5,6,0.8,9.6,1c9.4,0.5,8.9,0,0.9-2.3c-1.6-0.5-3.7-0.9-6.2-1.4
-				c1-0.2,1.9-0.4,3-0.7c2.1-0.6,5.5-1.9,6.1-2.3c1.3-0.8-2.2-0.7-6-1.8C648.3-54,645.6-54.3,641.9-54.3z"/>
-		</g>
-		
-			<g id="Scroll_1_" transform="translate(76.483186, 92.413601) rotate(13.000000) translate(-76.483186, -92.413601) translate(6.483186, 59.913601)">
-			<path class="st2" d="M709.1,29c-0.3-3.1-0.6-5.8-0.7-8c6.2,2.3,18.8,4.4,21.1,4.5c13.2,0.5,18.4-12,18.9-26.9
-				c0.5-14.9-6.6-27.8-19.8-28.3c-10.2-0.4-74.8-6.9-101.9-7.8c-8.2-0.3-15.7,18-16.2,33.3c-0.1,3.1,4.2,9.9,11.9,18.2L709.1,29z"/>
-			<path class="st3" d="M637,8.4c13.6,3.7,34.6,7.5,62.9,11.5c0.2-9.2,1-18.6,2.6-25.3c2-8.3,6.6-14.6,13.9-18.9l-86.7-6
-				c-4.6,3.2-8.2,7.9-10,19.4C618.9-6.8,628.4,6.1,637,8.4z"/>
-			<path class="st4" d="M696.8-5.7c7.8-9.5,14.1-15.7,19-18.7l-86.7-6.1c-4.2,3.1-7.2,9.7-9.1,19.9C666-1,691.6,0.6,696.8-5.7z"/>
-			<g id="Group-3_1_" transform="translate(12.744498, 19.020401)">
-				<path class="st4" d="M704.4-34.6c-1.8,1.6-8.7,5.6-9.1,16c-0.2,5.2,0.8,12.3,1.7,17c12.2,2.8,21.5,5.2,22.6,3.5
-					c-4-1.2-7-3.6-8.8-7.4c-1.5-3-3.5-9.2-2.8-15.8c0.8-8.5,5.9-10.7,7-11.7L704.4-34.6z"/>
-				<path class="st3" d="M696.9-1.7c12.2,2.7,21.5,5.1,22.6,3.5c-4-1.2-7-3.6-8.8-7.3c-0.8-1.6-2.5-5.8-6.9-8.9
-					c-2.9-2-5.8-2.7-8.6-1.9C695.3-11.5,696.1-5.7,696.9-1.7z"/>
-				<path class="st3" d="M717.8-28.7c-2.3,2.3-3.5,5.5-3.6,9.4c0,0.9,0,1.9,0,2.7l9.2,1.6c0.1-0.4,0.3-2.7,0.2-4.5
-					c-0.1-1.5-0.8-4.7-2.4-6.8C719.8-28,718-28.7,717.8-28.7z"/>
-			</g>
-			<path id="Combined-Shape-Copy_1_" class="st2" d="M622.1-32.7l-1.8,11.3c2.4,0.7,4.2,1.1,5.4,1.1c2.4,0,4.8,0.9,3.6-0.1
-				c-0.6-0.5-3.3-2.2-5-3.1c-0.5-0.3-0.9-0.5-1.3-0.7c2.9,0.5,6,0.8,9.6,1c9.4,0.5,8.9,0,0.9-2.3c-1.6-0.5-3.7-0.9-6.2-1.4
-				c1-0.2,1.9-0.4,3-0.7c2.1-0.6,5.5-1.9,6.1-2.3c1.3-0.8-2.2-0.7-6-1.8C628.5-32.3,625.8-32.6,622.1-32.7z"/>
-		</g>
-		
-			<g id="Scroll" transform="translate(76.483186, 92.413601) rotate(13.000000) translate(-76.483186, -92.413601) translate(6.483186, 59.913601)">
-			<path class="st2" d="M647.2,61.2c-0.3-3.1-0.6-5.8-0.7-8c6.2,2.3,18.8,4.4,21.1,4.5c13.2,0.5,18.4-12,18.9-26.9
-				c0.5-14.9-6.6-27.8-19.8-28.3c-10.2-0.4-74.8-6.9-101.9-7.8c-8.2-0.3-15.7,18-16.2,33.3c-0.1,3.1,4.2,9.9,11.9,18.2L647.2,61.2z"
-				/>
-			<path class="st3" d="M575.1,40.7c13.6,3.7,34.6,7.5,62.9,11.5c0.2-9.2,1-18.6,2.6-25.3c2-8.3,6.6-14.6,13.9-18.9l-86.7-6
-				c-4.6,3.2-8.2,7.9-10,19.4C557,25.5,566.5,38.4,575.1,40.7z"/>
-			<path class="st4" d="M634.9,26.6c7.8-9.5,14.1-15.7,19-18.7l-86.7-6.1c-4.2,3.1-7.2,9.7-9.1,19.9
-				C604.1,31.3,629.7,32.9,634.9,26.6z"/>
-			<g id="Group-3" transform="translate(12.744498, 19.020401)">
-				<path class="st4" d="M642.5-2.4c-1.8,1.6-8.7,5.6-9.1,16c-0.2,5.2,0.8,12.3,1.7,17c12.2,2.8,21.5,5.2,22.6,3.5
-					c-4-1.2-7-3.6-8.8-7.4c-1.5-3-3.5-9.2-2.8-15.8c0.8-8.5,5.9-10.7,7-11.7L642.5-2.4z"/>
-				<path class="st3" d="M635,30.6c12.2,2.7,21.5,5.1,22.6,3.5c-4-1.2-7-3.6-8.8-7.3c-0.8-1.6-2.5-5.8-6.9-8.9
-					c-2.9-2-5.8-2.7-8.6-1.9C633.4,20.8,634.2,26.6,635,30.6z"/>
-				<path class="st3" d="M655.9,3.5c-2.3,2.3-3.5,5.5-3.6,9.4c0,0.9,0,1.9,0,2.7l9.2,1.6c0.1-0.4,0.3-2.7,0.2-4.5
-					c-0.1-1.5-0.8-4.7-2.4-6.8C657.9,4.3,656.1,3.5,655.9,3.5z"/>
-			</g>
-			<path id="Combined-Shape-Copy" class="st2" d="M560.3-0.4l-1.8,11.3c2.4,0.7,4.2,1.1,5.4,1.1c2.4,0,4.8,0.9,3.6-0.1
-				c-0.6-0.5-3.3-2.2-5-3.1c-0.5-0.3-0.9-0.5-1.3-0.7c2.9,0.5,6,0.8,9.6,1c9.4,0.5,8.9,0,0.9-2.3c-1.6-0.5-3.7-0.9-6.2-1.4
-				c1-0.2,1.9-0.4,3-0.7c2.1-0.6,5.5-1.9,6.1-2.3c1.3-0.8-2.2-0.7-6-1.8C566.6,0,563.9-0.3,560.3-0.4z"/>
-		</g>
-		
-			<g id="Scroll_2_" transform="translate(76.483186, 92.413601) rotate(13.000000) translate(-76.483186, -92.413601) translate(6.483186, 59.913601)">
-			<path class="st2" d="M656.3,15.5c-0.3-3.1-0.6-5.8-0.7-8c6.2,2.3,18.8,4.4,21.1,4.5c13.2,0.5,18.4-12,18.9-26.9
-				s-6.6-27.8-19.8-28.3C665.7-43.5,601-50,574-51c-8.2-0.3-15.7,18-16.2,33.3c-0.1,3.1,4.2,9.9,11.9,18.2L656.3,15.5z"/>
-			<path class="st3" d="M584.2-5.1c13.6,3.7,34.6,7.5,62.9,11.5c0.2-9.2,1-18.6,2.6-25.3c2-8.3,6.6-14.6,13.9-18.9l-86.7-6
-				c-4.6,3.2-8.2,7.9-10,19.4C566.2-20.3,575.6-7.4,584.2-5.1z"/>
-			<path class="st4" d="M644-19.2c7.8-9.5,14.1-15.7,19-18.7L576.4-44c-4.2,3.1-7.2,9.7-9.1,19.9C613.2-14.5,638.8-12.9,644-19.2z"
-				/>
-			<g id="Group-3_2_" transform="translate(12.744498, 19.020401)">
-				<path class="st4" d="M651.6-48.1c-1.8,1.6-8.7,5.6-9.1,16c-0.2,5.2,0.8,12.3,1.7,17c12.2,2.8,21.5,5.2,22.6,3.5
-					c-4-1.2-7-3.6-8.8-7.4c-1.5-3-3.5-9.2-2.8-15.8c0.8-8.5,5.9-10.7,7-11.7L651.6-48.1z"/>
-				<path class="st3" d="M644.1-15.2c12.2,2.7,21.5,5.1,22.6,3.5c-4-1.2-7-3.6-8.8-7.3c-0.8-1.6-2.5-5.8-6.9-8.9
-					c-2.9-2-5.8-2.7-8.6-1.9C642.5-25,643.3-19.2,644.1-15.2z"/>
-				<path class="st3" d="M665.1-42.2c-2.3,2.3-3.5,5.5-3.6,9.4c0,0.9,0,1.9,0,2.7l9.2,1.6c0.1-0.4,0.3-2.7,0.2-4.5
-					c-0.1-1.5-0.8-4.7-2.4-6.8C667-41.5,665.3-42.2,665.1-42.2z"/>
-			</g>
-			<path id="Combined-Shape-Copy_3_" class="st2" d="M569.4-46.2l-1.8,11.3c2.4,0.7,4.2,1.1,5.4,1.1c2.4,0,4.8,0.9,3.6-0.1
-				c-0.6-0.5-3.3-2.2-5-3.1c-0.5-0.3-0.9-0.5-1.3-0.7c2.9,0.5,6,0.8,9.6,1c9.4,0.5,8.9,0,0.9-2.3c-1.6-0.5-3.7-0.9-6.2-1.4
-				c1-0.2,1.9-0.4,3-0.7c2.1-0.6,5.5-1.9,6.1-2.3c1.3-0.8-2.2-0.7-6-1.8C575.8-45.8,573-46.1,569.4-46.2z"/>
-		</g>
-		
-			<g id="Scroll_3_" transform="translate(76.483186, 92.413601) rotate(13.000000) translate(-76.483186, -92.413601) translate(6.483186, 59.913601)">
-			<path class="st2" d="M682.6-26.5c-0.3-3.1-0.6-5.8-0.7-8c6.2,2.3,18.8,4.4,21.1,4.5c13.2,0.5,18.4-12,18.9-26.9
-				s-6.6-27.8-19.8-28.3c-10.2-0.4-74.8-6.9-101.9-7.8c-8.2-0.3-15.7,18-16.2,33.3c-0.1,3.1,4.2,9.9,11.9,18.2L682.6-26.5z"/>
-			<path class="st3" d="M610.5-47.1c13.6,3.7,34.6,7.5,62.9,11.5c0.2-9.2,1-18.6,2.6-25.3c2-8.3,6.6-14.6,13.9-18.9l-86.7-6
-				c-4.6,3.2-8.2,7.9-10,19.4C592.4-62.3,601.9-49.4,610.5-47.1z"/>
-			<path class="st4" d="M670.2-61.2c7.8-9.5,14.1-15.7,19-18.7L602.6-86c-4.2,3.1-7.2,9.7-9.1,19.9C639.5-56.5,665-54.9,670.2-61.2z
-				"/>
-			<g id="Group-3_3_" transform="translate(12.744498, 19.020401)">
-				<path class="st4" d="M677.9-90.1c-1.8,1.6-8.7,5.6-9.1,16c-0.2,5.2,0.8,12.3,1.7,17c12.2,2.8,21.5,5.2,22.6,3.5
-					c-4-1.2-7-3.6-8.8-7.4c-1.5-3-3.5-9.2-2.8-15.8c0.8-8.5,5.9-10.7,7-11.7L677.9-90.1z"/>
-				<path class="st3" d="M670.4-57.2c12.2,2.7,21.5,5.1,22.6,3.5c-4-1.2-7-3.6-8.8-7.3c-0.8-1.6-2.5-5.8-6.9-8.9
-					c-2.9-2-5.8-2.7-8.6-1.9C668.8-67,669.6-61.2,670.4-57.2z"/>
-				<path class="st3" d="M691.3-84.2c-2.3,2.3-3.5,5.5-3.6,9.4c0,0.9,0,1.9,0,2.7l9.2,1.6c0.1-0.4,0.3-2.7,0.2-4.5
-					c-0.1-1.5-0.8-4.7-2.4-6.8C693.3-83.5,691.5-84.2,691.3-84.2z"/>
-			</g>
-			<path id="Combined-Shape-Copy_4_" class="st2" d="M595.6-88.2l-1.8,11.3c2.4,0.7,4.2,1.1,5.4,1.1c2.4,0,4.8,0.9,3.6-0.1
-				c-0.6-0.5-3.3-2.2-5-3.1c-0.5-0.3-0.9-0.5-1.3-0.7c2.9,0.5,6,0.8,9.6,1c9.4,0.5,8.9,0,0.9-2.3c-1.6-0.5-3.7-0.9-6.2-1.4
-				c1-0.2,1.9-0.4,3-0.7c2.1-0.6,5.5-1.9,6.1-2.3c1.3-0.8-2.2-0.7-6-1.8C602-87.8,599.2-88.1,595.6-88.2z"/>
-		</g>
-	</g>
-</g>
-</svg>

File diff suppressed because it is too large
+ 0 - 10
img/landing-cover_new.svg


File diff suppressed because it is too large
+ 0 - 0
img/meetings.svg


File diff suppressed because it is too large
+ 0 - 10
img/meetings_new.svg


+ 0 - 321
img/okr-section.svg

@@ -1,321 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 882 300" style="enable-background:new 0 0 882 300;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#C4C3C6;}
-	.st1{fill:#FFFFFF;}
-	.st2{fill-rule:evenodd;clip-rule:evenodd;}
-	.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#C4C3C6;}
-	.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
-	.st5{fill:#010101;}
-	.st6{fill:none;}
-	.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#B1B2B7;}
-	.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;}
-	.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;}
-</style>
-<g id="Layer_4">
-	<path class="st0" d="M876,209H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h870c3.3,0,6,2.7,6,6v197C882,206.3,879.3,209,876,209z"/>
-	<g>
-		<path d="M68.4,144.9h-6.9v-12.5h1.4v11.2h5.5V144.9z"/>
-		<path d="M75.9,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S75,143.9,75.9,143.8z M75.5,139.9
-			c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H75.5z"/>
-		<path d="M85.3,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7c-0.8,0-1.5-0.2-1.9-0.7
-			c-0.4-0.5-0.6-1.1-0.6-2c0-0.9,0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7
-			C85,136.9,85.3,137.6,85.3,138.6z M79.7,142.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C79.8,141.4,79.7,141.8,79.7,142.3z"/>
-		<path d="M87.9,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2v6.6H87.9z"/>
-		<path d="M95.5,144.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8H100v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V144.9z"/>
-		<path d="M109.1,144.9h-1.4V132h1.4v4.4c1-0.5,1.9-0.7,2.8-0.7c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.4v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6c-0.2-0.5-0.8-0.7-1.6-0.7c-0.8,0-1.5,0.1-2.2,0.4l-0.3,0.1V144.9z"/>
-		<path d="M117.1,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1s0.9,1.9,0.9,3.6s-0.3,2.8-0.8,3.6
-			c-0.6,0.7-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C117.3,143.2,117.1,142,117.1,140.4z M118.4,140.4c0,1.3,0.2,2.2,0.5,2.8
-			c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8s0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7c-0.9,0-1.6,0.2-1.9,0.7
-			C118.6,138.2,118.4,139.1,118.4,140.4z"/>
-		<path d="M126.1,135.9h1.4l1.8,7.8h0.3l2.1-7.6h1.4l2.1,7.6h0.3l1.8-7.8h1.4l-2.1,9h-2.2l-1.9-7l-1.9,7h-2.2L126.1,135.9z"/>
-		<path d="M143.8,135.9h1.4l1.8,7.8h0.3l2.1-7.6h1.4l2.1,7.6h0.3l1.8-7.8h1.4l-2.1,9H152l-1.9-7l-1.9,7h-2.2L143.8,135.9z"/>
-		<path d="M164.3,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S163.4,143.9,164.3,143.8z
-			 M163.8,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H163.8z"/>
-		<path d="M176.8,135.9h1.4v9h-1.4v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-1.2,0-2-0.3-2.4-1c-0.4-0.6-0.6-1.8-0.6-3.5v-4.7h1.4v4.7
-			c0,1.3,0.1,2.2,0.3,2.6s0.7,0.7,1.5,0.7c0.4,0,0.8-0.1,1.2-0.2c0.4-0.1,0.7-0.2,0.9-0.3l0.3-0.2V135.9z"/>
-		<path d="M183.6,136.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			c0,0.9-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1s-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2
-			C185.4,137,184.4,136.9,183.6,136.9z"/>
-		<path d="M195.3,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S194.3,143.9,195.3,143.8z
-			 M194.8,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H194.8z"/>
-		<path d="M211.8,138.8c0,2.2-0.4,3.8-1.1,4.8s-2,1.5-3.9,1.5c-1.9,0-3.2-0.5-3.9-1.5c-0.7-1-1.1-2.6-1.1-4.8s0.4-3.8,1.1-4.9
-			c0.7-1.1,2-1.6,3.8-1.6s3.1,0.5,3.8,1.6C211.4,134.9,211.8,136.6,211.8,138.8z M203.4,138.8c0,1.8,0.2,3.1,0.7,3.9
-			c0.5,0.8,1.4,1.2,2.8,1.2c1.4,0,2.3-0.4,2.8-1.2c0.5-0.8,0.7-2.1,0.7-3.9c0-1.8-0.2-3.2-0.7-4s-1.4-1.3-2.8-1.3
-			c-1.4,0-2.3,0.4-2.8,1.3C203.6,135.6,203.4,136.9,203.4,138.8z"/>
-		<path d="M218.1,135.7c1.2,0,2.1,0.3,2.5,1c0.5,0.7,0.7,1.9,0.7,3.6s-0.3,2.9-0.9,3.6c-0.6,0.7-1.7,1.1-3.3,1.1
-			c-0.5,0-1.3,0-2.5-0.1l-0.5-0.1V132h1.3v4.4C216.3,136,217.2,135.7,218.1,135.7z M217.1,143.9c1.2,0,2-0.3,2.3-0.8
-			c0.4-0.5,0.6-1.4,0.6-2.7c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-0.8-0.8-1.6-0.8c-0.7,0-1.4,0.1-2.1,0.4l-0.4,0.1v6.3
-			C216.2,143.9,216.7,143.9,217.1,143.9z"/>
-		<path d="M223.6,144.7v-8.8h1.3v8.8c0,1.1-0.2,1.9-0.6,2.5c-0.4,0.6-1.2,1.1-2.4,1.7l-0.5-1c0.9-0.5,1.5-1,1.8-1.4
-			C223.4,146.1,223.6,145.5,223.6,144.7z M223.6,133.9v-1.6h1.3v1.6H223.6z"/>
-		<path d="M233.6,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S232.7,143.9,233.6,143.8z
-			 M233.1,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H233.1z"/>
-		<path d="M239.9,135.7c0.4,0,1.1,0.1,2,0.2l0.4,0.1l-0.1,1.1c-1-0.1-1.7-0.2-2.1-0.2c-1,0-1.7,0.2-2.1,0.7
-			c-0.4,0.5-0.5,1.4-0.5,2.7s0.2,2.2,0.5,2.7c0.3,0.5,1.1,0.8,2.1,0.8l2.1-0.2l0.1,1.1c-1.1,0.2-2,0.3-2.5,0.3
-			c-1.4,0-2.4-0.4-2.9-1.1c-0.5-0.7-0.8-1.9-0.8-3.6s0.3-2.9,0.9-3.6C237.6,136.1,238.6,135.7,239.9,135.7z"/>
-		<path d="M249.1,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path d="M250.7,133.9v-1.6h1.4v1.6H250.7z M250.7,144.9v-9h1.4v9H250.7z"/>
-		<path d="M253.8,135.9h1.4l2.1,7.8h0.7l2.2-7.8h1.4l-2.5,9h-2.7L253.8,135.9z"/>
-		<path d="M269.3,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S268.4,143.9,269.3,143.8z
-			 M268.8,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H268.8z"/>
-		<path d="M275.1,136.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			c0,0.9-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1s-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2
-			C276.9,137,275.9,136.9,275.1,136.9z"/>
-		<path d="M291,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7c-0.8,0-1.5-0.2-1.9-0.7
-			c-0.4-0.5-0.6-1.1-0.6-2c0-0.9,0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7
-			C290.7,136.9,291,137.6,291,138.6z M285.4,142.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C285.5,141.4,285.4,141.8,285.4,142.3z"/>
-		<path d="M295,144.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.3v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V144.9z"/>
-		<path d="M310.2,132v12.9h-1.3v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-0.5,0-0.9-0.1-1.3-0.2c-0.4-0.1-0.7-0.3-1-0.6c-0.6-0.6-1-1.8-1-3.6
-			c0-1.7,0.3-3,0.9-3.8s1.5-1.2,2.9-1.2c0.7,0,1.4,0.1,2.2,0.2v-4H310.2z M305.5,143.8c0.2,0.1,0.5,0.1,0.8,0.1
-			c0.3,0,0.7-0.1,1.2-0.2c0.4-0.1,0.8-0.2,1-0.3l0.4-0.2v-6.1c-0.8-0.1-1.5-0.2-2.1-0.2c-0.9,0-1.5,0.3-1.9,0.9
-			c-0.4,0.6-0.5,1.5-0.5,2.7c0,1.4,0.2,2.3,0.6,2.8C305.1,143.5,305.3,143.7,305.5,143.8z"/>
-		<path d="M318.4,144.9H317v-12.5h1.4v5.8l2.1-0.1l3.2-5.7h1.6l-3.6,6.3l3.8,6.2h-1.6l-3.3-5.5l-2.1,0.1V144.9z"/>
-		<path d="M332.9,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S331.9,143.9,332.9,143.8z
-			 M332.4,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H332.4z"/>
-		<path d="M334.8,135.9h1.3l2.2,7.8h0.6l2.3-7.8h1.4l-3.7,13h-1.4l1.2-4h-1.3L334.8,135.9z"/>
-		<path d="M349.9,140.2v4.8h-1.4v-12.5h4.6c1.3,0,2.3,0.3,3,0.9c0.7,0.6,1,1.6,1,2.9c0,1.9-0.8,3.1-2.3,3.6l2.4,5.1h-1.5l-2.2-4.8
-			H349.9z M353.2,138.9c1.7,0,2.5-0.9,2.5-2.6c0-1.7-0.9-2.6-2.6-2.6h-3.2v5.2H353.2z"/>
-		<path d="M365.4,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S364.4,143.9,365.4,143.8z
-			 M364.9,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H364.9z"/>
-		<path d="M371.2,136.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			c0,0.9-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1s-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2C373,137,371.9,136.9,371.2,136.9
-			z"/>
-		<path d="M382.3,135.9h1.4v9h-1.4v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-1.2,0-2-0.3-2.4-1c-0.4-0.6-0.6-1.8-0.6-3.5v-4.7h1.4v4.7
-			c0,1.3,0.1,2.2,0.3,2.6s0.7,0.7,1.5,0.7c0.4,0,0.8-0.1,1.2-0.2c0.4-0.1,0.7-0.2,0.9-0.3l0.3-0.2V135.9z"/>
-		<path d="M386.4,144.9V132h1.4v12.9H386.4z"/>
-		<path d="M395.1,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path d="M399.6,136.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			c0,0.9-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1s-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2
-			C401.4,137,400.3,136.9,399.6,136.9z"/>
-	</g>
-	<g>
-		<path d="M89,84.2c0,5.9-0.9,10.2-2.8,12.9c-1.9,2.7-5.3,4-10.3,4s-8.4-1.4-10.3-4.1s-2.8-7-2.8-12.8c0-5.8,1-10.2,2.9-13
-			c1.9-2.8,5.3-4.2,10.2-4.2c4.9,0,8.3,1.4,10.2,4.2C88,74,89,78.3,89,84.2z M66.5,84.1c0,4.9,0.6,8.4,1.9,10.5
-			c1.3,2.1,3.8,3.2,7.4,3.2s6.1-1,7.4-3.1c1.3-2.1,1.9-5.6,1.9-10.5c0-4.9-0.7-8.5-2-10.7c-1.3-2.2-3.8-3.4-7.4-3.4
-			c-3.6,0-6,1.1-7.3,3.3C67.2,75.7,66.5,79.3,66.5,84.1z"/>
-		<path d="M99.5,100.6h-3.7V67.4h3.7v15.5l5.5-0.2l8.5-15.3h4.2l-9.5,16.7l10,16.5h-4.4L105,85.9l-5.5,0.2V100.6z"/>
-		<path d="M126.8,87.9v12.7h-3.7V67.4h12.3c3.5,0,6.2,0.8,7.9,2.4c1.8,1.6,2.7,4.2,2.7,7.6c0,5.1-2,8.3-6.1,9.6l6.4,13.5h-4.1
-			l-6-12.7H126.8z M135.4,84.6c4.5,0,6.8-2.3,6.8-7s-2.3-7-6.8-7h-8.6v14H135.4z"/>
-		<path d="M170.1,79.3c-3.5,0-5.2,1.2-5.2,3.6c0,1.1,0.4,1.9,1.2,2.4c0.8,0.5,2.6,0.9,5.5,1.4c2.8,0.5,4.9,1.2,6,2.1
-			c1.2,0.9,1.8,2.6,1.8,5c0,2.5-0.8,4.3-2.4,5.4s-3.9,1.7-6.9,1.7c-2,0-4.3-0.2-7-0.7l-1.4-0.2l0.2-3.1c3.6,0.5,6.4,0.8,8.3,0.8
-			s3.3-0.3,4.2-0.9c1-0.6,1.5-1.6,1.5-3c0-1.4-0.4-2.3-1.2-2.8c-0.8-0.5-2.7-1-5.5-1.4c-2.8-0.4-4.8-1.1-6-2
-			c-1.2-0.9-1.8-2.5-1.8-4.8c0-2.3,0.8-4.1,2.5-5.2c1.6-1.1,3.7-1.7,6.2-1.7c2,0,4.4,0.2,7.3,0.7l1.3,0.2l-0.1,3.1
-			C175,79.6,172.2,79.3,170.1,79.3z"/>
-		<path d="M182.3,76.6h3.6l6,20.9h1.6l6-20.9h3.6l-10,34.7h-3.6l3.1-10.7h-3.6L182.3,76.6z"/>
-		<path d="M214.9,79.3c-3.5,0-5.2,1.2-5.2,3.6c0,1.1,0.4,1.9,1.2,2.4c0.8,0.5,2.6,0.9,5.5,1.4c2.8,0.5,4.9,1.2,6,2.1
-			c1.2,0.9,1.8,2.6,1.8,5c0,2.5-0.8,4.3-2.4,5.4s-3.9,1.7-6.9,1.7c-2,0-4.3-0.2-7-0.7l-1.4-0.2l0.2-3.1c3.6,0.5,6.4,0.8,8.3,0.8
-			c1.9,0,3.3-0.3,4.2-0.9c1-0.6,1.5-1.6,1.5-3c0-1.4-0.4-2.3-1.2-2.8s-2.7-1-5.5-1.4c-2.8-0.4-4.8-1.1-6-2c-1.2-0.9-1.8-2.5-1.8-4.8
-			c0-2.3,0.8-4.1,2.5-5.2s3.7-1.7,6.2-1.7c2,0,4.4,0.2,7.3,0.7l1.3,0.2l-0.1,3.1C219.7,79.6,216.9,79.3,214.9,79.3z"/>
-		<path d="M242.1,79.7h-7.6v11.5c0,2.8,0.2,4.6,0.6,5.4c0.4,0.9,1.4,1.3,2.9,1.3l4.3-0.3l0.2,3c-2.1,0.4-3.8,0.5-4.9,0.5
-			c-2.5,0-4.2-0.6-5.2-1.8c-1-1.2-1.4-3.5-1.4-7V79.7h-3.4v-3.1h3.4v-7.3h3.6v7.3h7.6V79.7z"/>
-		<path d="M262.8,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3c0-8.4,3.3-12.6,10-12.6
-			c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9c1,1.3,2.6,1.9,5,1.9
-			C258,97.9,260.4,97.8,262.8,97.6z M261.5,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8c-2.1,0-3.7,0.6-4.8,1.9
-			c-1.1,1.3-1.6,3.3-1.7,6.1H261.5z"/>
-		<path d="M274.4,100.6h-3.6v-24h3.6v1.7c2.4-1.4,4.7-2.2,7-2.2c3,0,5.1,0.8,6.2,2.4c1.1-0.6,2.4-1.2,4.1-1.7
-			c1.7-0.5,3.2-0.7,4.4-0.7c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7h-3.6V88c0-3.3-0.3-5.6-1-6.8
-			c-0.6-1.2-2-1.8-4.1-1.8c-1.1,0-2.1,0.2-3.3,0.5s-2,0.6-2.6,0.9l-0.9,0.4c0.4,1.1,0.6,3.4,0.6,7v12.5h-3.6V88.2
-			c0-3.5-0.3-5.8-0.9-7c-0.6-1.2-2-1.8-4.1-1.8c-1,0-2.1,0.2-3.1,0.5c-1.1,0.3-1.9,0.6-2.5,0.9l-0.8,0.4V100.6z"/>
-	</g>
-</g>
-<g id="Layer_2">
-</g>
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
-	<g>
-		<g id="Group-9_1_" transform="translate(115.000000, 1547.000000)">
-			<g id="Group-7_1_" transform="translate(343.000000, 192.000000)">
-				<path id="Oval_1_" class="st2" d="M223.4-1601.3c1.6,0,10.5-1.2,14.8-2.6c-1.5,15.2-12.5,70.7-7.8,83.3
-					c3,8.4,9.5,11.5,16.3,10.8c10.1-1.1,27.2-1.7,41.8-3.5c7.1-0.9,14.2-0.9,18.6-3.5c7.3-4.4,4.6-16.8,0-25.1c-1.7-3-2.9-2.3-7-2.3
-					c0-8.2,2.7-20.3,4.1-32.3c1.9-16.3,2.9-36.4,2.9-42.6c0-10.7-4.7-23.7-10.5-23.7c-18.9,0-64.1,2.9-71.2,2.9
-					c-9.2,0-14.5,8.9-14.5,19.3S214.1-1601.3,223.4-1601.3z"/>
-				<path class="st3" d="M234.1-1635.9l60.7-2c4.6,3.5,6.9,13.5,6.9,29.8c0,16.3-2.3,37.5-6.9,63.6c-31.4,1.6-48.5,2.6-51.5,3.1
-					s-5.5,2.6-7.8,6.4c2.8-21.5,5.4-39.6,7.8-54.3c1.4-8.5,1.8-24.1,0-32.9C242.2-1628.2,239.1-1632.7,234.1-1635.9z"/>
-				<path id="Path_1_" class="st4" d="M247-1622.5c-5.2-6.7-9.5-11.2-12.8-13.3l60.7-2.1c2.8,2.2,4.8,6.8,5.9,13.9
-					C268.3-1618.5,250.4-1618.1,247-1622.5z"/>
-				<g id="Group-3_6_" transform="translate(14.000000, 24.000000)">
-					<path class="st4" d="M218.2-1653.8c1.2,1.1,5.9,4.1,5.9,11.4c0,3.6-0.9,8.5-1.6,11.8c-8.6,1.6-15.1,3.1-15.8,1.9
-						c2.8-0.7,4.9-2.4,6.3-4.9c1.1-2,2.6-6.3,2.4-10.9c-0.3-5.9-3.8-7.6-4.5-8.3L218.2-1653.8z"/>
-					<path class="st3" d="M222.6-1630.6c-8.6,1.6-15.1,3-15.8,1.9c2.8-0.7,4.9-2.3,6.3-4.9c0.6-1.1,1.9-4,5-6c2.1-1.4,4.1-1.7,6-1.1
-						C224-1637.4,223.3-1633.4,222.6-1630.6z"/>
-					<path class="st3" d="M208.7-1650c1.5,1.7,2.3,3.9,2.3,6.7c0,0.7,0,1.3-0.1,1.9l-6.4,0.9c-0.1-0.3-0.2-1.9,0-3.1
-						c0.1-1.1,0.6-3.3,1.8-4.7C207.4-1649.5,208.6-1650,208.7-1650z"/>
-					
-						<g id="Group-4_1_" transform="translate(99.916861, 186.391426) rotate(-356.000000) translate(-99.916861, -186.391426) translate(37.916861, 160.891426)">
-						<path id="Path-Copy-6_1_" class="st4" d="M126-1734.3c1-0.1,2.8,2,4.3,5.6c2.3,5.7-0.6,8.7-4,10.6c-8.6,1.6-35.9,6.2-36.6,5
-							c-10.9,3.7-15.6,4.3-14.2,1.7c1.1-2,0.7-3.1,0.4-7.8c-0.3-5.9-3.8-7.6-4.5-8.3L126-1734.3z"/>
-						<path id="Path-Copy-5_1_" class="st3" d="M132.3-1718c-1.3,5.8-31.5,7.1-39.5,8.5s-20.7,3.9-19.3,1.4c0.6-1.1,1.9-4,5-6
-							c2-1.3,20.2-8.3,34.6-10.7c9.6-1.6,14.8-3.9,15.5-6.8C133.6-1726.3,132.1-1719.7,132.3-1718z"/>
-						<path id="Path-Copy-2_1_" class="st3" d="M68.7-1723.4c1.2,1.5,1.8,3.5,1.8,6c0,0.6,0,1.2-0.1,1.7l-5,0.8
-							c-0.1-0.3-0.1-1.7,0-2.8c0.1-1,0.5-2.9,1.4-4.2C67.6-1723,68.6-1723.4,68.7-1723.4z"/>
-					</g>
-				</g>
-				<path id="Combined-Shape_1_" class="st2" d="M234.9-1554.6l0.6,7c1.6,0.1,2.8,0,3.5-0.2c1.4-0.3,3.1-0.2,2.2-0.6
-					c-0.4-0.2-2.3-0.8-3.5-1.1c-0.3-0.1-0.6-0.2-0.9-0.2c1.8-0.2,3.7-0.4,6-0.9c5.8-1.1,5.4-1.3,0.2-1.5c-1,0-2.4,0-4,0.1
-					c0.6-0.2,1.1-0.5,1.7-0.9c1.2-0.7,3-1.9,3.4-2.3c0.7-0.7-1.4-0.1-3.9-0.2C238.9-1555.4,237.1-1555.1,234.9-1554.6z"/>
-				<path id="Combined-Shape-Copy_6_" class="st2" d="M299.6-1639.1l1,7.9c-1.7,0.4-3,0.6-3.8,0.6c-1.6,0-3.4,0.5-2.5-0.1
-					c0.4-0.3,2.4-1.4,3.6-2c0.3-0.2,0.7-0.3,1-0.5c-2,0.2-4.2,0.4-6.7,0.4c-6.6,0.1-6.2-0.2-0.6-1.6c1.1-0.3,2.6-0.6,4.4-0.8
-					c-0.7-0.1-1.4-0.3-2.1-0.5c-1.5-0.5-3.8-1.4-4.2-1.7c-0.9-0.6,1.5-0.5,4.2-1.1C295.1-1639,297.1-1639.2,299.6-1639.1z"/>
-			</g>
-		</g>
-		<g>
-			<path d="M708.6,156.6c-0.3,2,0.5,4.3,1.3,6.2c0.4,1.1,1.7,1,2.1,0c0.9-2.1,2.1-4,3.7-5.7c1.2-1.3,3.2-2.2,3.8-3.8
-				c0.2-0.6-0.3-1.1-0.8-1.1c-2-0.1-4.1,2.5-5.3,3.9c-1.5,1.8-2.7,3.9-3.5,6.1c0.7,0,1.4,0,2.1,0c-0.7-1.8-1.2-4.1-2.3-5.7
-				C709.4,156.1,708.7,156,708.6,156.6L708.6,156.6z"/>
-		</g>
-		<g>
-			<path d="M708.9,143.7c-1.8,1,0,4.7,0.8,5.9c0.3,0.5,1,0.6,1.4,0.2c1.5-1.3,3-2.6,4.5-3.9c1.3-1.1,3.1-2.2,3.9-3.8
-				c0.3-0.6-0.2-1.4-0.9-1.2c-1.7,0.6-2.9,2.1-4.1,3.2c-1.6,1.4-3.1,2.9-4.6,4.3c0.5,0.1,1,0.1,1.4,0.2c-0.8-1.1-1.2-2.3-1.5-3.6
-				c-0.1-0.7-0.1-0.9-0.7-1.3C709.1,143.6,709,143.6,708.9,143.7L708.9,143.7z"/>
-		</g>
-		<g>
-			<path d="M709.3,133c-0.3,2.1,1.1,6.2,3.7,4c1.3-1.1,2.1-3,3.2-4.4c1.2-1.7,2.8-3.2,3.9-5c0.8-1.2-0.9-2.3-1.9-1.5
-				c-1.8,1.5-3.2,3.8-4.4,5.8c-0.5,0.8-1.1,2.5-1.9,3.1c-0.1,0.1-0.2,0.3-0.2,0.4c-0.2-0.5-0.4-0.9-0.6-1.4
-				c-0.2-0.5-0.3-0.8-0.6-1.2C710.1,132.2,709.4,132.5,709.3,133L709.3,133z"/>
-		</g>
-		<g>
-			<g>
-				<path d="M725.1,131C725.1,131,725.1,131,725.1,131C725.1,131,725.1,131,725.1,131L725.1,131z"/>
-			</g>
-		</g>
-		<g>
-			<path d="M725,130.8c4.2,1,9.2,0.2,13.5,0.1c2.3,0,4.6-0.1,6.9-0.1c2.3,0,4.6,0.3,6.8-0.2c1.1-0.2,1.1-2,0-2.3
-				c-2.1-0.5-4.3-0.3-6.4-0.3c-2.5,0-4.9,0.1-7.4,0.2c-4.3,0.2-9.5,0.1-13.5,1.8C724.7,130.3,724.6,130.7,725,130.8L725,130.8z"/>
-		</g>
-		<g>
-			<path d="M723.6,144.2c4.8-0.1,9.5-0.2,14.3-0.3c2.3-0.1,4.6-0.1,6.9-0.1c2.1,0,4.8,0.6,6.8-0.2c0.7-0.3,1.1-1.4,0.2-1.8
-				c-1.9-0.9-4.1-0.6-6.1-0.7c-2.6,0-5.2,0-7.8,0.1c-4.9,0.1-9.7,0.7-14.5,1.6C722.7,142.9,722.8,144.2,723.6,144.2L723.6,144.2z"/>
-		</g>
-		<g>
-			<path d="M723.1,158.2c2.1,0.5,4.4,0.4,6.5,0.4c2.2,0,4.5,0.2,6.6-0.3c1-0.2,1-1.9,0-2.1c-2.1-0.4-4.4-0.1-6.6-0.1
-				c-2.1,0.1-4.4,0.1-6.5,0.6C722.4,156.9,722.4,158,723.1,158.2L723.1,158.2z"/>
-		</g>
-	</g>
-	
-		<g id="Group_1_" transform="translate(260.366293, 119.699418) rotate(-3.000000) translate(-260.366293, -119.699418) translate(198.866293, 3.699418)">
-		<path id="Fill-1-Copy_1_" d="M578.3,149.5c-1,0.2-2.1,0.4-3.1,0.6c-0.1,0-0.2,0.1-0.4,0.1c-0.1,0-0.2-0.1-0.2-0.1
-			c0-0.1,0.1-0.1,0.1-0.1c0.1,0,0.2-0.1,0.3-0.1c1.8-0.8,3.6-1.6,5.4-2.5c1.3-0.6,2.8-1,4-1.9c1.8-1.3,3.5-2.7,5.2-4
-			c1.8-1.4-0.4,0.4,1.5-1.1c-2-0.3-3.9-0.1-5.8-0.2c2.4-0.5,4.7-1,7.2-0.9c0.2,0,0.3-0.1,0.4-0.2c2.7-2.1,2.6-2.7,5.5-4.6
-			c1.1-0.7,2.1-1.5,3.4-2.3c-1.7-0.2-3.2,0-4.7,0.1c-0.1,0.1-0.3,0.1-0.5,0c-0.1,0-0.2,0.1-0.4,0.1l-0.2,0c-0.1,0-0.2,0-0.2-0.1
-			c0-0.1,0.1-0.1,0.2-0.1c0-0.1,0.1-0.1,0.2-0.1c0.1-0.1,0.2-0.1,0.3-0.1c0.2,0,0.3-0.1,0.5-0.1c1.2-0.5,2.5-0.7,3.8-0.7
-			c1.4,0,2.9-0.2,4-1.2c1.2-1.1,2.3-2.1,3.6-3.2c-0.2-0.2-0.4-0.2-0.6-0.2c-1.6,0.2-3.3,0.3-4.9,0.5c-0.4,0-0.4,0-0.8-0.2
-			c2.5-0.7,5.1-1.5,7.7-1.8c0.3,0,1.2-0.7,1.4-0.9c1-1.1,1.1-1.4,2-2.6c1.5-1.9,2.9-3.9,3.4-6.3c0.3-1.5-0.3-2.5-1.8-3
-			c-0.7-0.2-1.5-0.3-2.3-0.3c-2.9,0-5.8,0.6-8.6,1.2c-1.9,0.4-3.7,1-5,2.6c-0.2,0.2-0.5,0.6-1,0.6c0.6-0.7,1.3-1.2,1.8-2
-			c-0.2,0-0.4,0.1-0.5,0.1c-4.9,1.3-3,0.9-7.4,3.6c-1.7,1.1-4.1,3.1-5,4.9c-0.6,1.2-2.5,3.1-3.3,4.3c0,0-6.3,6.3-6.3,6.2l7.2-11.4
-			c-1,0.7-2,1.3-2.9,2c-5.2,3.7-6,4.4-10.8,8.5c-3.2,2.8-2.4,1.2-4.6,4.9c-0.9,1.4-1.9,2.8-3.1,4.2c0.5-1.3,1-2.5,1.5-3.7
-			c-3,1.8-3.8,5.1-5.5,7.7c0.3-1,0.6-2,0.8-3c-1.6,1.4-2.9,2.9-4.1,4.5c-1.9,2.4-3.4,5.1-4.1,8.1c0,0.1,0,0.2-0.1,0.2
-			c-0.1,0-0.1-0.1-0.1-0.1c-1.4-1.5-1.5-3.3-0.8-5.1c-1,1.8-1.2,3.5-0.2,5.3c0.5,0.8,0.8,1.7,1,2.6c0.2,0.9,0,1.7-0.7,2.5
-			c-1.6,1.7-3.2,3.4-4.7,5.1c-2.2,2.5-4.5,5-6.5,7.8c-0.8,1-1.4,2.2-1.1,3.6c0.1-0.1,0.2-0.2,0.3-0.2c3.8-4.9,7.7-9.7,11.9-14.2
-			c3.1-3.4,5.5-6.6,8.7-10.3c1.6-1.9,5.2-6,12.3-11.7c9.7-7.8,19.4-13.1,20.9-13.7c0.4-0.2,2.4-0.3,2.4-0.3
-			c-0.9,0.6-1.9,1.2-2.8,1.9c-2.3,1.6-25.8,19.3-32.8,26.5c-1.9,1.9-3.7,3.9-5.5,5.9c1.5,0.4,2,2,3.3,2.5c-0.4-0.8-1.1-1.4-1.4-2.3
-			c2,1.3,12-0.1,11.3-0.4s-8.6,1.1-10.2-0.2c4.6-1.1,8.5-3.4,12.5-5.9c-1-0.3-1.9-0.1-2.9-0.6c1.4-0.1,2.6-0.2,3.8-0.3
-			c0.5,0,0.9-0.2,1.2-0.4c3.8-2.5,3.2-1,6.8-3.6c0.1-0.1,0.4-0.2,0.3-0.4C578.7,149.3,578.5,149.4,578.3,149.5z M582.6,153.7
-			c-0.3,0.3-0.5,0.5-0.8,0.6c-0.1,0-0.1,0.1-0.2,0.1c-1.8,1.3-3,2-4.5,2.5c-0.1,0-0.1,0-0.2,0.1c-0.4,0.1-0.6,0.2-0.9,0.3l-3.5,2.2
-			c0.1,0.4,0.2,0.9,0.2,1.4c0,1.4-0.4,2.5-1.1,3.5c-0.4,0.5-0.8,0.9-1.2,1.2c-0.7,0.5-1.2,0.7-1.8,0.8c-0.5,0.1-1,0.2-1.6,0.4
-			c-0.6,0.1-1.3,0.2-2.1,0.3l3.3,7l-13-5.4c-0.6-0.2-1.1-0.5-1.5-0.8c-3.5,3.9-6.9,8-10.4,12.6c-0.1,0.1-0.1,0.1-0.2,0.3
-			c-0.4,0.5-1.3,1.2-0.9,0.8l-7,5.9l-1.8-9c-0.3-1.7-0.2-3.4,0.4-5c0.4-1.1,0.9-2,1.7-3c1.6-2.2,2.9-3.7,6-7.2
-			c0.1-0.1,0.1-0.1,0.2-0.2c0.3-0.3,0.5-0.6,0.7-0.8c1.2-1.4,2.5-2.7,3.7-4c-1.9-3.5-1.7-7.2,0.3-10.6l2.4,1.1
-			c0.8-1.6,1.8-3.1,3.1-4.7c1.5-1.9,3.1-3.7,4.8-5.2l1.1-1c0.1-0.2,0.3-0.4,0.4-0.6c1.1-1.5,2.4-2.8,4-3.7l1-0.6
-			c0.1-0.1,0.1-0.2,0.2-0.2c0.6-0.8,1.1-1.4,1.7-2c0.2-0.2,1.8-1.4,2.6-2.1c5.1-4.4,6.1-5.1,11.2-8.8c0.1-0.1,0.2-0.1,0.3-0.2
-			c0.6-0.4,2.8-1.9,2.6-1.8l22.2-15.5l-4.3,6.7c1-0.4,2.1-0.7,3.3-1c0.2,0,0.3-0.1,0.5-0.1c0.1,0,0.1,0,0.1,0
-			c4.3-0.9,6.4-1.2,9.2-1.2c1.3,0,2.6,0.2,3.8,0.6c4.2,1.3,6.4,4.9,5.6,9.2c-0.6,3.2-2,5.7-4.5,8.8c-0.2,0.3-0.3,0.4-0.7,0.9
-			l0.7,0.5l-2.1,1.6l1.2,0.1l-8.2,5.7c0,0,0,0,0,0c-0.8,0.7-1.6,1.3-2.4,1.7l-1.2,0.9c-0.1,0-0.3,0.2-0.5,0.4l-6.2,4.8
-			c-0.6,0.5-1.1,0.9-1.9,1.6c0,0,0,0,0,0c-0.1,0.1-0.2,0.2-0.3,0.3c-0.2,0.1-0.4,0.2-0.6,0.4l-0.9,0.7c-0.6,0.4-0.8,0.7-1.1,0.8
-			c-0.1,0.1-0.1,0.1-0.3,0.2c-0.1,0-0.1,0.1-0.1,0.1c0,0,0,0,0,0c-0.4,0.3-0.8,0.6-1.6,1.2l0,0c-1.8,1.5-2.7,2.1-3.8,2.9
-			c-1.1,0.8-2,1.2-3.7,1.9C583.6,152.6,583.1,153.2,582.6,153.7z M555.5,151.6c-1-0.9-2.3-1.4-3.6-1.4l3.4,1.6
-			C555.3,151.8,555.4,151.7,555.5,151.6z M595.5,132.3C595.5,132.3,595.5,132.3,595.5,132.3C595.5,132.3,595.5,132.3,595.5,132.3
-			C595.5,132.3,595.5,132.3,595.5,132.3z M582.3,120.7C582.3,120.7,582.3,120.7,582.3,120.7C582.3,120.7,582.3,120.6,582.3,120.7
-			L582.3,120.7z"/>
-		<path id="Fill-1_1_" class="st3" d="M578.3,149.5c0.2,0,0.4-0.2,0.5,0.1c0.1,0.3-0.2,0.3-0.3,0.4c-3.6,2.7-3.1,1.2-6.8,3.6
-			c-0.4,0.2-0.8,0.4-1.2,0.4c-1.2,0.1-2.4,0.2-3.8,0.3c0.9,0.5,1.9,0.3,2.9,0.6c-4,2.5-7.9,4.8-12.5,5.9c1.6,1.3,9.5-0.1,10.2,0.2
-			s-9.3,1.6-11.3,0.4c0.3,0.9,1,1.5,1.4,2.3c-1.3-0.5-1.8-2.1-3.3-2.5c1.8-2,3.6-4,5.5-5.9c7-7.2,30.5-24.9,32.8-26.5
-			c0.9-0.6,1.9-1.3,2.8-1.9c0,0-2,0.2-2.4,0.3c-1.5,0.7-11.2,6-20.9,13.7c-7.1,5.6-10.7,9.8-12.3,11.7c-3.2,3.6-5.6,6.9-8.7,10.3
-			c-4.2,4.6-8.1,9.3-11.9,14.2c0,0.1-0.1,0.1-0.3,0.2c-0.3-1.5,0.4-2.6,1.1-3.6c2-2.7,4.3-5.2,6.5-7.8c1.5-1.7,3.1-3.5,4.7-5.1
-			c0.7-0.7,0.8-1.5,0.7-2.5c-0.2-0.9-0.5-1.8-1-2.6c-1.1-1.8-0.8-3.6,0.2-5.3c-0.6,1.9-0.6,3.6,0.8,5.1c0,0.1,0,0.2,0.1,0.1
-			c0,0,0-0.1,0.1-0.2c0.6-3.1,2.2-5.7,4.1-8.1c1.2-1.6,2.6-3.1,4.1-4.5c-0.3,1-0.6,2-0.8,3c1.8-2.6,2.6-5.9,5.5-7.7
-			c-0.5,1.2-1,2.4-1.5,3.7c1.2-1.4,2.2-2.8,3.1-4.2c2.3-3.7,1.4-2.2,4.6-4.9c4.8-4.1,5.7-4.8,10.8-8.5c0.9-0.7,1.8-1.3,2.9-2
-			l-7.2,11.4c0,0,6.3-6.3,6.3-6.2c0.7-1.2,2.6-3.1,3.3-4.3c0.9-1.8,3.3-3.9,5-4.9c4.3-2.7,2.4-2.2,7.4-3.6c0.1,0,0.3-0.1,0.5-0.1
-			c-0.5,0.8-1.2,1.3-1.8,2c0.5,0,0.8-0.3,1-0.6c1.3-1.6,3-2.2,5-2.6c2.9-0.6,5.7-1.3,8.6-1.2c0.8,0,1.5,0.1,2.3,0.3
-			c1.5,0.5,2.1,1.4,1.8,3c-0.5,2.5-1.9,4.4-3.4,6.3c-0.9,1.1-1,1.5-2,2.6c-0.2,0.2-1.1,0.9-1.4,0.9c-2.6,0.3-5.2,1.1-7.7,1.8
-			c0.4,0.2,0.4,0.2,0.8,0.2c1.6-0.2,3.3-0.3,4.9-0.5c0.1,0,0.3,0.1,0.6,0.2c-1.3,1-2.4,2-3.6,3.2c-1.1,1-2.5,1.2-4,1.2
-			c-1.3,0-2.6,0.2-3.8,0.7c-0.2,0-0.3,0.1-0.5,0.1c-0.1,0-0.2,0-0.3,0.1c-0.1,0-0.2,0-0.2,0.1c-0.1,0-0.2-0.1-0.2,0.1
-			c0,0,0.1,0,0.2,0.1l0.2,0c0.1,0,0.2-0.1,0.4-0.1c0.2,0.1,0.3,0,0.5,0c1.5-0.2,3-0.3,4.7-0.1c-1.2,0.8-2.3,1.6-3.4,2.3
-			c-2.9,1.9-2.8,2.5-5.5,4.6c-0.1,0.1-0.3,0.2-0.4,0.2c-2.4-0.1-4.8,0.4-7.2,0.9c1.9,0.2,3.8,0,5.8,0.2c-1.9,1.5,0.3-0.3-1.5,1.1
-			c-1.7,1.3-3.4,2.7-5.2,4c-1.2,0.9-2.6,1.3-4,1.9c-1.8,0.8-3.6,1.7-5.4,2.5c-0.1,0-0.2,0.1-0.3,0.1c-0.1,0-0.2,0-0.1,0.1
-			c0,0,0.1,0.1,0.2,0.1c0.1,0,0.2-0.1,0.4-0.1C576.3,149.9,577.3,149.7,578.3,149.5z"/>
-		<path class="st4" d="M554.2,161.3c0.9-1.1,1.8-2.2,2.8-3.3c0.8-0.9,1.7-1.8,2.6-2.7c2.7-2.8,7.8-7.1,13.2-11.4
-			C572.5,145,554.7,161.4,554.2,161.3z M575.7,138l4.2-6.7c1.8-1.8,4-4,4-4c0.7-1.2,2.6-3.1,3.3-4.3c0.9-1.8,3.3-3.9,5-4.9
-			c4.3-2.7,2.4-2.2,7.4-3.6c0.1,0,0.3-0.1,0.5-0.1c-0.5,0.8-1.2,1.3-1.8,2c0.5,0,0.8-0.3,1-0.6c1.3-1.6,3-2.2,5-2.6
-			c2.9-0.6,5.7-1.3,8.6-1.2c0.8,0,1.5,0.1,2.3,0.3c1.5,0.5,2.1,1.4,1.8,3c-0.3,1.9-1.2,3.5-2.3,4.9c0.3-1.5-0.3-2.4-1.8-2.9
-			c-0.7-0.2-1.5-0.3-2.3-0.3c-2.9,0-5.8,0.6-8.6,1.2c-1.9,0.4-3.7,1-5,2.6c-0.2,0.2-0.5,0.6-1,0.6c0.6-0.7,1.3-1.2,1.8-2
-			c-0.2,0-0.4,0.1-0.5,0.1c-4.9,1.3-3,0.9-7.4,3.6c-1.7,1.1-4.1,3.1-5,4.9c-0.6,1.2-2.5,3.1-3.3,4.3c0,0-3,3-4.9,4.9
-			C576.4,137.6,576,137.8,575.7,138z M549.3,164.6c-1.1,1.2-9.6,11.4-10.6,12.7c-0.2-1.4,7.9-11.5,8.6-12.5
-			C549.4,162.1,551.8,161.5,549.3,164.6z M550.8,155.8c-1.1-1.8-0.8-3.6,0.2-5.3c-0.6,1.8-0.6,3.5,0.7,5c-0.2,0.3-0.4,0.6-0.5,1
-			C551.1,156.2,551,156,550.8,155.8z M556.1,147.4c1.2-1.6,2.6-3.1,4.1-4.5c-0.3,1-0.6,2-0.8,3c1.8-2.6,2.6-5.9,5.5-7.7
-			c-0.5,1.2-1,2.4-1.5,3.7c1.2-1.4,2.2-2.8,3.1-4.2c2.3-3.7,1.4-2.2,4.6-5c4.8-4.1,5.7-4.8,10.8-8.5c0.9-0.7,1.8-1.3,2.9-2l-3.9,6.1
-			c-0.5,0.3-0.9,0.6-1.3,1c-5.2,3.7-6,4.4-10.8,8.5c-3.2,2.8-2.4,1.2-4.6,5c-0.9,1.4-1.9,2.8-3.1,4.2c0.5-1.3,1-2.5,1.5-3.7
-			c-3,1.8-3.8,5.1-5.5,7.7c0.3-1,0.6-2,0.8-3c-1.6,1.4-2.9,2.9-4.1,4.5c-0.5,0.7-1,1.4-1.5,2.1C553,151.9,554.4,149.6,556.1,147.4z"
-			/>
-	</g>
-	<path d="M591.1,239.3c-0.6-3.4-4.9-4.5-8.3-4.8c-3.2-0.2-29.1-1.9-23.6,6.6C561.7,245,591,239.1,591.1,239.3z"/>
-	<path d="M616.3,224.9c-6.2,0.9-12.1,3.6-16.8,7.7c3.9,4.1,10.4,3.7,15.9,2.5c4.2-0.9,8.3-2.2,12.3-3.8c1.4-0.6,2.8-1.2,3.6-2.4
-		c0.8-1.2,0.8-3.2-0.5-3.9c-0.5-0.3-1.1-0.4-1.7-0.4c-6.5-0.6-13.2,0-19.6,1.5"/>
-	<path d="M662.5,191.3c2.4,1.6,5.5,3.2,7.9,1.7c1.5-0.9,2.1-2.9,2-4.6c-0.3-4.5-4.5-7.6-8.4-10c-13.4-8.4-27.3-15.9-41.7-22.4
-		c-1-0.4-2-0.9-3.1-0.8c-1.1,0.1-2.1,0.9-2.7,1.9C608.9,168.3,655.4,186.7,662.5,191.3z"/>
-	<path d="M659.7,156.2c0,2.1-1.5,3.8-2.9,5.4c-9.1,9.8-18.1,19.6-27.2,29.4c-1.6,1.7-3.5,3.6-5.8,3.7c-1.7,0.1-3.3-0.8-4.8-1.6
-		c-0.9-0.5-1.9-1.2-1.9-2.3c0-0.6,0.4-1.1,0.7-1.6c4.5-6.3,8.9-12.6,13.4-19c1.8-2.5,3.5-5,5.6-7.3
-		C639.3,160.1,659.6,141.6,659.7,156.2z"/>
-	<path d="M618.3,142.4c-1.7-1-3.4-2.7-3.1-4.6c3.5-1.6,7.6-1.2,11.1,0.4c2.8,1.3,12.7,7.1,7.7,10.1
-		C630.7,150.3,621.3,144.2,618.3,142.4z"/>
-	<path d="M600.7,139.5c-5.8-0.5-11.9-1.1-16.8-4.3c-1.6-1.1-3.2-2.8-2.6-4.7c0.4-1.5,2.2-2.3,3.8-2.3c1.6,0.1,3.1,0.7,4.6,1.3
-		c2.4,0.8,5,1.2,7.5,1.1c1.6-0.1,3.4-0.3,4.7,0.6c2.2,1.6,1.4,5.4-1,6.9s-5.3,1.3-8,1.1"/>
-	<path d="M551.7,119c-0.9-1.4-1.1-3.4,0-4.7c0.9-1.1,2.4-1.5,3.9-1.5c3,0,5.9,1.2,8.7,2.5c3.6,1.7,12.2,7.5,5.3,10.5
-		C564.7,127.8,554.2,123.1,551.7,119z"/>
-	<path d="M558,87.5c2.1-1.3,5.1-1.8,6.9-0.1c4.8,4.4-3,16.2-8.7,15.6C547.5,102,553.7,90.1,558,87.5z"/>
-	<path d="M630,211.8c-0.6,1-1.2,2.1-1,3.2c0.2,1.6,1.7,2.6,3.1,3.5c1,0.6,2.1,1.1,3.1,0.9c0.8-0.2,1.4-0.8,1.8-1.5
-		c2.6-3.4,3.7-7.8,4.5-12c0.3-1.7,0.6-3.4,0.3-5.2c-0.7-4.1-3.7-5.5-6.1-2.5C633.3,201.2,632.2,208,630,211.8z"/>
-	<path d="M529.8,243.4c7.3,5.3,13.6,12,21.1,16.9c1.3,0.9,2.8,1.7,4.4,1.7s3.2-1.3,3.1-2.9c-0.2-2.1-2.8-2.8-4.6-3.8
-		c-2.5-1.4-4.1-4-6-6.2c-5.2-5.8-13.2-8.2-19.2-13.2c-1.6-1.3-3.1-2.8-4.9-3.6c-3.4-1.4-8.3,1.3-5.1,5c0.8,0.9,3.2,0.9,4.3,1.4
-		C525.2,240,527.6,241.8,529.8,243.4z"/>
-	<path d="M547,236.3c-0.1,2.1-1.5,4-2.8,5.7c-3.8,4.8-7.6,9.6-11.4,14.4c-2.2,2.8-4.6,5.7-7.9,7.2c-1.9,0.9-4.8,0.8-5.4-1.2
-		c-0.4-1.4,0.7-2.8,1.7-3.9c2.6-2.9,4.9-5.9,7-9.1c3.1-4.8,5.3-12.8,9.4-16.7C541,229.6,547,231,547,236.3z"/>
-	<path class="st0" d="M652.8,159.9c-8.6,9.3-17.2,18.5-25.8,27.8c-1.5,1.7-3.4,3.5-5.7,3.3c-0.3-2.2,0.9-4.3,2-6.2
-		c5-8.1,11.1-15.6,18.2-22c2.2-2,4.5-3.7,7-5.3c1.4-0.9,4.2-3.9,5.7-2.5C655.8,156.4,653.8,158.8,652.8,159.9z"/>
-	<path class="st0" d="M621.3,159.1c-0.3,1.2-0.1,2.6,0.6,3.7c0.7,1.1,1.8,1.9,2.9,2.6c12.3,8.1,25.1,15.5,38.3,22
-		c1.3,0.6,3,1.2,4,0.2c0.8-0.7,0.7-2.1,0.1-3c-0.6-0.9-1.5-1.5-2.5-2c-8-4.7-16.1-9.4-24.1-14.1
-		C638.7,167.4,621.4,158.4,621.3,159.1z"/>
-	<path d="M579.3,78.2c2.7,2.7,5.8,5.6,9.6,5.4c0.4,0,0.9-0.1,1.2-0.4c0.7-0.6,0.6-1.7,0.3-2.6c-1.8-6.4-5.8-12-10.4-16.8
-		c-2.8-3-6-5.7-9.7-7.4c-1.7-0.7-3.4-1.2-4.9-2.2c-1.6-1-2.8-2.6-4.4-3.4c-2.5-1.2-5.1,0-4.8,2.8c0.2,2.3,4.5,4.8,6,6.3
-		C568,65.9,573.5,72.3,579.3,78.2z"/>
-	<path d="M588.6,49.5c0.5,0.6,0.9,1.3,0.8,2.1c-0.1,1-0.8,1.7-1.4,2.4c-6.4,6.8-13,13.4-19.7,19.9c-1.5,1.4-3,2.9-4.8,3.8
-		c-1.8,0.9-4.1,1.2-5.9,0.4c-1.9-0.9-3.1-3.2-2.3-5.1c0.3-0.9,1-1.6,1.7-2.2C561.2,66.6,581.8,41.8,588.6,49.5z"/>
-</g>
-</svg>

File diff suppressed because it is too large
+ 0 - 10
img/okr-section_new.svg


+ 0 - 346
img/pm-section.svg

@@ -1,346 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 882 300" style="enable-background:new 0 0 882 300;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#C4C3C6;}
-	.st1{fill:#FFFFFF;}
-	.st2{fill-rule:evenodd;clip-rule:evenodd;}
-	.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#C4C3C6;}
-	.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
-	.st5{fill:#010101;}
-	.st6{fill:none;}
-	.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#B1B2B7;}
-	.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;}
-	.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;}
-</style>
-<g id="Layer_4">
-	<path class="st0" d="M876,209H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h870c3.3,0,6,2.7,6,6v197C882,206.3,879.3,209,876,209z"/>
-	<g>
-		<path d="M76.2,89.4h-8.4v11.2h-3.7V67.4h12.1c3.6,0,6.3,0.9,8,2.6c1.7,1.8,2.6,4.4,2.6,8.1C86.8,85.6,83.3,89.4,76.2,89.4z
-			 M67.8,86.2h8.4c4.6,0,6.9-2.7,6.9-8.1c0-2.6-0.5-4.4-1.6-5.6c-1.1-1.2-2.8-1.8-5.2-1.8h-8.4V86.2z"/>
-		<path d="M91.9,100.6v-24h3.6v3.3c2.8-1.9,5.7-3.2,8.8-3.8v3.6c-1.3,0.3-2.7,0.7-4.2,1.2s-2.6,1-3.3,1.4L95.5,83v17.6H91.9z"/>
-		<path d="M107,88.6c0-4.4,0.8-7.6,2.4-9.5c1.6-2,4.2-2.9,7.9-2.9s6.4,1,7.9,2.9c1.6,2,2.3,5.1,2.3,9.5c0,4.4-0.7,7.6-2.2,9.6
-			c-1.5,2-4.2,3-8.1,3c-3.9,0-6.6-1-8.1-3C107.7,96.1,107,92.9,107,88.6z M110.7,88.5c0,3.5,0.4,6,1.3,7.4c0.8,1.4,2.6,2.1,5.3,2.1
-			s4.5-0.7,5.3-2.1c0.8-1.4,1.2-3.8,1.2-7.4s-0.5-5.9-1.4-7.3c-0.9-1.3-2.6-2-5.2-2s-4.2,0.7-5.2,2C111.2,82.6,110.7,85,110.7,88.5z
-			"/>
-		<path d="M133.4,100V76.6h3.6V100c0,2.9-0.5,5.2-1.6,6.6s-3.2,3-6.4,4.7l-1.4-2.8c2.5-1.4,4.1-2.7,4.8-3.7
-			C133.1,103.8,133.4,102.2,133.4,100z M133.4,71.2V67h3.6v4.2H133.4z"/>
-		<path d="M160.2,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3c0-8.4,3.3-12.6,10-12.6
-			c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9c1,1.3,2.6,1.9,5,1.9
-			C155.3,97.9,157.8,97.8,160.2,97.6z M158.9,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8c-2.1,0-3.7,0.6-4.8,1.9
-			c-1.1,1.3-1.6,3.3-1.7,6.1H158.9z"/>
-		<path d="M177.1,76.1c1.1,0,2.8,0.2,5.4,0.6l1.2,0.1l-0.1,2.9c-2.6-0.3-4.4-0.4-5.7-0.4c-2.7,0-4.6,0.6-5.5,1.9s-1.5,3.7-1.5,7.2
-			s0.5,5.9,1.4,7.3s2.8,2.1,5.7,2.1l5.7-0.4l0.1,3c-3,0.4-5.2,0.7-6.7,0.7c-3.7,0-6.3-1-7.8-2.9c-1.4-1.9-2.1-5.2-2.1-9.7
-			c0-4.6,0.8-7.8,2.3-9.6S173.5,76.1,177.1,76.1z"/>
-		<path d="M201.5,79.7h-7.6v11.5c0,2.8,0.2,4.6,0.6,5.4c0.4,0.9,1.4,1.3,2.9,1.3l4.3-0.3l0.2,3c-2.1,0.4-3.8,0.5-4.9,0.5
-			c-2.5,0-4.2-0.6-5.2-1.8c-1-1.2-1.4-3.5-1.4-7V79.7h-3.4v-3.1h3.4v-7.3h3.6v7.3h7.6V79.7z"/>
-		<path d="M217.1,100.6V67.4h6.7l9.4,28.1l9.4-28.1h6.7v33.2h-3.7V71.3h-0.7l-9.6,28.1h-4.1l-9.6-28.1h-0.7v29.3H217.1z"/>
-		<path d="M273.7,83.9v12.3c0.1,1.2,1,1.9,2.8,2.1l-0.1,2.8c-2.5,0-4.4-0.6-5.7-1.9c-2.9,1.3-5.8,1.9-8.6,1.9c-2.2,0-3.9-0.6-5-1.9
-			c-1.2-1.2-1.7-3-1.7-5.4s0.6-4.1,1.8-5.2c1.2-1.1,3-1.8,5.6-2l7.5-0.7v-2.1c0-1.6-0.4-2.8-1.1-3.5c-0.7-0.7-1.7-1.1-2.9-1.1
-			c-2.6,0-5.2,0.2-8,0.5l-1.5,0.1l-0.1-2.7c3.5-0.7,6.6-1.1,9.4-1.1c2.7,0,4.7,0.6,5.9,1.9C273.1,79.2,273.7,81.2,273.7,83.9z
-			 M259,93.6c0,2.9,1.2,4.4,3.6,4.4c2.2,0,4.3-0.4,6.4-1.1l1.1-0.4v-7.9l-7.1,0.7c-1.4,0.1-2.5,0.5-3.1,1.2
-			C259.3,91.3,259,92.3,259,93.6z"/>
-		<path d="M284.4,100.6h-3.6v-24h3.6v1.7c2.6-1.4,5.1-2.2,7.4-2.2c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7h-3.6V88
-			c0-3.3-0.3-5.6-1-6.8c-0.7-1.2-2.1-1.8-4.2-1.8c-1,0-2.1,0.2-3.2,0.5c-1.1,0.3-2,0.6-2.6,0.9l-0.9,0.4V100.6z"/>
-		<path d="M323.6,83.9v12.3c0.1,1.2,1,1.9,2.8,2.1l-0.1,2.8c-2.5,0-4.4-0.6-5.7-1.9c-2.9,1.3-5.8,1.9-8.6,1.9c-2.2,0-3.9-0.6-5-1.9
-			c-1.2-1.2-1.7-3-1.7-5.4s0.6-4.1,1.8-5.2c1.2-1.1,3-1.8,5.6-2l7.5-0.7v-2.1c0-1.6-0.4-2.8-1.1-3.5c-0.7-0.7-1.7-1.1-2.9-1.1
-			c-2.6,0-5.2,0.2-8,0.5l-1.5,0.1l-0.1-2.7c3.5-0.7,6.6-1.1,9.4-1.1c2.7,0,4.7,0.6,5.9,1.9C322.9,79.2,323.6,81.2,323.6,83.9z
-			 M308.8,93.6c0,2.9,1.2,4.4,3.6,4.4c2.2,0,4.3-0.4,6.4-1.1l1.1-0.4v-7.9l-7.1,0.7c-1.4,0.1-2.5,0.5-3.1,1.2
-			C309.1,91.3,308.8,92.3,308.8,93.6z"/>
-		<path d="M339.9,111.9c-3.8,0-6.5-0.5-8-1.6c-1.5-1-2.3-2.9-2.3-5.7c0-1.3,0.3-2.4,0.9-3.2c0.6-0.8,1.6-1.7,2.9-2.8
-			c-0.9-0.6-1.3-1.7-1.3-3.3c0-0.5,0.4-1.6,1.2-3l0.4-0.8c-2.5-1.2-3.8-3.6-3.8-7.2c0-5.5,3-8.2,9-8.2c1.5,0,3,0.2,4.3,0.5l0.7,0.1
-			l7.1-0.2v3.1l-4.6-0.1c1.1,1.1,1.6,2.7,1.6,4.8c0,3-0.7,5.1-2.2,6.3s-3.8,1.8-7,1.8c-0.9,0-1.6-0.1-2.4-0.2
-			c-0.6,1.4-0.9,2.3-0.9,2.7c0,1,0.3,1.6,0.9,1.8c0.6,0.2,2.4,0.4,5.5,0.4c3.1,0,5.3,0.5,6.6,1.4c1.3,1,2,2.8,2,5.6
-			C350.6,109.3,347,111.9,339.9,111.9z M333.2,104.4c0,1.7,0.5,2.9,1.4,3.5c0.9,0.7,2.7,1,5.2,1s4.4-0.4,5.5-1.1
-			c1.1-0.7,1.7-1.9,1.7-3.5c0-1.6-0.4-2.7-1.2-3.2c-0.8-0.5-2.4-0.7-4.7-0.7l-5.2-0.2c-1.1,0.8-1.8,1.4-2.1,2
-			C333.3,102.7,333.2,103.5,333.2,104.4z M333.5,84.3c0,1.9,0.4,3.2,1.3,4c0.8,0.8,2.2,1.2,4.2,1.2c2,0,3.3-0.4,4.2-1.2
-			c0.8-0.8,1.2-2.2,1.2-4.1c0-1.9-0.4-3.3-1.2-4.1s-2.2-1.2-4.2-1.2c-2,0-3.4,0.4-4.2,1.2C333.9,81.1,333.5,82.4,333.5,84.3z"/>
-		<path d="M371.7,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3c0-8.4,3.3-12.6,10-12.6
-			c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9c1,1.3,2.6,1.9,5,1.9
-			C366.8,97.9,369.2,97.8,371.7,97.6z M370.4,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8c-2.1,0-3.7,0.6-4.8,1.9
-			c-1.1,1.3-1.6,3.3-1.7,6.1H370.4z"/>
-		<path d="M383.2,100.6h-3.6v-24h3.6v1.7c2.4-1.4,4.7-2.2,7-2.2c3,0,5.1,0.8,6.2,2.4c1.1-0.6,2.4-1.2,4.1-1.7
-			c1.7-0.5,3.2-0.7,4.4-0.7c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7h-3.6V88c0-3.3-0.3-5.6-1-6.8
-			c-0.6-1.2-2-1.8-4.1-1.8c-1.1,0-2.1,0.2-3.3,0.5s-2,0.6-2.6,0.9l-0.9,0.4c0.4,1.1,0.6,3.4,0.6,7v12.5h-3.6V88.2
-			c0-3.5-0.3-5.8-0.9-7c-0.6-1.2-2-1.8-4.1-1.8c-1,0-2.1,0.2-3.1,0.5c-1.1,0.3-1.9,0.6-2.5,0.9l-0.8,0.4V100.6z"/>
-		<path d="M436,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3c0-8.4,3.3-12.6,10-12.6
-			c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9c1,1.3,2.6,1.9,5,1.9
-			C431.1,97.9,433.6,97.8,436,97.6z M434.7,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8c-2.1,0-3.7,0.6-4.8,1.9
-			c-1.1,1.3-1.6,3.3-1.7,6.1H434.7z"/>
-		<path d="M447.5,100.6h-3.6v-24h3.6v1.7c2.6-1.4,5.1-2.2,7.4-2.2c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7h-3.6V88
-			c0-3.3-0.3-5.6-1-6.8c-0.7-1.2-2.1-1.8-4.2-1.8c-1,0-2.1,0.2-3.2,0.5c-1.1,0.3-2,0.6-2.6,0.9l-0.9,0.4V100.6z"/>
-		<path d="M482,79.7h-7.6v11.5c0,2.8,0.2,4.6,0.6,5.4c0.4,0.9,1.4,1.3,2.9,1.3l4.3-0.3l0.2,3c-2.1,0.4-3.8,0.5-4.9,0.5
-			c-2.5,0-4.2-0.6-5.2-1.8c-1-1.2-1.4-3.5-1.4-7V79.7h-3.4v-3.1h3.4v-7.3h3.6v7.3h7.6V79.7z"/>
-	</g>
-	<g>
-		<path d="M68.4,144.9h-6.9v-12.5h1.4v11.2h5.5V144.9z"/>
-		<path d="M75.9,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1c-0.5-0.7-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			S75,143.9,75.9,143.8z M75.5,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H75.5z"/>
-		<path d="M85.3,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7c-0.8,0-1.5-0.2-1.9-0.7
-			c-0.4-0.5-0.6-1.1-0.6-2s0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3c-0.3-0.3-0.6-0.4-1.1-0.4
-			c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7C85,136.9,85.3,137.6,85.3,138.6z M79.7,142.3
-			c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3c-0.5,0-0.9,0.2-1.2,0.5S79.7,141.8,79.7,142.3z"/>
-		<path d="M87.9,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2v6.6H87.9z"/>
-		<path d="M95.5,144.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8H100v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V144.9z"/>
-		<path d="M109.1,144.9h-1.4V132h1.4v4.4c1-0.5,1.9-0.7,2.8-0.7c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.4v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6c-0.2-0.5-0.8-0.7-1.6-0.7c-0.8,0-1.5,0.1-2.2,0.4l-0.3,0.1V144.9z"/>
-		<path d="M117.1,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1c0.6,0.7,0.9,1.9,0.9,3.6
-			c0,1.6-0.3,2.8-0.8,3.6s-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C117.3,143.2,117.1,142,117.1,140.4z M118.4,140.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8c0.3-0.5,0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7s-1-0.7-1.9-0.7
-			c-0.9,0-1.6,0.2-1.9,0.7S118.4,139.1,118.4,140.4z"/>
-		<path d="M126.1,135.9h1.4l1.8,7.8h0.3l2.1-7.7h1.4l2.1,7.7h0.3l1.8-7.8h1.4l-2.1,9h-2.2l-1.9-7l-1.9,7h-2.2L126.1,135.9z"/>
-		<path d="M143.8,135.9h1.4l1.8,7.8h0.3l2.1-7.7h1.4l2.1,7.7h0.3l1.8-7.8h1.4l-2.1,9H152l-1.9-7l-1.9,7h-2.2L143.8,135.9z"/>
-		<path d="M164.3,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1c-0.5-0.7-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			S163.4,143.9,164.3,143.8z M163.8,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H163.8
-			z"/>
-		<path d="M172.6,144.9h-1.4v-9h1.3v0.6c0.9-0.5,1.8-0.8,2.6-0.8c1.1,0,1.9,0.3,2.3,0.9c0.4-0.2,0.9-0.5,1.5-0.6
-			c0.6-0.2,1.2-0.3,1.7-0.3c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.5-0.7
-			c-0.4,0-0.8,0.1-1.2,0.2s-0.7,0.2-1,0.3l-0.3,0.2c0.2,0.4,0.2,1.3,0.2,2.6v4.7h-1.3v-4.6c0-1.3-0.1-2.2-0.4-2.6
-			c-0.2-0.5-0.7-0.7-1.5-0.7c-0.4,0-0.8,0.1-1.2,0.2s-0.7,0.2-0.9,0.3l-0.3,0.2V144.9z"/>
-		<path d="M192.6,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7c-0.8,0-1.5-0.2-1.9-0.7
-			c-0.4-0.5-0.6-1.1-0.6-2s0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3c-0.3-0.3-0.6-0.4-1.1-0.4
-			c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7C192.4,136.9,192.6,137.6,192.6,138.6z M187.1,142.3
-			c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3c-0.5,0-0.9,0.2-1.2,0.5S187.1,141.8,187.1,142.3z"/>
-		<path d="M196.6,144.9h-1.4V132h1.4v7.6l1.4-0.1l2.6-3.6h1.5l-2.9,4.1l3.1,4.9h-1.5l-2.7-4.2l-1.4,0.1V144.9z"/>
-		<path d="M209.8,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1c-0.5-0.7-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			S208.9,143.9,209.8,143.8z M209.3,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H209.3
-			z"/>
-		<path d="M216.7,148.9v-13h1.3v0.6c0.9-0.6,1.8-0.8,2.7-0.8c1.1,0,2,0.4,2.5,1.1c0.5,0.7,0.8,1.9,0.8,3.6s-0.3,2.9-0.9,3.6
-			c-0.6,0.7-1.6,1.1-3,1.1c-0.7,0-1.4-0.1-2-0.2v4H216.7z M220.6,137c-0.4,0-0.7,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-1,0.4l-0.3,0.2v6.1
-			c0.9,0.1,1.5,0.2,1.9,0.2c1,0,1.7-0.3,2-0.8c0.4-0.6,0.6-1.5,0.6-2.7s-0.2-2.1-0.5-2.7C221.8,137.2,221.2,137,220.6,137z"/>
-		<path d="M226.2,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2v6.6H226.2z"
-			/>
-		<path d="M231.9,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1c0.6,0.7,0.9,1.9,0.9,3.6
-			c0,1.6-0.3,2.8-0.8,3.6s-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C232.1,143.2,231.9,142,231.9,140.4z M233.2,140.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8c0.3-0.5,0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7s-1-0.7-1.9-0.7
-			c-0.9,0-1.6,0.2-1.9,0.7S233.2,139.1,233.2,140.4z"/>
-		<path d="M245.2,149.2c-1.4,0-2.4-0.2-3-0.6c-0.6-0.4-0.9-1.1-0.9-2.1c0-0.5,0.1-0.9,0.3-1.2c0.2-0.3,0.6-0.7,1.1-1
-			c-0.3-0.2-0.5-0.6-0.5-1.2c0-0.2,0.1-0.6,0.5-1.1l0.2-0.3c-0.9-0.4-1.4-1.3-1.4-2.7c0-2.1,1.1-3.1,3.4-3.1c0.6,0,1.1,0.1,1.6,0.2
-			l0.3,0.1l2.7-0.1v1.2l-1.7,0c0.4,0.4,0.6,1,0.6,1.8c0,1.1-0.3,1.9-0.8,2.4c-0.6,0.5-1.4,0.7-2.6,0.7c-0.3,0-0.6,0-0.9-0.1
-			c-0.2,0.5-0.3,0.9-0.3,1c0,0.4,0.1,0.6,0.3,0.7c0.2,0.1,0.9,0.1,2.1,0.1c1.2,0,2,0.2,2.5,0.5c0.5,0.4,0.8,1.1,0.8,2.1
-			C249.2,148.2,247.9,149.2,245.2,149.2z M242.7,146.3c0,0.6,0.2,1.1,0.5,1.3c0.4,0.2,1,0.4,2,0.4s1.6-0.1,2.1-0.4
-			c0.4-0.3,0.6-0.7,0.6-1.3s-0.1-1-0.4-1.2c-0.3-0.2-0.9-0.3-1.8-0.3l-1.9-0.1c-0.4,0.3-0.7,0.5-0.8,0.8
-			C242.8,145.7,242.7,146,242.7,146.3z M242.8,138.8c0,0.7,0.2,1.2,0.5,1.5s0.8,0.5,1.6,0.5c0.7,0,1.3-0.2,1.6-0.5
-			c0.3-0.3,0.5-0.8,0.5-1.5c0-0.7-0.2-1.2-0.5-1.5c-0.3-0.3-0.8-0.5-1.6-0.5c-0.7,0-1.3,0.2-1.6,0.5S242.8,138.1,242.8,138.8z"/>
-		<path d="M251,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2v6.6H251z"/>
-		<path d="M263.2,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1c-0.5-0.7-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1H258c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			S262.3,143.9,263.2,143.8z M262.7,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H262.7
-			z"/>
-		<path d="M269,137c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			s-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1c0-0.5-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8c0-0.9,0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2
-			C270.8,137,269.7,137,269,137z"/>
-		<path d="M277.3,137c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			s-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1c0-0.5-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8c0-0.9,0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2
-			C279.2,137,278.1,137,277.3,137z"/>
-	</g>
-</g>
-<g id="Layer_2">
-</g>
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
-	
-		<g id="Scroll_7_" transform="translate(76.483186, 92.413601) rotate(13.000000) translate(-76.483186, -92.413601) translate(6.483186, 59.913601)">
-		<path class="st2" d="M771.8,15.1c-0.2-2.1-0.4-4-0.5-5.4c4.2,1.6,12.8,3,14.4,3.1c9,0.3,12.5-8.2,12.9-18.3
-			c0.4-10.1-4.5-19-13.5-19.3c-6.9-0.2-51-4.7-69.4-5.3c-5.6-0.2-10.7,12.3-11,22.7c-0.1,2.1,2.9,6.7,8.1,12.4L771.8,15.1z"/>
-		<path class="st3" d="M722.7,1.1c9.3,2.5,23.6,5.1,42.8,7.9c0.1-6.3,0.7-12.7,1.8-17.2c1.3-5.7,4.5-10,9.5-12.9l-59.1-4.1
-			c-3.1,2.2-5.6,5.4-6.8,13.2C710.4-9.2,716.8-0.5,722.7,1.1z"/>
-		<path class="st4" d="M763.4-8.5c5.3-6.5,9.6-10.7,13-12.7l-59-4.2c-2.8,2.1-4.9,6.6-6.2,13.6C742.4-5.3,759.8-4.2,763.4-8.5z"/>
-		<g id="Group-3_9_" transform="translate(12.744498, 19.020401)">
-			<path class="st4" d="M764.5-34.3c-1.2,1.1-5.9,3.8-6.2,10.9c-0.1,3.5,0.5,8.4,1.1,11.6c8.3,1.9,14.6,3.5,15.4,2.4
-				c-2.7-0.8-4.7-2.5-6-5c-1-2-2.4-6.2-1.9-10.7c0.5-5.8,4-7.3,4.7-8L764.5-34.3z"/>
-			<path class="st3" d="M759.4-11.8c8.3,1.9,14.7,3.5,15.4,2.4c-2.7-0.8-4.8-2.4-6-5c-0.6-1.1-1.7-4-4.7-6.1c-2-1.4-4-1.8-5.9-1.3
-				C758.3-18.5,758.9-14.6,759.4-11.8z"/>
-			<path class="st3" d="M773.7-30.3c-1.6,1.6-2.4,3.7-2.5,6.4c0,0.6,0,1.3,0,1.9l6.2,1.1c0.1-0.3,0.2-1.8,0.1-3.1
-				c-0.1-1-0.5-3.2-1.6-4.6C775-29.7,773.8-30.3,773.7-30.3z"/>
-		</g>
-		<path id="Combined-Shape-Copy_9_" class="st2" d="M712.5-26.9l-1.2,7.7c1.7,0.5,2.9,0.7,3.7,0.7c1.6,0,3.3,0.6,2.5,0
-			c-0.4-0.3-2.3-1.5-3.4-2.1c-0.3-0.2-0.6-0.3-0.9-0.5c2,0.3,4.1,0.5,6.5,0.7c6.4,0.3,6.1,0,0.6-1.5c-1.1-0.3-2.5-0.6-4.2-1
-			c0.6-0.1,1.3-0.3,2.1-0.5c1.4-0.4,3.7-1.3,4.2-1.6c0.9-0.6-1.5-0.5-4.1-1.2C716.9-26.6,715-26.8,712.5-26.9z"/>
-	</g>
-	
-		<g id="Scroll_6_" transform="translate(76.483186, 92.413601) rotate(13.000000) translate(-76.483186, -92.413601) translate(6.483186, 59.913601)">
-		<path class="st2" d="M729.6,37.1c-0.2-2.1-0.4-4-0.5-5.4c4.2,1.6,12.8,3,14.4,3.1c9,0.3,12.5-8.2,12.9-18.3
-			c0.4-10.1-4.5-19-13.5-19.3c-6.9-0.2-51-4.7-69.4-5.3c-5.6-0.2-10.7,12.3-11,22.7c-0.1,2.1,2.9,6.7,8.1,12.4L729.6,37.1z"/>
-		<path class="st3" d="M680.5,23.1c9.3,2.5,23.6,5.1,42.8,7.9c0.1-6.3,0.7-12.7,1.8-17.2c1.3-5.7,4.5-10,9.5-12.9l-59.1-4.1
-			c-3.1,2.2-5.6,5.4-6.8,13.2C668.2,12.7,674.6,21.5,680.5,23.1z"/>
-		<path class="st4" d="M721.2,13.5c5.3-6.5,9.6-10.7,13-12.7l-59-4.2c-2.8,2.1-4.9,6.6-6.2,13.6C700.2,16.7,717.7,17.8,721.2,13.5z"
-			/>
-		<g id="Group-3_8_" transform="translate(12.744498, 19.020401)">
-			<path class="st4" d="M722.3-12.3c-1.2,1.1-5.9,3.8-6.2,10.9c-0.1,3.5,0.5,8.4,1.1,11.6c8.3,1.9,14.6,3.5,15.4,2.4
-				c-2.7-0.8-4.7-2.5-6-5c-1-2-2.4-6.2-1.9-10.7c0.5-5.8,4-7.3,4.7-8L722.3-12.3z"/>
-			<path class="st3" d="M717.2,10.2c8.3,1.9,14.7,3.5,15.4,2.4c-2.7-0.8-4.8-2.4-6-5c-0.6-1.1-1.7-4-4.7-6.1c-2-1.4-4-1.8-5.9-1.3
-				C716.1,3.5,716.7,7.4,717.2,10.2z"/>
-			<path class="st3" d="M731.5-8.3c-1.6,1.6-2.4,3.7-2.5,6.4c0,0.6,0,1.3,0,1.9l6.2,1.1c0.1-0.3,0.2-1.8,0.1-3.1
-				c-0.1-1-0.5-3.2-1.6-4.6C732.8-7.8,731.6-8.3,731.5-8.3z"/>
-		</g>
-		<path id="Combined-Shape-Copy_8_" class="st2" d="M670.4-4.9l-1.2,7.7c1.7,0.5,2.9,0.7,3.7,0.7c1.6,0,3.3,0.6,2.5,0
-			c-0.4-0.3-2.3-1.5-3.4-2.1c-0.3-0.2-0.6-0.3-0.9-0.5c2,0.3,4.1,0.5,6.5,0.7c6.4,0.3,6.1,0,0.6-1.5c-1.1-0.3-2.5-0.6-4.2-1
-			c0.6-0.1,1.3-0.3,2.1-0.5c1.4-0.4,3.7-1.3,4.2-1.6c0.9-0.6-1.5-0.5-4.1-1.2C674.7-4.6,672.8-4.8,670.4-4.9z"/>
-	</g>
-	
-		<g id="Scroll_5_" transform="translate(76.483186, 92.413601) rotate(13.000000) translate(-76.483186, -92.413601) translate(6.483186, 59.913601)">
-		<path class="st2" d="M748,3.1c-0.2-2.1-0.4-4-0.5-5.4c4.2,1.6,12.8,3,14.4,3.1c9,0.3,12.5-8.2,12.9-18.3
-			c0.4-10.1-4.5-19-13.5-19.3c-6.9-0.2-51-4.7-69.4-5.3c-5.6-0.2-10.7,12.3-11,22.7c-0.1,2.1,2.9,6.7,8.1,12.4L748,3.1z"/>
-		<path class="st3" d="M698.8-10.9c9.3,2.5,23.6,5.1,42.8,7.9c0.1-6.3,0.7-12.7,1.8-17.2c1.3-5.7,4.5-10,9.5-12.9l-59.1-4.1
-			c-3.1,2.2-5.6,5.4-6.8,13.2C686.5-21.2,693-12.5,698.8-10.9z"/>
-		<path class="st4" d="M739.6-20.5c5.3-6.5,9.6-10.7,13-12.7l-59-4.2c-2.8,2.1-4.9,6.6-6.2,13.6C718.6-17.3,736-16.2,739.6-20.5z"/>
-		<g id="Group-3_7_" transform="translate(12.744498, 19.020401)">
-			<path class="st4" d="M740.7-46.3c-1.2,1.1-5.9,3.8-6.2,10.9c-0.1,3.5,0.5,8.4,1.1,11.6c8.3,1.9,14.6,3.5,15.4,2.4
-				c-2.7-0.8-4.7-2.5-6-5c-1-2-2.4-6.2-1.9-10.7c0.5-5.8,4-7.3,4.7-8L740.7-46.3z"/>
-			<path class="st3" d="M735.6-23.8c8.3,1.9,14.7,3.5,15.4,2.4c-2.7-0.8-4.8-2.4-6-5c-0.6-1.1-1.7-4-4.7-6.1c-2-1.4-4-1.8-5.9-1.3
-				C734.5-30.5,735.1-26.5,735.6-23.8z"/>
-			<path class="st3" d="M749.9-42.3c-1.6,1.6-2.4,3.7-2.5,6.4c0,0.6,0,1.3,0,1.9l6.2,1.1c0.1-0.3,0.2-1.8,0.1-3.1
-				c-0.1-1-0.5-3.2-1.6-4.6C751.2-41.7,750-42.3,749.9-42.3z"/>
-		</g>
-		<path id="Combined-Shape-Copy_7_" class="st2" d="M688.7-38.9l-1.2,7.7c1.7,0.5,2.9,0.7,3.7,0.7c1.6,0,3.3,0.6,2.5,0
-			c-0.4-0.3-2.3-1.5-3.4-2.1c-0.3-0.2-0.6-0.3-0.9-0.5c2,0.3,4.1,0.5,6.5,0.7c6.4,0.3,6.1,0,0.6-1.5c-1.1-0.3-2.5-0.6-4.2-1
-			c0.6-0.1,1.3-0.3,2.1-0.5c1.4-0.4,3.7-1.3,4.2-1.6c0.9-0.6-1.5-0.5-4.1-1.2C693.1-38.6,691.2-38.8,688.7-38.9z"/>
-	</g>
-	<g>
-		<g id="Group-9_2_" transform="translate(115.000000, 1547.000000)">
-			<g id="Group-7_2_" transform="translate(343.000000, 192.000000)">
-				<path id="Oval_4_" class="st2" d="M120.4-1601.8c2,0,13.2-1.5,18.7-3.3c-1.8,19.2-15.8,89.2-9.9,105.1
-					c3.8,10.6,11.9,14.5,20.5,13.6c12.8-1.3,34.3-2.1,52.8-4.4c8.9-1.1,18-1.1,23.4-4.4c9.2-5.5,5.8-21.2,0-31.7
-					c-2.1-3.8-3.6-3-8.8-3c0-10.3,3.4-25.6,5.2-40.7c2.4-20.6,3.6-45.9,3.6-53.7c0-13.5-5.9-29.9-13.2-29.9
-					c-23.8,0-80.8,3.7-89.8,3.7c-11.6,0-18.3,11.2-18.3,24.3S108.8-1601.8,120.4-1601.8z"/>
-				<path class="st3" d="M134-1645.4l76.6-2.6c5.8,4.5,8.8,17,8.8,37.5s-2.9,47.3-8.8,80.2c-39.6,2-61.2,3.3-64.9,3.9
-					s-7,3.3-9.9,8.1c3.6-27.1,6.9-49.9,9.9-68.4c1.7-10.8,2.2-30.4,0-41.6C144.2-1635.7,140.3-1641.4,134-1645.4z"/>
-				<path id="Path_4_" class="st4" d="M150.2-1628.6c-6.6-8.5-12-14.1-16.2-16.8l76.5-2.6c3.6,2.8,6,8.6,7.4,17.5
-					C177.2-1623.6,154.6-1622.9,150.2-1628.6z"/>
-				<g id="Group-3_5_" transform="translate(14.000000, 24.000000)">
-					<path class="st4" d="M117.6-1661.7c1.6,1.4,7.5,5.2,7.5,14.3c0,4.6-1.1,10.8-2,14.9c-10.8,2-19,3.9-19.9,2.4
-						c3.6-0.9,6.2-3,8-6.2c1.4-2.6,3.3-8,3-13.8c-0.4-7.5-4.8-9.6-5.7-10.5L117.6-1661.7z"/>
-					<path class="st3" d="M123.2-1632.5c-10.8,2-19.1,3.8-20,2.3c3.6-0.9,6.2-2.9,8-6.1c0.8-1.4,2.4-5.1,6.3-7.6
-						c2.6-1.7,5.2-2.2,7.6-1.4C124.9-1641.1,124-1636,123.2-1632.5z"/>
-					<path class="st3" d="M105.6-1657c1.9,2.1,2.9,4.9,2.9,8.4c0,0.8,0,1.6-0.1,2.4l-8.1,1.1c-0.1-0.4-0.2-2.4,0-4
-						c0.2-1.3,0.8-4.1,2.3-5.9C103.9-1656.4,105.5-1657,105.6-1657z"/>
-					
-						<g id="Group-4_2_" transform="translate(99.916861, 186.391426) rotate(-356.000000) translate(-99.916861, -186.391426) translate(37.916861, 160.891426)">
-						<path id="Path-Copy-6_2_" class="st4" d="M44.5-1713.2c1.3-0.1,3.5,2.6,5.4,7.1c2.9,7.2-0.8,10.9-5.1,13.3
-							c-10.8,2-45.2,7.8-46.1,6.3c-13.7,4.7-19.7,5.4-17.9,2.2c1.4-2.6,0.8-4,0.5-9.8c-0.4-7.5-4.8-9.6-5.7-10.5L44.5-1713.2z"/>
-						<path id="Path-Copy-5_2_" class="st3" d="M52.4-1692.6c-1.6,7.3-39.7,9-49.8,10.7s-26.1,4.9-24.3,1.7c0.8-1.4,2.4-5.1,6.3-7.6
-							c2.5-1.6,25.5-10.4,43.7-13.5c12.1-2,18.7-4.9,19.6-8.5C54-1703.2,52.2-1694.8,52.4-1692.6z"/>
-						<path id="Path-Copy-2_2_" class="st3" d="M-27.8-1699.5c1.5,1.9,2.3,4.4,2.3,7.6c0,0.7,0,1.5-0.1,2.2l-6.4,1
-							c-0.1-0.3-0.2-2.1,0-3.6c0.1-1.2,0.6-3.7,1.8-5.3C-29.1-1698.9-27.9-1699.5-27.8-1699.5z"/>
-					</g>
-				</g>
-				<path id="Combined-Shape_2_" class="st2" d="M135-1542.9l0.8,8.8c2,0.1,3.5,0,4.4-0.2c1.8-0.4,3.8-0.3,2.8-0.7
-					c-0.5-0.2-3-1-4.4-1.4c-0.4-0.1-0.8-0.2-1.2-0.3c2.3-0.2,4.7-0.5,7.5-1.1c7.3-1.4,6.8-1.7,0.2-1.9c-1.3,0-3,0-5,0.1
-					c0.7-0.3,1.4-0.7,2.2-1.1c1.5-0.8,3.8-2.4,4.2-2.9c0.8-0.9-1.8-0.1-4.9-0.2C140-1543.9,137.8-1543.6,135-1542.9z"/>
-				<path id="Combined-Shape-Copy_2_" class="st2" d="M216.6-1649.5l1.2,9.9c-2.2,0.6-3.8,0.8-4.8,0.8c-2.1-0.1-4.3,0.6-3.2-0.2
-					c0.5-0.4,3-1.8,4.5-2.6c0.4-0.2,0.8-0.4,1.2-0.6c-2.6,0.3-5.3,0.5-8.5,0.6c-8.3,0.1-7.8-0.3-0.7-2c1.4-0.3,3.3-0.7,5.5-1.1
-					c-0.8-0.2-1.7-0.4-2.6-0.7c-1.8-0.6-4.7-1.8-5.3-2.2c-1.1-0.8,1.9-0.6,5.3-1.4C211-1649.4,213.4-1649.6,216.6-1649.5z"/>
-			</g>
-		</g>
-		<g>
-			<path d="M612.7,161c-0.4,2.6,0.7,5.4,1.6,7.8c0.5,1.3,2.1,1.3,2.7,0c1.1-2.7,2.7-5.1,4.6-7.2c1.5-1.6,4-2.8,4.8-4.8
-				c0.3-0.7-0.4-1.4-1.1-1.4c-2.6-0.1-5.1,3.2-6.6,5c-1.9,2.3-3.4,4.9-4.5,7.7c0.9,0,1.8,0,2.7,0c-0.9-2.3-1.5-5.2-2.9-7.2
-				C613.8,160.4,612.8,160.3,612.7,161L612.7,161z"/>
-		</g>
-		<g>
-			<path d="M613.2,144.7c-2.3,1.3,0,5.9,1,7.4c0.4,0.7,1.2,0.7,1.8,0.2c1.9-1.6,3.8-3.2,5.7-4.9c1.6-1.4,3.9-2.8,4.9-4.8
-				c0.4-0.7-0.2-1.8-1.2-1.5c-2.1,0.7-3.6,2.6-5.2,4.1c-2,1.8-3.9,3.6-5.8,5.4c0.6,0.1,1.2,0.2,1.8,0.2c-1-1.4-1.5-2.9-1.9-4.6
-				c-0.2-0.9-0.1-1.1-0.8-1.6C613.4,144.7,613.3,144.7,613.2,144.7L613.2,144.7z"/>
-		</g>
-		<g>
-			<path d="M613.6,131.3c-0.3,2.6,1.4,7.9,4.7,5c1.6-1.4,2.7-3.8,4-5.6c1.5-2.1,3.5-4,4.9-6.2c1-1.6-1.1-2.9-2.4-1.9
-				c-2.2,1.9-4,4.8-5.6,7.3c-0.7,1-1.4,3.2-2.4,3.9c-0.1,0.2-0.2,0.3-0.3,0.5c-0.3-0.6-0.6-1.2-0.8-1.8c-0.2-0.6-0.4-1-0.8-1.6
-				C614.6,130.3,613.7,130.6,613.6,131.3L613.6,131.3z"/>
-		</g>
-		<g>
-			<g>
-				<path d="M633.6,128.7C633.6,128.7,633.6,128.7,633.6,128.7C633.6,128.7,633.6,128.7,633.6,128.7L633.6,128.7z"/>
-			</g>
-		</g>
-		<g>
-			<path d="M633.5,128.5c5.4,1.2,11.6,0.2,17.1,0.1c2.9,0,5.8-0.1,8.8-0.1c2.8,0,5.8,0.3,8.6-0.2c1.4-0.3,1.4-2.5,0-2.9
-				c-2.6-0.6-5.4-0.4-8.1-0.4c-3.1,0-6.2,0.1-9.3,0.3c-5.4,0.3-12,0.1-17.1,2.3C633.1,127.8,633,128.4,633.5,128.5L633.5,128.5z"/>
-		</g>
-		<g>
-			<path d="M631.7,145.4c6-0.1,12-0.2,18-0.4c2.9-0.1,5.8-0.1,8.8-0.1c2.7,0,6,0.7,8.6-0.3c0.9-0.4,1.4-1.8,0.3-2.3
-				c-2.3-1.1-5.2-0.8-7.8-0.9c-3.3,0-6.6,0-9.9,0.1c-6.2,0.2-12.2,0.9-18.3,2C630.5,143.8,630.7,145.4,631.7,145.4L631.7,145.4z"/>
-		</g>
-		<g>
-			<path d="M631.1,163c2.6,0.6,5.5,0.5,8.2,0.5c2.7,0,5.6,0.3,8.3-0.4c1.3-0.3,1.3-2.3,0-2.6c-2.7-0.6-5.6-0.2-8.3-0.1
-				c-2.7,0.1-5.6,0.1-8.2,0.8C630.2,161.4,630.2,162.8,631.1,163L631.1,163z"/>
-		</g>
-	</g>
-	
-		<g id="Group_2_" transform="translate(260.366293, 119.699418) rotate(-3.000000) translate(-260.366293, -119.699418) translate(198.866293, 3.699418)">
-		<path id="Fill-1-Copy_2_" d="M501,141.9c-1.3,0.3-2.6,0.5-3.9,0.8c-0.2,0-0.3,0.1-0.5,0.1c-0.1,0-0.2-0.1-0.2-0.1
-			c0-0.1,0.1-0.1,0.2-0.1c0.1-0.1,0.2-0.1,0.4-0.2c2.3-1,4.5-2.1,6.8-3.1c1.7-0.8,3.5-1.3,5-2.4c2.2-1.6,4.4-3.4,6.6-5.1
-			c2.3-1.8-0.5,0.5,1.9-1.3c-2.5-0.4-4.9-0.1-7.3-0.3c3-0.6,6-1.2,9-1.1c0.2,0,0.4-0.1,0.6-0.2c3.4-2.7,3.3-3.4,6.9-5.8
-			c1.4-0.9,2.7-1.9,4.2-2.9c-2.2-0.2-4,0-5.9,0.2c-0.2,0.1-0.4,0.1-0.6,0c-0.2,0-0.3,0.1-0.5,0.1l-0.3,0.1c-0.1,0-0.2,0-0.3-0.1
-			c0-0.2,0.1-0.1,0.2-0.1c0.1-0.1,0.1-0.2,0.3-0.1c0.1-0.2,0.3-0.2,0.4-0.1c0.2,0,0.4-0.1,0.6-0.1c1.6-0.6,3.2-0.8,4.8-0.9
-			c1.8,0,3.6-0.3,5-1.6c1.5-1.4,3-2.7,4.6-4c-0.3-0.2-0.5-0.3-0.7-0.3c-2.1,0.2-4.1,0.4-6.2,0.6c-0.5,0-0.5,0.1-1-0.2
-			c3.1-0.9,6.5-1.9,9.7-2.2c0.4,0,1.5-0.9,1.7-1.1c1.2-1.3,1.4-1.8,2.5-3.2c1.9-2.4,3.7-4.9,4.3-8c0.4-2-0.4-3.2-2.3-3.8
-			c-0.9-0.3-1.9-0.4-2.9-0.4c-3.7,0-7.3,0.8-10.9,1.5c-2.4,0.5-4.6,1.3-6.3,3.3c-0.3,0.3-0.6,0.7-1.2,0.7c0.7-0.9,1.6-1.5,2.3-2.5
-			c-0.3,0.1-0.5,0.1-0.6,0.1c-6.2,1.7-3.8,1.1-9.3,4.5c-2.2,1.3-5.1,3.9-6.3,6.2c-0.8,1.5-3.2,3.9-4.1,5.4c0,0-7.9,7.9-7.9,7.9
-			l9.1-14.4c-1.3,0.9-2.5,1.7-3.6,2.5c-6.5,4.7-7.6,5.6-13.7,10.8c-4.1,3.5-3,1.6-5.9,6.2c-1.1,1.8-2.3,3.5-3.9,5.3
-			c0.7-1.7,1.3-3.2,1.9-4.7c-3.8,2.3-4.7,6.4-7,9.7c0.3-1.2,0.7-2.5,1-3.7c-2,1.8-3.7,3.6-5.2,5.7c-2.4,3.1-4.3,6.4-5.1,10.3
-			c0,0.1,0,0.2-0.1,0.2c-0.1,0-0.1-0.1-0.1-0.2c-1.8-1.9-1.8-4.1-1-6.5c-1.3,2.2-1.6,4.4-0.2,6.7c0.6,1,1,2.1,1.2,3.2
-			c0.2,1.2,0,2.2-0.8,3.1c-2,2.1-4,4.3-5.9,6.5c-2.8,3.2-5.7,6.4-8.3,9.8c-1,1.3-1.8,2.7-1.4,4.6c0.2-0.1,0.3-0.2,0.3-0.3
-			c4.8-6.2,9.7-12.2,15-18c3.9-4.2,7-8.4,11-12.9c2.1-2.3,6.6-7.6,15.5-14.7c12.3-9.8,24.4-16.5,26.4-17.3c0.5-0.2,3-0.4,3-0.4
-			c-1.2,0.8-2.4,1.6-3.5,2.4c-2.9,2-32.6,24.3-41.4,33.4c-2.4,2.4-4.7,4.9-7,7.4c1.9,0.5,2.5,2.5,4.1,3.2c-0.5-1-1.4-1.7-1.7-2.9
-			c2.6,1.6,15.1-0.1,14.3-0.5c-0.8-0.4-10.8,1.4-12.8-0.2c5.8-1.4,10.8-4.3,15.8-7.4c-1.2-0.4-2.4-0.2-3.6-0.8
-			c1.7-0.1,3.2-0.3,4.8-0.4c0.6,0,1.1-0.2,1.6-0.5c4.8-3.1,4.1-1.2,8.6-4.6c0.2-0.1,0.5-0.2,0.4-0.5
-			C501.5,141.7,501.2,141.8,501,141.9z M506.3,147.3c-0.3,0.3-0.7,0.6-1,0.8c-0.1,0.1-0.2,0.1-0.2,0.1c-2.3,1.6-3.8,2.5-5.7,3.1
-			c-0.1,0-0.2,0.1-0.2,0.1c-0.5,0.2-0.8,0.3-1.1,0.4l-4.4,2.7c0.2,0.5,0.2,1.1,0.3,1.7c0,1.7-0.5,3.2-1.4,4.4
-			c-0.5,0.6-1,1.1-1.6,1.5c-0.8,0.6-1.5,0.8-2.3,1.1c-0.6,0.2-1.2,0.3-2,0.4c-0.8,0.1-1.7,0.3-2.6,0.4l4.1,8.9l-16.3-6.8
-			c-0.7-0.3-1.4-0.6-1.9-1c-4.4,4.9-8.7,10.1-13.1,15.8c-0.1,0.2-0.1,0.2-0.3,0.3c-0.5,0.6-1.6,1.5-1.1,1l-8.9,7.4l-2.3-11.4
-			c-0.4-2.2-0.2-4.3,0.5-6.3c0.5-1.4,1.2-2.5,2.1-3.7c2-2.7,3.7-4.7,7.5-9c0.1-0.1,0.1-0.1,0.2-0.3c0.4-0.4,0.6-0.7,0.9-1
-			c1.6-1.8,3.1-3.5,4.6-5.1c-2.4-4.4-2.1-9.1,0.4-13.4l3,1.4c1-2,2.3-4,3.9-6c1.9-2.5,3.9-4.6,6.1-6.6l1.4-1.3
-			c0.2-0.2,0.3-0.5,0.5-0.7c1.4-1.9,3-3.5,5-4.7l1.2-0.7c0.1-0.1,0.1-0.2,0.2-0.3c0.7-1,1.3-1.8,2.2-2.5c0.2-0.2,2.3-1.7,3.3-2.6
-			c6.4-5.5,7.7-6.5,14.1-11.1c0.1-0.1,0.3-0.2,0.4-0.3c0.7-0.5,3.5-2.4,3.3-2.3l28-19.5l-5.4,8.5c1.3-0.5,2.7-0.9,4.2-1.3
-			c0.2,0,0.4-0.1,0.7-0.1c0.1,0,0.1,0,0.2,0c5.4-1.1,8-1.5,11.5-1.5c1.7,0,3.3,0.3,4.8,0.7c5.2,1.6,8,6.2,7,11.6
-			c-0.8,4.1-2.5,7.2-5.7,11.1c-0.3,0.4-0.4,0.5-0.8,1.1l0.9,0.6l-2.6,2l1.5,0.2l-10.4,7.2c0,0,0,0,0,0c-1,0.9-2,1.6-3.1,2.1
-			l-1.6,1.1c-0.1,0-0.3,0.2-0.7,0.5l-7.8,6.1c-0.7,0.7-1.4,1.2-2.4,2c0,0,0,0,0,0c-0.1,0.1-0.3,0.2-0.4,0.3
-			c-0.2,0.2-0.5,0.3-0.7,0.5l-1.1,0.9c-0.7,0.6-1.1,0.8-1.4,1c-0.1,0.1-0.1,0.1-0.3,0.2c-0.1,0-0.1,0.1-0.2,0.1c0,0,0,0,0,0
-			c-0.5,0.4-1,0.8-2,1.5l0,0c-2.3,1.8-3.4,2.7-4.8,3.7c-1.4,1-2.5,1.5-4.7,2.4C507.6,145.8,507,146.6,506.3,147.3z M472.1,144.6
-			c-1.3-1.1-2.9-1.7-4.5-1.7l4.3,2C472,144.8,472.1,144.7,472.1,144.6z M522.7,120.2C522.7,120.2,522.7,120.2,522.7,120.2
-			C522.7,120.2,522.7,120.2,522.7,120.2C522.6,120.2,522.7,120.2,522.7,120.2z M506,105.5C506,105.5,506,105.5,506,105.5
-			C506,105.5,506,105.5,506,105.5L506,105.5z"/>
-		<path id="Fill-1_2_" class="st3" d="M501,141.9c0.2,0,0.5-0.2,0.7,0.1c0.1,0.3-0.2,0.4-0.4,0.5c-4.6,3.4-3.9,1.5-8.6,4.6
-			c-0.5,0.3-1,0.5-1.6,0.5c-1.5,0.1-3.1,0.2-4.8,0.4c1.2,0.6,2.4,0.4,3.6,0.8c-5,3.1-10,6-15.8,7.4c2,1.7,12-0.2,12.8,0.2
-			c0.8,0.4-11.7,2.1-14.3,0.5c0.3,1.1,1.3,1.8,1.7,2.9c-1.6-0.7-2.3-2.7-4.1-3.2c2.2-2.6,4.6-5,7-7.4c8.9-9.1,38.5-31.4,41.4-33.4
-			c1.2-0.8,2.4-1.6,3.5-2.4c0,0-2.6,0.2-3,0.4c-1.9,0.9-14.1,7.6-26.4,17.3c-8.9,7.1-13.4,12.4-15.5,14.7c-4,4.6-7.1,8.7-11,12.9
-			c-5.3,5.8-10.2,11.8-15,18c-0.1,0.1-0.2,0.1-0.3,0.3c-0.4-1.9,0.5-3.3,1.4-4.6c2.5-3.4,5.4-6.6,8.3-9.8c1.9-2.2,3.9-4.4,5.9-6.5
-			c0.9-0.9,1.1-1.9,0.8-3.1c-0.2-1.2-0.6-2.2-1.2-3.2c-1.3-2.3-1.1-4.5,0.2-6.7c-0.8,2.4-0.8,4.6,1,6.5c0,0.1,0,0.2,0.1,0.2
-			c0,0,0.1-0.2,0.1-0.2c0.8-3.9,2.8-7.2,5.1-10.3c1.6-2,3.3-3.9,5.2-5.7c-0.3,1.2-0.7,2.5-1,3.7c2.2-3.3,3.2-7.4,7-9.7
-			c-0.6,1.5-1.2,3-1.9,4.7c1.5-1.7,2.8-3.5,3.9-5.3c2.9-4.7,1.8-2.8,5.9-6.2c6.1-5.2,7.2-6.1,13.7-10.8c1.2-0.8,2.3-1.6,3.6-2.5
-			l-9.1,14.4c0,0,7.9-7.9,7.9-7.9c0.9-1.5,3.3-3.9,4.1-5.4c1.1-2.3,4.1-4.9,6.3-6.2c5.5-3.4,3.1-2.8,9.3-4.5c0.2,0,0.3-0.1,0.6-0.1
-			c-0.6,1-1.5,1.6-2.3,2.5c0.6,0,1-0.4,1.2-0.7c1.6-2,3.8-2.8,6.3-3.3c3.6-0.8,7.2-1.6,10.9-1.5c1,0,2,0.1,2.9,0.4
-			c1.9,0.6,2.7,1.8,2.3,3.8c-0.6,3.1-2.4,5.6-4.3,8c-1.1,1.4-1.3,1.9-2.5,3.2c-0.2,0.2-1.4,1.1-1.7,1.1c-3.3,0.3-6.6,1.3-9.7,2.2
-			c0.5,0.3,0.5,0.2,1,0.2c2.1-0.2,4.1-0.4,6.2-0.6c0.2,0,0.4,0.1,0.7,0.3c-1.6,1.3-3.1,2.6-4.6,4c-1.4,1.3-3.2,1.6-5,1.6
-			c-1.6,0-3.3,0.3-4.8,0.9c-0.2,0-0.4,0.1-0.6,0.1c-0.2,0-0.3,0-0.4,0.1c-0.1,0-0.2,0-0.3,0.1c-0.1,0-0.2-0.1-0.2,0.1
-			c0,0,0.2,0,0.3,0.1l0.3-0.1c0.2,0,0.3-0.1,0.5-0.1c0.2,0.1,0.4,0,0.6,0c1.9-0.2,3.7-0.4,5.9-0.2c-1.5,1.1-2.9,2-4.2,2.9
-			c-3.6,2.4-3.5,3.1-6.9,5.8c-0.2,0.1-0.3,0.3-0.6,0.2c-3.1-0.1-6,0.5-9,1.1c2.4,0.2,4.7-0.1,7.3,0.3c-2.4,1.9,0.4-0.4-1.9,1.3
-			c-2.2,1.7-4.3,3.5-6.6,5.1c-1.5,1.1-3.3,1.6-5,2.4c-2.2,1.1-4.5,2.1-6.8,3.1c-0.1,0.1-0.2,0.1-0.4,0.2c-0.1,0-0.2-0.1-0.2,0.1
-			c0,0,0.1,0.1,0.2,0.1c0.2,0,0.3-0.1,0.5-0.1C498.4,142.4,499.7,142.1,501,141.9z"/>
-		<path class="st4" d="M470.6,156.8c1.1-1.4,2.3-2.7,3.5-4.1c1.1-1.1,2.2-2.2,3.2-3.4c3.4-3.5,9.8-8.9,16.6-14.4
-			C493.6,136.2,471.3,157,470.6,156.8z M497.7,127.5l5.3-8.4c2.3-2.3,5-5,5-5c0.9-1.5,3.3-3.9,4.1-5.4c1.2-2.3,4.1-4.9,6.3-6.2
-			c5.5-3.4,3.1-2.8,9.3-4.5c0.2,0,0.3-0.1,0.6-0.1c-0.6,1-1.5,1.6-2.3,2.5c0.6,0,1-0.4,1.2-0.7c1.6-2,3.8-2.8,6.2-3.3
-			c3.6-0.8,7.2-1.6,10.9-1.5c1,0,2,0.1,2.9,0.4c1.9,0.6,2.7,1.8,2.3,3.8c-0.4,2.4-1.6,4.4-2.9,6.2c0.3-1.9-0.4-3.1-2.3-3.7
-			c-0.9-0.3-1.9-0.4-2.9-0.4c-3.7,0-7.3,0.8-10.9,1.5c-2.4,0.5-4.6,1.3-6.2,3.3c-0.3,0.3-0.6,0.7-1.2,0.7c0.7-0.9,1.6-1.5,2.3-2.5
-			c-0.3,0.1-0.5,0.1-0.6,0.1c-6.2,1.7-3.8,1.1-9.3,4.5c-2.2,1.3-5.1,3.9-6.3,6.2c-0.8,1.5-3.2,3.9-4.1,5.4c0,0-3.8,3.8-6.2,6.2
-			C498.5,126.9,498.1,127.2,497.7,127.5z M464.4,160.9c-1.4,1.5-12.1,14.4-13.4,16c-0.3-1.8,10-14.5,10.9-15.7
-			C464.5,157.8,467.5,157,464.4,160.9z M466.3,149.9c-1.3-2.3-1.1-4.5,0.2-6.7c-0.8,2.3-0.8,4.4,0.8,6.3c-0.2,0.4-0.4,0.8-0.7,1.2
-			C466.6,150.4,466.5,150.1,466.3,149.9z M472.9,139.3c1.6-2,3.3-3.9,5.2-5.7c-0.3,1.3-0.7,2.5-1,3.8c2.2-3.3,3.2-7.4,7-9.7
-			c-0.6,1.5-1.2,3-1.9,4.7c1.5-1.7,2.8-3.5,3.9-5.3c2.9-4.7,1.8-2.8,5.9-6.2c6.1-5.2,7.2-6.1,13.7-10.8c1.2-0.8,2.3-1.6,3.6-2.5
-			l-4.9,7.7c-0.6,0.4-1.1,0.8-1.7,1.2c-6.5,4.7-7.6,5.6-13.7,10.8c-4.1,3.5-3,1.6-5.9,6.2c-1.1,1.8-2.3,3.5-3.9,5.3
-			c0.7-1.7,1.3-3.2,1.9-4.7c-3.8,2.3-4.7,6.4-7,9.7c0.3-1.3,0.7-2.5,1-3.8c-2,1.8-3.7,3.7-5.2,5.7c-0.7,0.9-1.3,1.7-1.9,2.7
-			C469,145,470.8,142.1,472.9,139.3z"/>
-	</g>
-</g>
-</svg>

File diff suppressed because it is too large
+ 0 - 10
img/pm-section_new.svg


+ 0 - 311
img/release-section.svg

@@ -1,311 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 882 300" style="enable-background:new 0 0 882 300;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#C4C3C6;}
-	.st1{fill:#FFFFFF;}
-	.st2{fill-rule:evenodd;clip-rule:evenodd;}
-	.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#C4C3C6;}
-	.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
-	.st5{fill:#010101;}
-	.st6{fill:none;}
-	.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#B1B2B7;}
-	.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;}
-	.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;}
-</style>
-<g id="Layer_4">
-	<path class="st0" d="M875.8,209.1H5.8c-3.3,0-6-2.7-6-6V6.1c0-3.3,2.7-6,6-6h870c3.3,0,6,2.7,6,6v197
-		C881.8,206.4,879.1,209.1,875.8,209.1z"/>
-	<g>
-		<path d="M68.4,144.9h-6.9v-12.5h1.4v11.2h5.5V144.9z"/>
-		<path d="M75.9,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S75,143.9,75.9,143.8z M75.5,139.9
-			c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H75.5z"/>
-		<path d="M85.3,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7c-0.8,0-1.5-0.2-1.9-0.7
-			c-0.4-0.5-0.6-1.1-0.6-2c0-0.9,0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7
-			C85,136.9,85.3,137.6,85.3,138.6z M79.7,142.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C79.8,141.4,79.7,141.8,79.7,142.3z"/>
-		<path d="M87.9,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2v6.6H87.9z"/>
-		<path d="M95.5,144.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8H100v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V144.9z"/>
-		<path d="M114.1,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7c-0.8,0-1.5-0.2-1.9-0.7
-			c-0.4-0.5-0.6-1.1-0.6-2c0-0.9,0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7
-			C113.9,136.9,114.1,137.6,114.1,138.6z M108.6,142.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C108.7,141.4,108.6,141.8,108.6,142.3z"/>
-		<path d="M120.8,135.7c1.2,0,2.1,0.3,2.5,1c0.5,0.7,0.7,1.9,0.7,3.6s-0.3,2.9-0.9,3.6c-0.6,0.7-1.7,1.1-3.3,1.1
-			c-0.5,0-1.3,0-2.5-0.1l-0.5-0.1V132h1.3v4.4C119.1,136,119.9,135.7,120.8,135.7z M119.8,143.9c1.2,0,2-0.3,2.3-0.8
-			c0.4-0.5,0.6-1.4,0.6-2.7c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-0.8-0.8-1.6-0.8c-0.7,0-1.4,0.1-2.1,0.4l-0.4,0.1v6.3
-			C118.9,143.9,119.5,143.9,119.8,143.9z"/>
-		<path d="M125.9,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1s0.9,1.9,0.9,3.6s-0.3,2.8-0.8,3.6
-			c-0.6,0.7-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C126.2,143.2,125.9,142,125.9,140.4z M127.3,140.4c0,1.3,0.2,2.2,0.5,2.8
-			c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8s0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7c-0.9,0-1.6,0.2-1.9,0.7
-			C127.4,138.2,127.3,139.1,127.3,140.4z"/>
-		<path d="M141.4,135.9h1.4v9h-1.4v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-1.2,0-2-0.3-2.4-1c-0.4-0.6-0.6-1.8-0.6-3.5v-4.7h1.4v4.7
-			c0,1.3,0.1,2.2,0.3,2.6s0.7,0.7,1.5,0.7c0.4,0,0.8-0.1,1.2-0.2c0.4-0.1,0.7-0.2,0.9-0.3l0.3-0.2V135.9z"/>
-		<path d="M150,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path d="M155.6,148.9v-13h1.3v0.6c0.9-0.6,1.8-0.8,2.7-0.8c1.1,0,2,0.4,2.5,1.1c0.5,0.7,0.8,1.9,0.8,3.6s-0.3,2.9-0.9,3.6
-			c-0.6,0.7-1.6,1.1-3,1.1c-0.7,0-1.4-0.1-2-0.2v4H155.6z M159.4,136.9c-0.4,0-0.7,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-1,0.4l-0.3,0.2v6.1
-			c0.9,0.1,1.5,0.2,1.9,0.2c1,0,1.7-0.3,2-0.8s0.6-1.5,0.6-2.7s-0.2-2.1-0.5-2.7C160.7,137.2,160.1,136.9,159.4,136.9z"/>
-		<path d="M165.2,144.9V132h1.4v12.9H165.2z"/>
-		<path d="M175.6,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7c-0.8,0-1.5-0.2-1.9-0.7
-			c-0.4-0.5-0.6-1.1-0.6-2c0-0.9,0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7
-			C175.4,136.9,175.6,137.6,175.6,138.6z M170.1,142.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C170.2,141.4,170.1,141.8,170.1,142.3z"/>
-		<path d="M179.6,144.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.3v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V144.9z"/>
-		<path d="M190.8,136.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			c0,0.9-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1s-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2
-			C192.6,137,191.5,136.9,190.8,136.9z"/>
-		<path d="M206.6,138.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7c-0.8,0-1.5-0.2-1.9-0.7
-			c-0.4-0.5-0.6-1.1-0.6-2c0-0.9,0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4s1.8,0.2,2.2,0.7
-			C206.4,136.9,206.6,137.6,206.6,138.6z M201.1,142.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C201.2,141.4,201.1,141.8,201.1,142.3z"/>
-		<path d="M210.6,144.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.3v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V144.9z"/>
-		<path d="M225.9,132v12.9h-1.3v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-0.5,0-0.9-0.1-1.3-0.2c-0.4-0.1-0.7-0.3-1-0.6c-0.6-0.6-1-1.8-1-3.6
-			c0-1.7,0.3-3,0.9-3.8s1.5-1.2,2.9-1.2c0.7,0,1.4,0.1,2.2,0.2v-4H225.9z M221.2,143.8c0.2,0.1,0.5,0.1,0.8,0.1
-			c0.3,0,0.7-0.1,1.2-0.2c0.4-0.1,0.8-0.2,1-0.3l0.4-0.2v-6.1c-0.8-0.1-1.5-0.2-2.1-0.2c-0.9,0-1.5,0.3-1.9,0.9
-			c-0.4,0.6-0.5,1.5-0.5,2.7c0,1.4,0.2,2.3,0.6,2.8C220.8,143.5,221,143.7,221.2,143.8z"/>
-		<path d="M235.3,136.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			c0,0.9-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1s-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2C237.1,137,236,136.9,235.3,136.9
-			z"/>
-		<path d="M240.8,148.9v-13h1.3v0.6c0.9-0.6,1.8-0.8,2.7-0.8c1.1,0,2,0.4,2.5,1.1c0.5,0.7,0.8,1.9,0.8,3.6s-0.3,2.9-0.9,3.6
-			c-0.6,0.7-1.6,1.1-3,1.1c-0.7,0-1.4-0.1-2-0.2v4H240.8z M244.6,136.9c-0.4,0-0.7,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-1,0.4l-0.3,0.2v6.1
-			c0.9,0.1,1.5,0.2,1.9,0.2c1,0,1.7-0.3,2-0.8s0.6-1.5,0.6-2.7s-0.2-2.1-0.5-2.7C245.8,137.2,245.3,136.9,244.6,136.9z"/>
-		<path d="M256.4,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S255.5,143.9,256.4,143.8z
-			 M255.9,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H255.9z"/>
-		<path d="M262.7,135.7c0.4,0,1.1,0.1,2,0.2l0.4,0.1l-0.1,1.1c-1-0.1-1.7-0.2-2.1-0.2c-1,0-1.7,0.2-2.1,0.7
-			c-0.4,0.5-0.5,1.4-0.5,2.7s0.2,2.2,0.5,2.7c0.3,0.5,1.1,0.8,2.1,0.8l2.1-0.2l0.1,1.1c-1.1,0.2-2,0.3-2.5,0.3
-			c-1.4,0-2.4-0.4-2.9-1.1c-0.5-0.7-0.8-1.9-0.8-3.6s0.3-2.9,0.9-3.6C260.4,136.1,261.4,135.7,262.7,135.7z"/>
-		<path d="M270.1,136.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			c0,0.9-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1s-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2
-			C271.9,137,270.8,136.9,270.1,136.9z"/>
-		<path d="M281.3,137.1v7.8h-1.4v-7.8h-1.1v-1.2h1.1v-0.8c0-1.3,0.2-2.1,0.5-2.6c0.4-0.5,1-0.7,1.9-0.7l1.8,0.1l0,1.1
-			c-0.7,0-1.2,0-1.7,0s-0.8,0.1-0.9,0.4c-0.2,0.3-0.3,0.8-0.3,1.7v0.8h2.6v1.2H281.3z"/>
-		<path d="M285,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1s0.9,1.9,0.9,3.6s-0.3,2.8-0.8,3.6
-			c-0.6,0.7-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C285.2,143.2,285,142,285,140.4z M286.3,140.4c0,1.3,0.2,2.2,0.5,2.8
-			c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8s0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7c-0.9,0-1.6,0.2-1.9,0.7
-			C286.5,138.2,286.3,139.1,286.3,140.4z"/>
-		<path d="M294.9,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2v6.6H294.9z"
-			/>
-		<path d="M304.7,140.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1s0.9,1.9,0.9,3.6s-0.3,2.8-0.8,3.6
-			c-0.6,0.7-1.6,1.1-3,1.1c-1.5,0-2.5-0.4-3-1.1C304.9,143.2,304.7,142,304.7,140.4z M306,140.4c0,1.3,0.2,2.2,0.5,2.8
-			c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8s0.5-1.4,0.5-2.8c0-1.3-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7c-0.9,0-1.6,0.2-1.9,0.7
-			C306.2,138.2,306,139.1,306,140.4z"/>
-		<path d="M320.2,135.9h1.4v9h-1.4v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-1.2,0-2-0.3-2.4-1c-0.4-0.6-0.6-1.8-0.6-3.5v-4.7h1.4v4.7
-			c0,1.3,0.1,2.2,0.3,2.6s0.7,0.7,1.5,0.7c0.4,0,0.8-0.1,1.2-0.2c0.4-0.1,0.7-0.2,0.9-0.3l0.3-0.2V135.9z"/>
-		<path d="M324.1,144.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5c-0.5,0.2-1,0.4-1.3,0.5l-0.5,0.2v6.6H324.1z"
-			/>
-		<path d="M339,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path d="M346.7,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S345.8,143.9,346.7,143.8z
-			 M346.3,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H346.3z"/>
-		<path d="M352.5,136.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			c0,0.9-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1s-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2
-			C354.4,137,353.3,136.9,352.5,136.9z"/>
-		<path d="M362.7,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path d="M365.7,144.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1s0.6,1.8,0.6,3.5v4.8h-1.3v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V144.9z"/>
-		<path d="M380.2,143.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5c0-3.2,1.3-4.7,3.8-4.7
-			c1.2,0,2.1,0.3,2.7,1c0.6,0.7,0.9,1.7,0.9,3.2l-0.1,1H375c0,1,0.2,1.7,0.5,2.2s1,0.7,1.9,0.7S379.3,143.9,380.2,143.8z
-			 M379.7,139.9c0-1.1-0.2-1.9-0.5-2.3s-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7c-0.4,0.5-0.6,1.2-0.6,2.3H379.7z"/>
-		<path d="M387.8,137.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V137.1z"/>
-		<path d="M392.2,136.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.4,0.9s1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8c0.4,0.3,0.7,1,0.7,1.9
-			c0,0.9-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2c1.4,0.2,2.4,0.3,3.1,0.3
-			c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1s-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5c-1.1-0.2-1.8-0.4-2.2-0.7
-			c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9s1.4-0.6,2.3-0.6c0.7,0,1.6,0.1,2.8,0.3l0.5,0.1l0,1.2C394.1,137,393,136.9,392.2,136.9
-			z"/>
-	</g>
-	<g>
-		<path d="M67.8,87.9v12.7h-3.7V67.4h12.3c3.5,0,6.2,0.8,7.9,2.4c1.8,1.6,2.7,4.2,2.7,7.6c0,5.1-2,8.3-6.1,9.6l6.4,13.5h-4.1
-			l-6-12.7H67.8z M76.4,84.6c4.5,0,6.8-2.3,6.8-7s-2.3-7-6.8-7h-8.6v14H76.4z"/>
-		<path d="M108.9,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3c0-8.4,3.3-12.6,10-12.6
-			c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7H95.2c0,2.7,0.5,4.6,1.4,5.9c1,1.3,2.6,1.9,5,1.9
-			C104,97.9,106.4,97.8,108.9,97.6z M107.6,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8c-2.1,0-3.7,0.6-4.8,1.9
-			c-1.1,1.3-1.6,3.3-1.7,6.1H107.6z"/>
-		<path d="M117.1,100.6V66.1h3.6v34.5H117.1z"/>
-		<path d="M144.2,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3c0-8.4,3.3-12.6,10-12.6
-			c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9c1,1.3,2.6,1.9,5,1.9S141.8,97.8,144.2,97.6
-			z M142.9,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8s-3.7,0.6-4.8,1.9c-1.1,1.3-1.6,3.3-1.7,6.1H142.9z"/>
-		<path d="M169.1,83.9v12.3c0.1,1.2,1,1.9,2.8,2.1l-0.1,2.8c-2.5,0-4.4-0.6-5.7-1.9c-2.9,1.3-5.8,1.9-8.6,1.9c-2.2,0-3.9-0.6-5-1.9
-			c-1.2-1.2-1.7-3-1.7-5.4s0.6-4.1,1.8-5.2c1.2-1.1,3-1.8,5.6-2l7.5-0.7v-2.1c0-1.6-0.4-2.8-1.1-3.5c-0.7-0.7-1.7-1.1-2.9-1.1
-			c-2.6,0-5.2,0.2-8,0.5l-1.5,0.1l-0.1-2.7c3.5-0.7,6.6-1.1,9.4-1.1c2.7,0,4.7,0.6,5.9,1.9C168.5,79.2,169.1,81.2,169.1,83.9z
-			 M154.3,93.6c0,2.9,1.2,4.4,3.6,4.4c2.2,0,4.3-0.4,6.4-1.1l1.1-0.4v-7.9l-7.1,0.7c-1.4,0.1-2.5,0.5-3.1,1.2
-			C154.6,91.3,154.3,92.3,154.3,93.6z"/>
-		<path d="M183.7,79.3c-3.5,0-5.2,1.2-5.2,3.6c0,1.1,0.4,1.9,1.2,2.4c0.8,0.5,2.6,0.9,5.5,1.4c2.8,0.5,4.9,1.2,6,2.1
-			c1.2,0.9,1.8,2.6,1.8,5c0,2.5-0.8,4.3-2.4,5.4s-3.9,1.7-6.9,1.7c-2,0-4.3-0.2-7-0.7l-1.4-0.2l0.2-3.1c3.6,0.5,6.4,0.8,8.3,0.8
-			c1.9,0,3.3-0.3,4.2-0.9c1-0.6,1.5-1.6,1.5-3c0-1.4-0.4-2.3-1.2-2.8s-2.7-1-5.5-1.4c-2.8-0.4-4.8-1.1-6-2c-1.2-0.9-1.8-2.5-1.8-4.8
-			c0-2.3,0.8-4.1,2.5-5.2s3.7-1.7,6.2-1.7c2,0,4.4,0.2,7.3,0.7l1.3,0.2l-0.1,3.1C188.6,79.6,185.8,79.3,183.7,79.3z"/>
-		<path d="M214.8,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3c0-8.4,3.3-12.6,10-12.6
-			c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9c1,1.3,2.6,1.9,5,1.9
-			C210,97.9,212.4,97.8,214.8,97.6z M213.5,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8c-2.1,0-3.7,0.6-4.8,1.9
-			c-1.1,1.3-1.6,3.3-1.7,6.1H213.5z"/>
-	</g>
-</g>
-<g id="Layer_2">
-</g>
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
-	<g>
-		<g>
-			<g>
-				<g>
-					<g>
-						<path d="M727.2,129.3c-0.9,0.2-2.6,1-3.5,1.2c0,0.8,0,0.4,0,1.1c1.2,1.6,1.2,1.6,2.2,3.2c2.7,4.5,6.4,7.8,9.1,12.3
-							c0.8,1.3,2.8,3.8,3.2,5.3c0.3,1.2,0.3,2.4,0.4,3.7c0.3,17.2,0.6,34.4,0.9,51.6c0,1,0,2-0.3,3c-0.8,2.1-5.3,3-7.4,3.6
-							c-13.4,4.1-27.9,4.8-41.6,2c-2.7-0.5-6.5-1.2-8.2-3.4c-2.1-2.6-2.3-6.4-2.6-9.7c-0.8-8.8-0.3-12.9-0.8-21.2
-							c-0.2-3.9-0.6-4.6-0.6-9.4c0-2.8,0.1-4.9,0.1-7.8c0.1-3,0.1-6.4,0.2-9.4c0.1-4.3,3.9-7.9,6.5-11.2c2.3-2.9,4.6-5.7,6.9-8.6
-							c1.4-1.8,1.4-1.8,3.4-3.9c-0.1-0.8,0.2-0.8,0.2-1.6c-1.5-0.1-1.2-0.7-2.7-0.8c-0.5-4.7-0.7-9.2-0.3-14.4c0.1-1,0-3.7,0.8-4.5
-							c0.5-0.5,4.1-2.5,4.8-2.8c6.3-2.2,20.8-1.8,26.8,1.9c2.5,1.5,2.6,5.9,3.1,8.6C727.7,119.2,728.1,129,727.2,129.3z"/>
-						<path class="st0" d="M701.3,125.8c0,0.3,0,0.6,0.1,0.9c0.2,0.3,0.6,0.5,1,0.6c1.8,0.6,3.7,0.5,5.6,0.4
-							c0.2-4.3,0.1-8.6-0.2-12.9c-3.1-0.5-5.3-1.8-5.8,1.7C701.5,119.5,701.3,122.7,701.3,125.8z"/>
-						<path class="st0" d="M711,123.9c-0.1,1.4-0.4,2.9,0.4,4.1c1.8,0,3.6-0.1,5.3-0.3c0.2-1.3,0-2.6-0.2-3.9
-							c-0.5-2.9-1.1-5.8-1.7-8.7c-2.9-0.2-4-0.6-3.8,2.3C711.1,119.6,711.2,121.7,711,123.9z"/>
-						<path class="st0" d="M719.8,124.3c0,1.1,0.1,2.5,1.2,2.8c0.9,0.2,1.9-0.4,2.7-0.4c-0.2-3.7-0.7-6.8-1.9-10.6
-							c-0.3-1.1-0.9-1.6-2-1.1c-1.3,0.5-0.6,0.9-0.7,2C719,119.4,719.9,121.9,719.8,124.3z"/>
-						<path class="st0" d="M698.4,120.4c0.2,2.4-0.1,4.5,0.1,6.6c-0.6-0.2-1.2-0.4-1.9-0.5c-0.1-1.5-0.1-3-0.2-4.6
-							c0-0.9-0.1-1.7,0-2.6c0.1-1.6-0.5-5.7,0.9-5.5c0.5,0,1.4,0.3,1.5,1.1C699,116.6,698.3,119.3,698.4,120.4z"/>
-						<path class="st0" d="M701.3,129.3c-1-0.1-1,0-1.2,0.9c-0.1,0.5-0.3,0.9,0.2,1.2c0.5,0.3,1.3,0.6,1.8,0.6
-							c4.8,0.4,9.7,0.4,14.5,0.3c0.8,0,2.1-0.5,3-0.7c0.7-0.2,0.7-2-0.3-1.9c-1.8,0.1-3.7,0.5-5.5,0.5
-							C709.9,130.4,705.1,129.9,701.3,129.3z"/>
-						<path class="st0" d="M714.5,135.3c1.4-0.2,3.1,0.1,4.4,0.7c1.4,0.7,4.9,4.8,6.2,7.7c1.9,4.4,2.6,5.4,4.7,9.5
-							c0.4,0.8,1.4,1.2,1.6,2c0.2,0.7-0.2,1.5-0.1,2.2c0.6,7.5,1.4,14.1,1.4,21.1c0,3.8-0.4,7.9-0.5,11.7c-0.1,5.8,0,8.2-0.4,13.8
-							c0,0.5-0.6,1.2-0.8,1.7c-0.3,0.7-1.2,0.9-1.9,1.1c-13,2.9-26.6,3.5-39.9,1.7c-0.8-0.1-1.7-0.3-2.2-0.9
-							c-0.4-0.5-0.5-1.3-0.5-1.9c-0.5-8.3-1-16.5-1.5-24.8c-0.1-2-0.2-4.1-0.1-6.2c0.2-4.1,0.5-6.8,0-10.9c-0.3-2.7-0.3-6.9,0.5-9.5
-							c0.5-1.7,1.8-3.1,3-4.5c2-2.4,2.3-2.6,3.9-5.3c1-1.7,7-5.6,8.9-6.6c1.7-0.9,6.8-2.2,8.7-2.2
-							C713.6,135.7,711,135.8,714.5,135.3z"/>
-					</g>
-					<path class="st1" d="M694.7,158.3c-0.8-0.1-1.7-0.3-2.3,0.2c-0.7,0.6-0.7,1.6-0.6,2.5c1.2,16.5-2.2,22.6,0.9,38.9
-						c12.3,1.2,24.9,0.8,37.1-1.3c0.6-0.1,1.3-0.2,1.6-0.7c0.3-0.4,0.4-0.9,0.4-1.4c0.8-9.6,0.2-9.4,0.6-19c0.2-5.5,1.3-10,0.7-15.5
-						c-0.7-5.7-0.8-9.3-6.8-7.1C715.9,158.5,705.6,160.4,694.7,158.3z"/>
-				</g>
-				<path class="st0" d="M715.3,113c0.6-0.1,1.1-0.1,1.6-0.4c0.5-0.3,0.8-0.9,0.7-1.4c-3.2-0.7-6.5-1.1-9.8-1.2
-					c-1.2,0-8.6-0.4-9.1,0.9C697.8,113.2,713.4,113.2,715.3,113z"/>
-				<path class="st1" d="M717.2,113c0.4-0.1,1.2,0,1.5-0.3c0.4-0.3,0.6-1,0.2-1.6c-2.4-0.7-4.9-1.1-7.3-1.2c-0.9,0-6.5-0.4-6.8,0.9
-					C704.1,113.2,715.8,113.2,717.2,113z"/>
-				<path class="st1" d="M717.5,137.6c0.4,0,0.8-0.1,1.2,0.2c0.2,0.1,0.3,0.3,0.4,0.5c1.2,2.1,1.9,4.5,2.7,6.8
-					c0.6,1.9,1.3,3.8,1.9,5.7c0.1,0.3,0.2,0.7,0,1c-0.1,0.2-0.4,0.3-0.6,0.4c-2.7,1.2-7.1,1.9-10.1,2.2c-0.8-1.9-0.5-3.6-0.8-5.7
-					c-0.5-3.2-1.4-6.5-1.5-9.4C710.6,138,715.3,137.8,717.5,137.6z"/>
-			</g>
-			<g>
-				<path d="M704.2,169.5c3.8,0.9,7.8,0.7,11.6,0.5c3.4-0.2,7-0.1,10.1-1.5c0.4-0.2,0.2-0.7-0.1-0.8c-3.5-0.9-7.3-0.2-10.9,0.1
-					c-3.6,0.2-7.3,0.3-10.8,1.3C704,169.2,704,169.5,704.2,169.5L704.2,169.5z"/>
-			</g>
-			<g>
-				<path d="M704.8,186.8c6.2,1.8,15.3-0.1,21.3-1.7c1.2-0.3,1-2.3-0.3-2.2c-4.1,0.4-8.1,1.1-12.2,1.5c-3,0.4-6.5,0.3-9.1,1.3
-					c-0.1,0,0,0.6,0.1,0.6L704.8,186.8z"/>
-			</g>
-		</g>
-		<path class="st1" d="M726.5,193.5c0.2,3.9,0,7.9-0.7,11.8c-2.6,0.6-5.1,1.2-7.7,1.8c-1.2-3.8-1.6-7.9-1.1-11.9
-			C718,194.9,726.4,192.2,726.5,193.5z"/>
-	</g>
-	<g>
-		<path d="M510.2,250c0.9,2.3,3.3,4.8,5.8,5.1c42.4,5.7,48.8,6.6,91.2,12.4c20,2.7,17.7,1.8,39.6-0.2c0-1.1-1.2-1.6-2.1-2
-			c-4.5-2.4-4.1-2.9-8.9-4.7c-4.1-1.5-7.5-2.4-11.7-3.6c-5.8-1.6-5.5-1.6-11.4-2.7c-41.9-8-26-6.5-69.5-13.3
-			c-8.5-1.3-21.1-4.3-29.8-2.2C508.5,239.8,508.5,245.7,510.2,250z"/>
-		<path class="st1" d="M630.9,264.8c-13-0.2-8.9,0.8-20.4-1.2c-46.2-8.2-37.7-4.9-84.2-10.8c-2.5-0.3-5.8-1-8-2.2
-			c-4-2.1-5.4-5.9-0.6-7.7c3.5-1.4,10.3,0.9,13.9,1.5c13.6,2,27.2,4.1,40.8,6.4c27.3,4.5,11,2.6,38.1,8.1
-			C625.7,261.9,616.9,260.8,630.9,264.8z"/>
-	</g>
-	<g>
-		<path d="M668.2,141.3c1.9,4.2,4.1,11.5,5.2,15.9c3.9,15.6,8.5,27.1,12.4,42.7c2,8.2,4.1,16.4,5.9,24.6c0.9,4.1,1.7,8.1,2.6,12.2
-			c0.2,1,0.4,2.2-0.2,3c-0.5,0.7-1.3,1-2.2,1.3c-24.6,7.8-51.1,6.4-76.9,4.9c-9-0.5-18.8-1.4-25.3-7.6c-1.3-1.3-2.6-2.9-2.7-4.7
-			c-0.1-1.1,0.1-2.2,0.4-3.2c1.7-7.2,3.3-14.3,5-21.5c3.3-14.3,6.7-28.5,10.8-42.6c3.5-11.8,7.6-23.4,12-34.8
-			c1.4-3.6,2.9-7.4,3-11.3c0.2-6.8-1.6-13.7,0.3-20.3c0.8-2.8,0-3.5-2.3-5.4c-1-0.8-4-2-4.6-2.7c-1.4-1.5-1.6-8.4,0.2-9.5
-			c1.7-1.1,6.3-3.3,8.3-3.7c7.7-1.6,15.1-2,21.9-1.8c6,0.2,12.5,1.2,17.7,2.8c2.1,0.6,4.7,2.4,6.4,3.8c1.7,1.4,1.6,7.3-0.4,8.3
-			c-1.4,0.7-4,0.8-4.8,2.2c-0.4,0.6-0.8,2.7-0.7,3.4c0.2,8.5,0.2,14.7,0.6,23.2C661.2,128.2,665.2,134.4,668.2,141.3z"/>
-		<path class="st0" d="M675,195.7c1.4,5.1,2.8,11.4,3.9,16.5c1.2,5.5,1.7,11.8,2.2,17.4c0.1,0.9,0.1,1.9-0.4,2.6
-			c-0.5,0.8-1.4,1.1-2.3,1.3c-4.5,1.2-9,2.9-13.6,2.9c-5.4,0.1-12.1,0.6-17.5,0.7c-14.8,0.2-22.9-0.3-37.3-3.9
-			c-0.8-0.2-1.5-0.4-2.1-0.9c-1-0.9-1.2-2.4-1.2-3.8c-0.3-26.8,9.8-52.6,13.4-79.2c0.6-4.5,1.5-14.4,3.8-18.4
-			c1.6-2.6,9.5-2.5,17.2-1.7c3.4,0.4,8.5,0.3,11.6,1.7c2.8,1.3,3.5,2.2,4.6,5c2.7,7.4,5,13.3,6.3,20.4
-			C666.4,170.3,670.9,180.7,675,195.7z"/>
-		<path class="st1" d="M648.7,224.7c0.8,1.3,2.2,2.1,3.7,2.4c1.5,0.3,3,0.2,4.5,0.1c3-0.2,6.1-0.3,9.1-0.8c0.9-4-2.1-5-5.4-4.8
-			C659.4,221.7,648.1,223.7,648.7,224.7z"/>
-		<path class="st1" d="M646.6,205c-0.3-1.8,0-4.8-0.5-6.5c-0.9-3-3.6-29.1-4-32.2c-0.2-1.9-3.6-22.7-0.8-23.8
-			c0.9-0.4,1.9-0.5,2.9-0.5l7.2,0.2c2.1,4.2,10.6,50.4,10.7,55.1c0.1,3,0.9,5.8,1.2,8.8c0.2,2,0.6,3.8,0.4,6.1
-			c-0.1,1.2-0.1,2.3-1.3,2.5c-3.6,0.7-10.3,2.4-12.4,1C646.4,213.5,647.1,208.6,646.6,205z"/>
-		<path class="st0" d="M639.6,121.2c-0.4-0.1-0.9-0.2-1.3-0.6c-0.2-0.3-0.4-0.6-0.5-1c-1-2.4-0.1-5-0.4-7.7c-0.5-4.5-0.3-9.7,1-14
-			c0.2-0.6-0.3-1.3,0.1-1.6c0.3-0.2,0.7-0.3,1.1-0.3c4.3-0.2,6.8,0,11,0.7c0.3,0,0.6,0.1,0.8,0.3c0.6,0.5,0.5,1.6,0.3,2.5
-			c-1.3,6.7-1.3,14.3-1.3,21.1c0,3.5-1.8,2.6-4,2.2C643.5,122.4,642.4,121.8,639.6,121.2z"/>
-		<path class="st1" d="M642.6,122.2c2.7,1.4,5.7,1.9,8.5,1.3c0.5-0.1,1-0.2,1.3-0.7c0.3-0.3,0.4-0.8,0.5-1.2c1-4.9,1.4-10,1.1-15
-			c-0.1-1.6-0.2-3.2-0.1-4.8c0.1-1,0.3-1.9,0.3-2.9c0-1-0.4-2-1.2-2.4c-0.3-0.2-0.7-0.2-1.1-0.2c-2.2-0.1-6.1-1.2-8.2-0.3
-			c-2,0.8-1.5,4.6-1.6,7.1c-0.1,3.2-0.2,6.4-0.1,9.6C642.1,113.8,641.8,121.7,642.6,122.2z"/>
-		<path class="st1" d="M617.5,84.5c8.5-2.9,17.9-2.2,26.9-1.3c0.7,0.1,1.5,0.3,1.6,1c-1,0.5-2.4,0.2-3.1,1.1
-			c-0.3,0.4-0.3,0.9-0.6,1.4c-0.6,1.3-2.3,1.5-3.8,1.5c-3.9,0-7.7-0.1-11.5-0.6C623.7,87.2,619.9,87.3,617.5,84.5z"/>
-		<path class="st0" d="M615.2,86.2c-0.2,1.1,0.4,2.3,1.3,2.9c0.6,0.4,1.3,0.5,1.9,0.6c13.6,2.6,27.6,3,41.2,0.4
-			c1.2-0.2,2.6-0.5,3.5-1.4c0.9-0.9,1.2-2.6,0.2-3.4c-0.8-0.6-1.9-0.5-2.8-0.3c-8,1.3-16.1,1.8-24.2,1.4c-4.1-0.2-8.2-0.6-12.3-1.2
-			C621.5,84.9,615.8,82.4,615.2,86.2z"/>
-	</g>
-	<path class="st1" d="M646.8,88.7c0.1,0.4,0.1,0.7,0.3,1.1c0.1,0.4,0.7,0.5,1.1,0.6c0.4,0.1,0.8,0,1.2-0.1c2.1-0.4,3.8-0.6,5.9-0.9
-		c0.4-0.1,0.8-0.1,1.2-0.3c0.2-0.1,0.4-0.1,0.4-0.6c0-0.6,0-1.2,0-1.8c0-0.2,0-0.5-0.2-0.7c-0.1-0.2-0.4-0.2-0.6-0.2
-		c-2.2-0.4-4.4-0.4-6.6-0.1c-0.8,0.1-2.2,0.1-2.5,0.8C646.7,87.1,646.5,87.7,646.8,88.7z"/>
-	<g>
-		<path d="M519.2,255.4c2-5.2,2.3-10.8,7.3-14.3c1.5-1.1-0.1-3.4-1.7-2.4c-4.7,2.9-8.7,11.4-6,16.6
-			C518.9,255.6,519.2,255.6,519.2,255.4L519.2,255.4z"/>
-	</g>
-	<g>
-		<path d="M525,250c0.9-1.1,1.5-2.4,2.4-3.5c1-1.2,2.2-2,3.4-3.1c0.8-0.7,0.3-2.3-0.9-1.8c-2.9,1.1-6,5.1-5.3,8.3
-			C524.7,250,525,250.1,525,250L525,250z"/>
-	</g>
-	<g>
-		<path d="M529.3,248.8c1.6-1.2,3.1-2.6,4.8-3.8c1.4-1.1-0.1-3-1.5-1.9c-1.7,1.3-3.2,3.4-3.5,5.5
-			C529.1,248.7,529.2,248.9,529.3,248.8L529.3,248.8z"/>
-	</g>
-	<g>
-		<path d="M551,250.9c0.6-0.7,1-1.6,1.7-2.3c0.7-0.7,1.7-1.1,2.4-1.7c0.7-0.6,0.2-2-0.8-1.9c-2.2,0.3-4.7,3.2-4.4,5.5
-			C550.1,250.9,550.7,251.3,551,250.9L551,250.9z"/>
-	</g>
-	<g>
-		<path d="M555.5,252.5c1.1-0.6,1.8-1.9,2.7-2.8c0.5-0.5,0.9-1,1.4-1.5c0.5-0.5,1-0.8,1.1-1.5c0.1-0.5-0.2-0.9-0.7-0.9
-			c-1.4,0-2.6,1.8-3.3,2.8c-0.8,1.1-1.7,2.5-1.4,3.8C555.3,252.5,555.5,252.5,555.5,252.5L555.5,252.5z"/>
-	</g>
-	<g>
-		<path d="M562.1,259.1c0.8-2.7,1-5.8,2.6-8.2c0.9-1.3,2-1.5,3.1-2.4c0.3-0.3,0.5-0.6,0.6-1.1c0.1-0.5-0.2-1-0.5-1.3
-			c-2.1-1.7-5.2,2-6,3.6c-1.6,2.9-1.3,6.3-0.1,9.4C561.8,259.3,562,259.3,562.1,259.1L562.1,259.1z"/>
-	</g>
-	<g>
-		<path d="M568.2,253.3c0.8-0.2,1.2-1.2,1.7-1.7c0.5-0.6,1.3-1.6,2.1-1.8c0.7-0.1,0.8-1,0.4-1.4c-1-1.1-2.6,0.6-3.3,1.4
-			c-0.6,0.7-1.6,2.5-1,3.4C568.2,253.3,568.2,253.3,568.2,253.3L568.2,253.3z"/>
-	</g>
-	<g>
-		<path d="M574.5,254c1.6-1.2,2.6-2.8,4.5-3.6c1.5-0.6,0.8-3-0.7-2.4c-2.2,0.9-5,3.3-4.2,5.9C574.3,254.1,574.4,254.1,574.5,254
-			L574.5,254z"/>
-	</g>
-	<g>
-		<path d="M593.2,252.6c-1.2,1-2.7,3-2.3,4.6c0.1,0.3,0.5,0.5,0.7,0.3l0,0c1.1-0.8,1.8-2.1,2.9-2.9c0.6-0.4,1.2-0.8,2-1L593.2,252.6
-			z"/>
-	</g>
-	<g>
-		<path d="M704.5,177.6c3.6,1.2,7.8,1,11.6,0.7c3.4-0.3,7.3-0.6,10.1-2.4c0.6-0.4,0.4-1.3-0.4-1.3c-3.4-0.2-7.1,1.1-10.5,1.5
-			c-3.6,0.3-7.2,0-10.7,0.4C704,176.5,703.8,177.3,704.5,177.6L704.5,177.6z"/>
-	</g>
-	<path class="st1" d="M712,115c0.1,0,0.3,0,0.4,0.1c0.2,0.1,0.2,0.3,0.3,0.5c0.1,0.6,0.2,1.2,0.2,1.9c0.2,3.2,0.4,6.5,0.6,9.7
-		c0,0.2,0,0.5-0.1,0.7c-0.2,0.3-0.6,0.3-0.9,0.2c-0.7-0.1-1.5-0.1-2.2-0.2c0-1.3-0.1-2.5-0.2-3.7c-0.1-1.6,0-3.1,0-4.7
-		c0-1.1-0.2-3.2-0.2-3.9C710,114.4,710.8,115,712,115z"/>
-	<path class="st1" d="M719.6,115.1c0,0,0.1,1,0.2,1.5c0.7,3.1,1.1,6.3,1.4,9.5c0,0.4,0.1,0.7-0.1,1c-0.3,0.5-1.7,0.7-1.7,0.4
-		c0-0.6-0.4-0.7-0.5-1.3c-0.1-0.5-0.4-1.6-0.5-2.2c0-0.6-0.2-1.2-0.2-1.8c0-0.7-0.1-1.5-0.2-2.2c-0.3-1.6-0.7-3.2-0.3-4.9
-		C718,115.1,719.3,114.9,719.6,115.1z"/>
-	<path class="st1" d="M703.6,114.5c0.7,2.5,0.7,5.2,0.7,7.8c0,1.6,0,3.2,0.1,4.8c0,0.3,0,0.6-0.3,0.8c-0.2,0.1-0.4,0.1-0.6,0
-		c-0.8-0.1-1.5-0.2-2.3-0.4c-0.2,0-0.4-0.1-0.5-0.2c-0.2-0.2-0.2-0.5-0.2-0.7c-0.2-2.7-0.2-5.4-0.1-8.2c0-0.9-0.2-3.1,0.4-3.9
-		C701.4,113.9,702.8,114.4,703.6,114.5z"/>
-</g>
-</svg>

File diff suppressed because it is too large
+ 0 - 10
img/release-section_new.svg


File diff suppressed because it is too large
+ 0 - 0
img/testnet-planning.svg


File diff suppressed because it is too large
+ 0 - 32
img/testnet-planning_new.svg


File diff suppressed because it is too large
+ 0 - 0
img/testnet-releases.svg


File diff suppressed because it is too large
+ 0 - 48
img/testnet-releases_new.svg


+ 0 - 75
meetings/README.md

@@ -1,75 +0,0 @@
-<img src="img/meetings-cover_new.svg"/>
-
-<div align="center">
-  <h4>Take a look at what we :loudspeaker: talk :loudspeaker: about, our :pencil: meeting notes :pencil:, and join if you want! </h4>
-</div>
-<div align="center">
-  <h5>The line between bureaucracy and rigour is 1px thin, but what are we to do? :pray:</h5>
-</div>
-
-Table of Contents
-=================
-
-<!-- TOC START min:1 max:3 link:true asterisk:false update:true -->
-- [Meeting Archiving](#meeting-archiving)
-- [Archive Index](#archive-index)
-- [Itinerary Template](#itinerary-template)
-  - [Short Meeting Identifier](#short-meeting-identifier)
-<!-- TOC END -->
-
-
-
-# Meeting Archiving
-
-Each meeting that will be archived has a _meeting identifier_, which should reflect the topics covered, as seen in the template [below](#meeting-itinerary-archive-index). The itinerary, and any other related assets, for a meeting, should be placed in a subdirectory of this directory with the same name as this identifier.
-
-# Archive Index
-
-This is the index of past meetings with itineraries, they should all be stored in this directory.
-
-| Meeting Identifier                             | Invitation sent  | Scheduled   (held)    | Itinerary and Minutes                              | Notes                         |
-| :-----------------------------------------: | :---------------:|-----------------------| :------------------------------------------------: | :----------------------------:|
-| Rome Release Status Meeting                         | 10.02.20         | 10.02.20-12:00GMT+1   (x) | [link](../meetings/rome#rome-release-status-meeting)          | Understanding the current status of the Rome Release   |
-| Rome Sprint in London                               | N/A              | 21.10.19-25.10.19   (x) | [link](../meetings/rome#sprint-in-london)          |Unlike our standard release meetings via ZOOM, this is a week long sprint in London   |
-| Rome Release Plan Finalization Meeting              | 19.08.19         | 20.08.19-11:15GMT+2 (x) | [link](../meetings/rome#release-plan-finalization-meeting)          |- |
-| Rome User Stories Meeting                           | 10.07.19         | 16.07.19-11:00GMT+2 (x) | [link](../meetings/rome#user-stories-meeting)                            | Due to complexity and logistics, the meeting took place over several days |  
-| Rome Launch Meeting                                 | 09.07.19         | 09.07.19-11:30GMT+2 (x) | [link](../meetings/rome#launch-meeting)                                  |              -                |  
-| Acropolis - Lessons Learned                         | 01.07.19         | 02.07.19-11:15GMT+2 (x) | [link](../meetings/acropolis##lessons-learned)                           | Lessons learned after release |
-| Acropolis Release Plan Milestone Evaluation Meeting | 10.06.19         | 11.06.19-11:15GMT+2 (x) | [link](../meetings/acropolis##release-plan-milestone-evaluation-meeting) | Re-evaluation of Milestones due to changing circumstances |
-| Acropolis Release Plan Finalization Meeting         | 06.05.19         | 09.05.19-11:15GMT+2 (x) | [link](../meetings/acropolis#release-plan-finalization-meeting)          | Two working days not feasible |
-| Acropolis User Stories Meeting                      | 26.04.19         | 02.05.19-12:15GMT+2 (x) | [link](../meetings/acropolis#user-stories-meeting)                       | Rescheduled from 30.04        |
-| Acropolis Launch Meeting                            | 24.04.19         | 26.04.19-12:15GMT+2 (x) | [link](../meetings/acropolis#launch-meeting)                             |              -                |   
-
-# Itinerary Template
-
-## Short Meeting Identifier
-
-- **ID:** `full meeting identifier (e.g. Sparta Launch Meeting)`
-- **Date:** `date of meeting`
-- **Starts:** `start time with time zone`
-- **Duration:** `how long the meeting lasts`
-- **Venue:** `e.g. Zoom link or physical location`
-- **Lead:** `person responsible following agenda and time keeping`
-- **Minutes:** `person responsible for minutes and post-meeting work`
-- **Participants**: `persons known to be participating in advance`
-  - `person 1`
-  - `...`
-#### Agenda
-
-:one: Item 1.
-
-:two: ....
-
-#### Minutes
-**Started at:** `time`
-**Present:**
-* `person1`
-* `...`
-
-:one: Item 1.
-
-:two: ....
-
-**Other topics raised:**
-
-**Ended at:** `time`

+ 0 - 615
meetings/acropolis/README.md

@@ -1,615 +0,0 @@
-# Table of contents
-
-<!-- TOC START min:1 max:3 link:true asterisk:false update:true -->
-- [Table of contents](#table-of-contents)
-- [Conducted Meetings](#conducted-meetings)
-  - [Launch Meeting](#launch-meeting)
-  - [User Stories Meeting](#user-stories-meeting)
-  - [Release Plan Finalization Meeting](#release-plan-finalization-meeting)
-  - [Release Plan Milestone Evaluation Meeting](#release-plan-milestone-evaluation-meeting)
-  - [Lessons Learned](#lessons-learned)
-<!-- TOC END -->
-
-
-# Conducted Meetings
-
-## Launch Meeting
-
-- **ID:** `Acropolis Launch Meeting`
-- **Date:** `26.04.19`
-- **Starts:** `12:15 CET`
-- **Duration:** `45min`
-- **Venue:** `ZOOM`
-- **Lead**: `Bedeho`
-- **Minutes**: `Martin`
-- **Participants**:
-  - `Alex`
-  - `Bedeho`
-  - `Jens`
-  - `Martin`
-  - `Mokhtar`
-
-#### Agenda
-:one: Present first release OKR proposal for discussion:
-
-
-#### Objective: `Launch Rome network`
-- **Active from:** 29.04.19
-- **KR Measurement Deadline**: 7-9 days after Rome launch (first weekday)
-- **Tracked**: Every Monday
-- **Tracking Manager**: Martin
-- **Key Results**:
-1. `Get nnn posts on forum (limits, not Jsg) (ewd)`
-    - Bedeho: 3/4
-    - Alex: 1/4
-2. `All nm modules fully specd (n)`
-    - Bedeho: 1/2
-    - Mokhtar: mm/(nm*2)
-    - Alex: am/(nm*2)
-    - Jens: jm/(nm*2)
-3. `Add tranches to storage-node (ewd)`
-    - Jens (2/3)
-    - Mokhtar (1/3)
-4. `No changes in code repos (excluding "pioneer") 5 days before release (ewd)`
-    - Martin: 1/2
-    - Jens: 1/6
-    - Mokhtar: 1/6
-    - Bedeho: 1/6
-5. `One more feature, or measurement of interaction`
-
----
-
-:two:. Identify projects, products, features, etc. and assign leads.
-
-:three: Schedule "User Stories Meeting".
-
-
-#### Minutes
-**Started at:** 12.15CET
-**Present:** Everyone
-
-:one: OKR discussions
-
-
-1. We all agreed KR1 was reasonable. Not much discussion.
-2. The point of having specs was not contentious.
-Discussions on how to best implement the specs:
-* Which repo(s) to create/contain the specs.
-* Tag them for each release separately, or release them in on bulk.
-* Bedeho to determine, feel free to comment on this.
-3. We agreed on the concept of adding tranches. We may want to clarify what this actually entails, but should not be specified in the KR itself.
-4. We agreed on the concept of "feature freeze", but the KR was poorly phrased.
-Jens made a good point, which I hope is clarified in the KR now. (comments?)
-5. We stop at four instead of forcing another KR. KISS.
-
-As a consequence of `5.`, this seems more like a subrelease from a user POW. This makes it a smaller release, thus no point in straying away from the greek theme. The discussion led to the following OKR for Acropolis:
-
-
-#### Objective: `Launch Acropolis Network`
-- **Active from:** 30.04.19
-- **KR Measurement Deadline**: 7-9 days after Acropolis launch (first weekday)
-- **Tracked**: Every Monday
-- **Tracking Manager**: Martin
-- **Key Results**:
-1. `Get 200 posts on forum (limits, not Jsg) (ewd)`
-    - Bedeho: 3/4
-    - Alex: 1/4
-2. `All n* modules fully specd (n)`
-    - Bedeho: 1/2
-    - Mokhtar: n_m/(n*2)
-    - Alex: n_a/(n*2)
-    - Jens: n_j/(n*2)
-    - Bedeho: n_b/(n*2)    
-3. `Add tranches to storage-node (ewd)`
-    - Jens (2/3)
-    - Mokhtar (1/3)
-4. `No PRs merged to master (excluding bugfixes and "pioneer") after "Module Test" (ewd)`
-    - Martin: 1/2
-    - Jens: 1/8
-    - Mokhtar: 1/8
-    - Bedeho: 1/8
-    - Alex: 1/8
-
-`* Bedeho to define n, n_m, n_a, n_j, n_b`
-
----
-:two: Projects, products and features
-We did not explicitly address this point on the agenda, but it follows from the OKR that the main feature and leads are:
-
-- Add an on-chain forum. Lead: Bedeho
-- Make a detailed spec for all modules. Bedeho is the coordinator, but everyone will produce their own specs based on his template.
-- Add tranches to the storage node. Lead: Jens.
-
-:three: User stories meeting
-The User Stories meeting is to be held on Tuesday at 12:15CET.
-
-**Other topics raised:**
-No
-
-**Ended at:** 13:15CET
-
-## User Stories Meeting
-
-**ID:** `Acropolis User Stories Meeting`
-- **Date:** `30.04.19` -> `02.05.19`
-- **Starts:** `12:15 CET`
-- **Duration:** `90min`
-- **Venue:** `ZOOM`
-- **Lead**: `Bedeho`
-- **Minutes**: `Martin`
-- **Participants**:
- - `Alex`
- - `Bedeho`
- - `Jens`
- - `Martin`
- - `Mokhtar`
-
-#### Agenda
-:one: After the [launch meeting](#launch-meeting), we agreed on the specific goals for `Acropolis`. Based on this, each lead shall prepare user stories for discussion, settle on final set of stories, and what consequences this may bring.
-
-
-##### Forum
-```
-## Forum
-
-This covers the experience of users across Pioneer, the command line.
-
-### All (members + non-members)
-
-
-As a user I can view a list of top level topic categories.
-As a user I can open topic categories and view threads, by title and date of submission, and subtopic categories.
-As a user I can view the set of moderators for a topic category.
-As a user I can view a paginated list of posts in a thread.
-As a user I can view the author, date of submission, text and history of edits for a post.
-
-### Member
-
-As a member I can post a new thread in a category, with a title and post.
-As a member I can compose a post with text and images and submit to a thread.
-As a member I can edit the text of a post a fixed number of times.
-As a member I can learn how to become moderator in a given category.
-As a member I can become a top level moderator by contacting Sudo (some how?).
-As a member I can become a non-top level moderator by contacting the moderator of the parent category.
-
-### Moderator
-
-As a moderator I can pin and unpin a post at the top of a category.
-As a moderator I can create a subcategory of my category.
-As a moderator I can archive and unarchive a subcategory of my category.
-As a moderator I can lock and unlock a thread in my category.
-As a moderator I can make/remove someone a moderator in a subcategory of my category.
-As a moderator I can delete a post in my category, leaving a reason.
-
-### Sudo
-
-As sudo I can alter the moderator set in any topic category
-As sudo I can delete a category.
-As sudo I can lock any member from doing any member+ level behaviour on the forum, and unlock.
-As sudo I can change key forum constraint variables on mutating/creating posts, threads, etc.
-```
-
-##### Storage
-```
-## Storage
-As root, I want to create storage tranches in order to manage the network.
-As root, I want to activate/deactivate storage tranches.
-  -> Without working groups, this has to be root.
-
-As a storage provider, I want to sign up to a tranche in order to start serving data.
-As a storage provider, I want to view the tranches I'm signed up to in order to manage my capacity.
-As a storage provider, I want to remove myself from storage tranches in order to manage my capacity.
-  -> Instead of staking for the storage provider role, one stakes for a tranche - otherwise the
-     mechanism is largely identical.
-  -> Must be possible for a single key to stake for multiple tranches.
-
-As an uploader, I want the runtime to choose an appropriate storage tranche liaison for my upload.
-As a downloader, I don't want to know anything about storage tranches.
-  -> Essentially, either role shouldn't know about tranches - but uploaders have this refined
-     requirement on the runtime API.
-
-
-Notes: the current base of hyperdrive repositories effectively requires a fixed
-  liaison per drive, with everyone else mirroring. There is therefore an
-  alternative approach feasible.
-
-
-As a storage provider, I want to create storage tranches in order to advertise my liaison capacity.
-  -> Creating a tranche means comitting to be the liaison for it, as well as having capacity.
-  -> Signing up for a tranche means having mirroring capacity and serving data.
-
-As a non-liaison storage provider, I want to sign up to a tranche in order to mirror and serve data.
-As a storage provider, I want to view the tranches I'm signed up to in order to manage my capacity.
-As a storage provider, I want to remove myself from storage tranches in order to manage my capacity.
-As an uploader, I want the runtime to choose an appropriate storage tranche liaison for my upload.
-As a downloader, I don't want to know anything about storage tranches.
-```
-
-:two: Schedule the [Release Plan Finalisation Meeting](#release-plan-finalisation-meeting) to no later than **two working days after this meeting**.
-
-#### Minutes
-**Started at:** `12:20 CET`
-**Present:**
-- `Alex`
-- `Bedeho`
-- `Jens`
-- `Martin`
-- `Mokhtar`
-- `Matthew` (observer)
-
-:one: User Stories
-#### Forum
-Topics that generated the most discussion:
-* User edits
-  * Scope
-  * Functionality
-  * UI vs. "on-chain"
-* The concept of `moderators`.
-  * Should it be a role (already)
-  * Hierarchy and rights for each `moderator`
-  * Only `sudo` as `moderator`
-  * `sudo` to assign and revoke moderations rights
-
-Document after live edits:
-```
-## Forum
-This covers the experience of users across Pioneer, the command line.
-
-### All (members + non-members)
-As a user I can view a list of top level topic categories.
-As a user I can open topic categories and view threads, by title and date of submission, and subtopic categories.
-As a user I can view the set of moderators for a topic category. <= OUT!
-As a user I can view a paginated list of posts in a thread.
-As a user I can view a post, in terms of author, date of submission and text
-As a user I can view the history of edits on a post <= OUT!
-### Member
-As a member I can create a new thread in a category, with a title and text.
-As a member I can compose a post in markdown and submit to a thread.
-As a member I can reply to a prior post in a thread by getting a quote of the prior post in my composer.
-As a member I can edit the text of a post.
-As a member I can learn how to become moderator in a given category. <= OUT!
-As a member I can become a top level moderator by contacting Sudo (some how?). <= OUT!
-As a member I can become a non-top level moderator by contacting the moderator of the parent category. <= OUT!
-
-### Moderator <== OUT
-As a moderator I can pin and unpin a post at the top of a category.
-As a moderator I can create a subcategory of my category.
-As a moderator I can archive and unarchive a subcategory of my category.
-As a moderator I can lock and unlock a thread in my category. <== OUT!
-As a moderator I can make/remove someone a moderator in a subcategory of my category. <== OUT!
-### Forum Sudo
-As forum sudo create a subcategory.
-As forum sudo I can delete a post.
-As forum sudo I can delete a category.
-### Sudo
-As sudo I can make a member a forum sudo.
-As sudo I can remove a forum sudo.
-
-As sudo I can alter the moderator set in any topic category <== OUT!
-As sudo I can change key forum constraint variables on mutating/creating posts, threads, etc. <== OUT!
-```
-
-
-#### Tranches
-Topics that generated the most discussion:
-* Information and requirements for SPs
-* Uploaders/downloaders should not be affected by transfers
-* dataObjectType tied to tranches? Runtime to assign based on dataObjectType
-* How to separate and run multiple tranches on one host. Implications
-  * Key management (single/multi/hierarchical)
-  * By implication, `stake`
-  * Repo management (one owner of each repo -> one owner of each tranch)
-  * Multiple repos or multiple instances of software on same host
-
-Document after live edits:
-```
-## Storage
-### Sudo
-As sudo, I want to create storage tranches in order to manage the network.
-As sudo, I want to activate/deactivate storage tranches. < out
-  -> Without working groups, this has to be sudo.
-### Storage Provider
-As a prospective storage provider, I want to know what the role entails.
-As a storage provider, I want to sign up to a tranche in order to start serving data.
-As a storage provider, I want to view the tranches I'm signed up to in order to manage my capacity.
-As a storage provider, I want to remove myself from storage tranches in order to manage my capacity.
-As a storage provider, I have to sign up for each tranche with a new key and run a separate storage instance for each tranche.
-  -> Instead of staking for the storage provider role, one stakes for a tranche - otherwise the
-     mechanism is largely identical.
-### Uploader
-As an uploader, I want the runtime to choose an appropriate storage tranche liaison for my upload.
-### Downloader
-As a downloader, I don't want to know anything about storage tranches.
-  -> Essentially, either role shouldn't know about tranches - but uploaders have this refined
-     requirement on the runtime API.
-Note: the implication of these is that we have to define data object types for the release as well as their appropriate tranches.
-Note: in this model we need to ensure that pioneer selects the correct data object type for the file to be uploaded, and the liaison enforces the appropriate constraints for this data object type. We probably need a mapping from data object type to constraints (1:1 or N:M) on the runtime.
-
-
-Notes: the current base of hyperdrive repositories effectively requires a fixed
-  liaison per drive, with everyone else mirroring. There is therefore an
-  alternative approach feasible.
-
-
-As a storage provider, I want to create storage tranches in order to advertise my liaison capacity.
-  -> Creating a tranche means committing to be the liaison for it, as well as having capacity.
-  -> Signing up for a tranche means having mirroring capacity and serving data.
-
-As a non-liaison storage provider, I want to sign up to a tranche in order to mirror and serve data.
-As a storage provider, I want to view the tranches I'm signed up to in order to manage my capacity.
-As a storage provider, I want to remove myself from storage tranches in order to manage my capacity.
-As an uploader, I want the runtime to choose an appropriate storage tranche liaison for my upload.
-As a downloader, I don't want to know anything about storage tranches.
-```
-
-
-:two: Did not get to this.
-
-**Other Topics raised:** No
-
-**Ended at:** `14:05 GMT+2`
-
----
-
-## Release Plan Finalization Meeting
-
-**ID:** `Acropolis Release Plan Finalization Meeting`
-- **Date:** `09.05.19`
-- **Starts:** `11:15 GMT+2`
-- **Duration:** `90min`
-- **Venue:** `ZOOM`
-- **Lead**: `Martin`
-- **Minutes**: `Martin`
-- **Participants**:
- - `Alex`
- - `Bedeho`
- - `Jens`
- - `Martin`
- - `Mokhtar`
-
-#### Agenda
-
-:one: Finalize Release Plan
-
-#### Minutes
-**Started at:** `11:15 GMT+2`
-**Present:**
-- `Alex`
-- `Bedeho`
-- `Jens`
-- `Martin`
-- `Mokhtar`
-- `Dagur` (observer)
-
-:one:
-The items in the draft [Release Plan](../testnets/acropolis) was examined and discussed. The main points of discussions were:
-
- - Realistic numbers for the the [release OKR](../testnets/acropolis#release-okrs)
-
-Settled on:
-1. `Get 75 posts on forum (limits, not Jsg) (ewd)`
-2. `Forum (runtime), storage (runtime and P2P) fully specd (n)`
-3. `Have 4x replication for all 2 tranches on storage node (ewd)`
-4. `95% uptime Storage Providers (ewd)`
-5. `No PRs merged to master (excluding bugfixes and "pioneer") after "Sub-system Test" (ewd)`
-
-- `Colossus` and `Pioneer` had not been filled in by their respective leads, and was only covered superficially.
-
-- The [milestones](../testnets/acropolis#milestones) sections saw small adjustments to the Spec Release date, and a request to re-write the Sub-systems Test for clarity.
-
-- For the [Public Infrastructure](../testnets/acropolis#public-infrastructure) section:
-  - It was decided finally to remove the `Storage and Distribution Error Endpoint` tool to reduce the SoW for the [Colossus](../testnets/acropolis#colossus) team.
-  - Hosted Joystream Storage Node(s) will be set up to "ensure" service, but the node(s) will not have any special status on the network.
-
-- For the [Internal Infrastructure](../testnets/acropolis#internal-infrastructure-and-tools) section, it was decided after some back and forth that Alex will be the manager Storage Uptime and Quality Tool.
-
-**Other topics raised:**
-
-Before the meeting was adjourned, the issue of making the Forum work without an [Indexing Node](https://github.com/Joystream/indexing-node-joystream) was discussed.
-
-**Ended at:** `12:30 GMT+2`
-
----
-
-## Release Plan Milestone Evaluation Meeting
-
-**ID:** `Acropolis Release Plan Milestone Evaluation Meeting`
-- **Date:** `11.06.19`
-- **Starts:** `11:15 GMT+2`
-- **Duration:** `45 min`
-- **Venue:** `ZOOM`
-- **Lead**: `Martin`
-- **Minutes**: `Martin`
-- **Participants**:
- - `Alex`
- - `Bedeho`
- - `Martin`
- - `Mokhtar`
-
-#### Agenda
-
-:one: Evaluate the feasibility of [Scheduled Milestones](../testnets/acropolis#milestones) and update [Live Milestones](../testnets/acropolis#live-milestones).
-:two: Evaluate feasibility of the scope.
-
-
-#### Minutes
-**Started at:** `11:15 GMT+2`
-**Present:**
-- `Alex`
-- `Bedeho`
-- `Martin`
-- `Mokhtar`
-- `Dagur` (observer)
-
-:one:
-#### Sub-System test Forum:
-- Bedeho to complete runtime build, assisted by Mokhtar/Alex
-  - To be completed by Thursday for Alex to be unblocked
-- Alex to focus on functionality, and reduce scope related to UI (e.g. not add pagination)
-  - Sub-System test scheduled for Monday 17.06.19
-
-- After Sub-System test, minor changes will be made to the runtime to initialize the new state.
-
-#### Sub-System test Storage:
-- Mokhtar to continue test and development of IPFS backend
-- Discovery test on `staging-reckless`
-  - Demo later today
-
-- Sub-System test scheduled for Friday the 14.06.19
-
-#### Full integration
-
-- Final test scheduled for Thursday 20.06.19
-
-:two:
-Based on the conclusion in :one:, it was decided to delay Storage Tranches for the next release.
-
-**Ended at:** `12:30 GMT+2`
-
----
-
-## Lessons Learned
-
-**ID:** `Acropolis Lessons Learned`
-- **Date:** `02.07.19`
-- **Starts:** `11:15 GMT+2`
-- **Duration:** `mm`
-- **Venue:** `ZOOM`
-- **Lead**: `Martin`
-- **Minutes**: `Martin`
-- **Participants**:
- - `Alex`
- - `Bedeho`
- - `Martin`
- - `Mokhtar`
-
-#### Agenda
-
-:one:
-OKR grading.
-
-:two:
-What went wrong with planning and producing specs?
-
-:three:
-Although we ended up releasing almost on time, we were not really ready.
-- We merged non-bug PRs after `Full test` (even worse than `Sub-system`)
-- We found a lot of bugs after `Full test`, that should have been uncovered earlier.
-- The release was poorly managed from a PR/marketing point of view.
-- The weekend before the release put some extra strain on the team.
-
-:four:
-We initially set out to make `issues` in the applicable repos, and add them to the [Release Project](https://github.com/orgs/Joystream/projects/7). In practice, we tracked both [forum](https://github.com/Joystream/joystream/issues/47) and [storage](https://github.com/Joystream/joystream/issues/57) progress with a single issue in this repo. Should we continue this way?
-
-:five:
-1. Migration was an afterthought, we missed part of the state. Must be fully specced, and later finalized when we know more. Release plan template and progress tracking must include it.
-2. Problems discovered that final test missed => we need final test protocol defined well before test, e.g. when scheduled
-3. Reddit forgotten.
-4. Coordination with Web3/Polkadot failed.
-5. Infrastructure rollout of Pioneer and front page must be 100% finished _before_ we make upgrade an announce, there must be no time where page & pioneer are publicly broken or waiting to be upgraded.
-6. Last minute chrome issue was not detected.
-7. We need more time to do full cross platform Quality Assurance on node setup, multiple days perhaps.
-8. We need to schedule enough time after all software is finished for fully writing up all guides.
-
-
-#### Minutes
-**Started at:** `11:15 GMT+2`
-**Present:**
-* `Alex`
-* `Bedeho`
-* `Mokhtar`
-* `Martin`
-
-:one:  
-1. `Get 75 posts on forum (limits, not Jsg) (ewd)`
-**Results:**
-0.55
-**Comment:**
-Although we only got 7 posts that counts, the forum was shipped successfully. We decided to grade it as two separate results:
-```
-1.0 * 0.5 + 7/75 * 0.5 = 0.55
-```
-
-2. `Forum (runtime), storage (runtime and P2P) fully specd (n)`
-**Results:**
-0.67
-**Comment:**
-The forum and storage runtime was fully spec'd, whereas the P2P aspect of the storage was considered too incomplete to publish.
-
-3. `Have 4x replication for all 2 tranches on storage node (ewd)`
-**Results:**
-0.5
-**Comment:**
-We achieved more than 4x replication, but tranches had to be abandoned.
-
-4. `95% uptime Storage Providers (ewd)`
-**Results:**
-0.75
-**Comment:**
-We split this up in two parts, where the end user uptime, and provider uptime was weighted at 0.5 each:
-```
-1.0 * 0.5 + 0.5 * 0.5 = 0.75
-```
-
-5. `No PRs merged to master (excluding bugfixes and "pioneer") after "Sub-system Test" (conf)`
-**Results:**
-0.5
-**Comment:**
-The storage node had non-bug fixes (improvements) merged to master after "Full test", whereas the forum side had none.
-
-##### Improve phrasing
-
-In general, we learned that the KRs have to be written and clarified better to reflect the goals for the release. It should be trivial to grade the OKR, while it should also reflect the level of success. This was brought up on later points as well. KR specific comments below:
-
-1. We need to make it clear whether the goal is shipping a feature or getting interest. In this case, the KR only reflected participation, which was not Alex and Bedehos job. In the future, we must go for one or the other.
-
-2. This KR was clear and unambiguous.
-
-3. This KR was clear and unambiguous.
-
-4. The "tool" was delayed, and not properly followed up. As a consequence, it was hard to actually grade it. Like for `1.`, it must be clear what we are actually tracking.
-
-5. We realized we need more time between testing and release. See items :three: and :four:.
-
-Finally, we discussed some general thoughts on how to organize OKRs. This was a recurring in the meeting, and we learned that we need to reconsider our approach to writing and tracking them for releases.
-
-:two:  
-Runtime was "easier" to spec, whereas high level p2p is much harder to formalize.
-Conclusion was to accept that specs need to be high level at this stage in development.
-
-:three:  
-Without addressing each point in this item specifically, we agreed that:
-- Need more time between `Sub-system test` and actual release.
-- Checklist (for launches)
-- Checklist (for testing)
-- More milestones (so we can follow the release plan deliverables)
-
-:four:
-Everyone agreed to continue "large" issues, covering all aspects of each goal.
-If possible, we should try to combine KRs with these larger issues in a way where we can grade and track based on checkmarks filled either directly or with weighting.
-
-:five:
-1. Put more though and planning in to migration.
-2. See item :three: (more extensive unit tests)
-3. Wrongish (posted on r/dot and r/joystream, but no follow up).
-4. See planning of releases in general.
-5. Again, somewhat poor planning due to time-constraints. Should prepare a deployment plan for updates in `Pioneer`. Potentially have `Pioneer` (and other apps) check the runtime version before serving the user, or make a simpler way of deploying where the user get a notification that an upgrade is happening.
-6. See `5.`
-7. Not really an issue.
-8. See various points on needing more time before release.
-
-**Other topics raised:**
-
-- We need more eyes on each repo.
-
-This leads to problems close to releases, when there is no one that can review properly. In particular for the storage node, where we had to rely on testing, not actually reviewing the codebase.
-
-- Size of PRs.
-
-Smaller, contained and more frequent PRs, when possible.
-
-- Forum, unlike storage, had better follow-up and timeline more in line with the milestones.
-
-However, there should have been better unit test coverage, and explanations of what the test did/should do. In the future, we should add empty tests as "todo" in the code.
-
-**Ended at:** `12:35GMT+2`

+ 0 - 215
meetings/acropolis/img/meetings-cover.svg

@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 882 300" style="enable-background:new 0 0 882 300;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#C4C3C6;}
-	.st1{fill:#FFFFFF;}
-	.st2{fill-rule:evenodd;clip-rule:evenodd;}
-	.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#C4C3C6;}
-	.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
-	.st5{fill:#010101;}
-	.st6{fill:none;}
-	.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#B1B2B7;}
-	.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;}
-	.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;}
-</style>
-<g id="Layer_4">
-	<path d="M876,209H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h870c3.3,0,6,2.7,6,6v197C882,206.3,879.3,209,876,209z"/>
-</g>
-<g id="Layer_2">
-</g>
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
-	<g>
-		<path d="M619.7,91.2c10.3,0.7,21.8,0.7,31.9,2.8c3,0.6,5.4,4.3,8,5.9c4.2,2.5,7.4,6.3,10.6,9.9c17.1,19.1,38.4,33.7,58.7,49.3
-			c8.3,6.4,16.8,13.5,19.8,23.5s-2.5,23.1-12.9,24.1c2.6,6,1.1,13.5-3.8,17.9s-12.5,5.2-18.2,2c4.2,5.9-1.5,14.7-8.6,16.4
-			c-7.1,1.6-14.3-1.5-20.9-4.5c0.4,6.8-7.3,11.8-14.1,11.2s-12.6-4.9-18-9.1c-8.9-6.9-17.7-13.7-26.6-20.6
-			c-16.7-12.9-34-26.6-43.3-45.6c-1.9-3.8-3.4-7.8-6.1-11.1c-2.4-2.8-5.5-4.9-8.5-6.9c-10.1-6.5-20.7-12.3-31.7-17.4
-			c5-10.2,10.1-20.4,15.5-30.4c3.8-7.1,17.3-30.4,17.3-30.4c8.6,2,15.4,7.3,22.8,9.5C601.1,90.4,610,90.5,619.7,91.2z"/>
-		<path class="st0" d="M700.8,236c-3.4,1.6-8.1-1.3-14.3-4.7c-4.1-2.2-35.2-21.6-35.2-21.6c1.3,2.6,27.4,20.6,26.1,23
-			c-1.5,2.8-5.5,6.2-6.6,6.3c-2,0.3-8.3-4.3-8.3-4.3c-21.2-14.8-33.2-24.8-49.3-45c-8.7-10.9-16.7-21.3-26.5-31.3
-			c-9.8-10-21.3-18.1-33.2-23.8c5.5-10,16.6-28.7,21.4-39.3c0.9-2,30.2,7.4,46.7,7.6c5.5,0.1,16.2,0.9,21.4,2.7c3.2,1.1,5.4,6,8,8.3
-			c23.4,20,49.6,38,72.9,58c0,0,9.6,7.9,11.2,10.1c2.7,3.5,7.3,7,4.7,11.9c-2.2,4-3.5,8.6-8.2,8.2c-1-0.1-49.1-27.6-52.8-29.3
-			c0,0,47.3,31.1,48.5,33.2c1.2,2.2,2.1,4.9,1.2,6.4c-1.8,3.1-2.6,6.2-6.1,8.4c-3.5,2.2-12.2-1.1-15.2-3.1c-3-2-44-26.1-44-26.1
-			s42.4,30.9,43,33.6C706.7,227.9,703.9,234.6,700.8,236z"/>
-		<path class="st1" d="M667.7,186.1c-9.8,8.5-10.2-8.2-3.1-13.4c2.9-2.1,8.6-2.8,9.9,2C675.5,178.1,670.1,184,667.7,186.1z"/>
-		<path class="st1" d="M683.8,166.3c-12.2,10.1-12.8-9.7-3.8-15.9c3.7-2.5,10.8-3.3,12.4,2.3C693.4,156.9,686.7,163.9,683.8,166.3z"
-			/>
-		<path class="st1" d="M658.9,193.5c0.7,2.1-0.6,4.2-1.9,5.9c-1.4,2-2.9,4.1-5.1,5.4c-2.2,1.2-5.2,1.2-6.9-0.6
-			c-0.6-0.7-1-1.7-0.7-2.7c0.1-0.4,0.4-0.8,0.6-1.1C647.1,197.7,656,184.6,658.9,193.5z"/>
-		<path d="M702.8,216.2c0,0,7.5-6.6,8.8-9l-6.8,10l5.9-5c0,0-2,4.3-3.5,6.8C707.2,219,702.5,219.5,702.8,216.2z"/>
-		<path d="M684.3,232.6c0,0,6.4-6.1,8.1-8.5c0,0-5.2,9-6,10L684.3,232.6z"/>
-		<path d="M660.2,239.1c0,0,6.4-6.1,8.1-8.5c0,0-5.2,9-6,10L660.2,239.1z"/>
-		<path d="M718.6,196c0,0,7.4-6.9,9.3-9.7c0,0-6,10.2-6.9,11.4L718.6,196z"/>
-		<path class="st1" d="M713.5,167.9c4.2,3.1,8.7,5.7,12.4,9.4c4.5,4.5,9.4,10.3,14.3,14.4c0.7-1.8-0.2-2.4-0.7-4.1s-2.6-4.2-3.8-5.5
-			c-4.9-5.2-9.2-9.3-14.9-13.7c-3.3-2.6-6.6-5.1-9.9-7.7c-1.2-0.9-7.9-7.3-9.1-6.7C697.7,156,713.5,166.9,713.5,167.9z"/>
-		<path class="st1" d="M571.1,103c0,0,49.3,15.2,57.9,14.3L642.5,99c0,0-8.6,7.4-40.1,1.5c0,0-20.5-5.3-27.5-5.2
-			C574.9,95.3,572.1,101.2,571.1,103z"/>
-		<path d="M588.4,164.5c4.4-3.6,18.9-4,21.2,3.7c1.2,4.1,1.5,10.1,0,14.2c5.5-1.5,11.4,0.3,15.9,3.8c4.5,3.5,4.1,11.1,0.8,15.7
-			c8.9-3.1,19.5,5.6,18.2,14.9c4.3-3.1,11-1.7,14.3,2.6c3.3,4.2,3.3,10.4,0.8,15.2c-2.5,4.7-7.2,8-12.3,9.7
-			c-1.5,0.5-7.9-1.2-9.8-2.9c-2.4-2.2-4.1-4.8-2.3-10c-3.8,4.9-11.5,6.3-16.8,3.1c-5.3-3.3-7.5-10.8-4.8-16.4
-			c-5.1,2.7-10.8,5.7-15.6,3c-1.2-0.7-6-5.3-6.8-6.5c-2.4-3.6-0.1-9.3,0.9-13.5c-1.2,2.6-6.5,4.4-9.4,3.1
-			c-13.6-6.1-12-13.7-5.9-24.6C580.5,172.9,584.4,167.7,588.4,164.5z"/>
-		<path class="st0" d="M604.3,175.5c0.2,0.7,0.3,1.4,0.1,2.1c-0.2,0.8-0.7,1.6-1.3,2.2c-3.5,4.5-7.3,8.9-11.2,13.1
-			c-1.2,1.3-2.5,2.6-4.2,3c-1,0.3-1.6-0.3-2.6-0.4c-2.6-0.2-4.1-1.8-5.5-4c-1.7-2.6,0.4-7.4,2-10C585.3,175.9,600,159,604.3,175.5z"
-			/>
-		<path class="st0" d="M613.2,189.7c2.2-0.4,4.6,0.1,6.3,1.6c1.7,1.4,2.5,3.5,2,5.6c-0.8,3.7-5.2,7.7-8,10.3c-2,1.8-4.4,5-7.1,5.2
-			c-2.7,0.2-5.2-0.6-6.9-2.7c-0.4-0.5-1.4-2-1.7-2.5c-0.9-2,2.5-7.5,3.9-9.2C604.6,194.7,608.7,190.5,613.2,189.7z"/>
-		<path class="st0" d="M630.4,209.9c1.9-0.5,4-0.2,5.6,1c1.6,1.2,2.6,3.4,2.3,5.4c-0.4,3.5-2.8,5.6-5.1,8.2c-1.6,1.8-3.8,4-6.1,4.4
-			c-2.3,0.4-4.2-0.2-5.9-2c-0.4-0.4-0.8-2.1-1.1-2.6c-0.9-1.8,0.1-4,1.2-5.7C623.5,215.4,626.5,211,630.4,209.9z"/>
-		<path class="st0" d="M648.4,223.7c1.6-0.3,3.3,0.1,4.5,1.2c1.2,1.1,1.9,2.9,1.5,4.6c-0.6,2.8-1.2,2.6-3.2,4.5
-			c-1.4,1.4-2.7,3.3-4.6,3.5c-1.9,0.2-3.5-1.5-4.7-3.1c-0.3-0.4-0.6-0.7-0.7-1.1c-0.6-1.6,0.3-3.3,1.4-4.6
-			C644.7,226.1,645.2,224.3,648.4,223.7z"/>
-		<path class="st1" d="M602.7,170.5c1.5,0.9,1.8,4.3,1.7,4.6c-0.1,0.4-0.4,0.8-0.7,1.1c-2,2.3-3.4,4.3-5.6,6.4
-			c-0.7,0.6-2.3,1.4-3.2,1.7c-0.6,0.1-1.2,0.1-1.8,0c-1.5-0.1-3.2-0.3-4.1-1.4c-1-1.3-0.6-5.2,0.3-6.5
-			C591.4,173.5,595.3,166.1,602.7,170.5z"/>
-		<path class="st1" d="M637,209.4c1.1,0.7,1.9,3,1.8,3.3c-0.1,0.3-0.1,1.4-0.4,1.7c-1.5,1.8-2.5,3.4-4.3,5c-0.5,0.5-2.4,0.7-3.2,0.9
-			c-0.4,0.1-0.9,0.1-1.3,0c-1.1-0.1-2.5-0.2-3.1-1.1c-0.7-1-0.5-4.1,0.2-5.1C628.4,211.8,631.3,206,637,209.4z"/>
-		<path class="st1" d="M620.1,191.3c1.4,0.8,1.8,3.6,1.7,3.9c-0.1,0.4-0.4,0.7-0.7,1c-2,1.9-2.5,3-4.7,4.8c-0.7,0.5-3,1.9-3.9,2.1
-			c-0.6,0.1-1.1,0.1-1.7,0c-1.5-0.1-2.7-1.2-3.5-2.1c-1-1.1-0.5-4.3,0.5-5.4C609.7,193.1,611.9,186.3,620.1,191.3z"/>
-		<path d="M588.4,180.1c0,0,4.1,4.6,8.3,1.6l7.8-7.5l0.2,0.9l-6.6,7.4c0,0-3.5,3-7.4,1.3C587.8,182.7,588.4,180.1,588.4,180.1z"/>
-		<path d="M606.8,198.9c0,0,4.1,4.6,8.3,1.6l7.8-7.5l0.2,0.9l-6.6,7.4c0,0-3.5,3-7.4,1.3C606.2,201.4,606.8,198.9,606.8,198.9z"/>
-		<path d="M626.2,216.6c0,0,4.1,4.6,8.3,1.6l7.8-7.5l0.2,0.9l-6.6,7.4c0,0-3.5,3-7.4,1.3C625.6,219.2,626.2,216.6,626.2,216.6z"/>
-		<path d="M619.8,147.4c0,1,0.1,2.1,0.8,2.8c0.5,0.6,1.4,0.8,2.1,1.1c4.3,1.2,13.2,1.1,16.1-2.3c1.1-1.3,1.5-3.3,2.3-4.8
-			c3.7-7.7,4.6-11,6.6-18.1c0.7-2.4,1.8-1.9,3.2-3.9c1.4-2,3.9-5,5.5-6.8c2.2-2.5,1.9-3.4,3.7-6c0.4-0.6,1.3-0.9,2.1-0.9
-			c1,0,1.9,0.7,2.7,1.5c6.5,6.1,13.2,12.1,19.9,18c2.3,2.1,4.7,4.1,7,6.2c15.5,13.8,31,27.6,46.5,41.4c0.6,0.6,1.4,1.2,2.2,1
-			c0.7-0.1,1.2-0.8,1.6-1.4c4.4-6.9,7.3-15.4,14.1-20c2.6-1.8,5.7-2.9,8.6-4.1c4.9-2.1,9.5-4.8,13.8-7.9c0.6-0.4,1.2-0.9,1.6-1.5
-			c0.5-0.8,0.6-1.9,0.5-2.9c-0.5-8.2-6.6-12.9-10.2-20.3c-2.1-4.3-4.8-10.1-7.5-14c-1.4-2-2-4.3-3.3-6.3c-1.6-2.5-2.8-4.9-4.3-7.4
-			c-3.9-6.1-7.9-12.5-11.3-18.9c-9.2,3.9-16.4,6.9-25.6,10.9c-3.1,1.3-6.2,2.6-9.6,2.8c-3.2,0.1-6.3-0.8-9.3-1.7
-			C687,80.4,674,78,661.1,75.7c-2.2-0.4-4.4-0.8-6.5-0.3c-2.5,0.6-4.5,2.2-6.5,3.9c-8.4,7-19,13-27.4,20c-5.2,4.4-2.3,14.8-2,21
-			C619,129.3,619.4,138.4,619.8,147.4z"/>
-		<path class="st0" d="M637.4,135.9c1-5.2,2.1-10.3,4.5-15.2c2.5-5.1,3.5-6,5.9-11.5c1.8,0.8,4.3-1.5,5.8-0.9
-			c6.3,2.6,9.6,6.9,16.9,10.6c6.9,3.5,13.8,7.2,19.7,12.2c3.8,3.1,7.2,6.8,11.1,9.7c5,3.8,10.7,6.5,15.6,10.4
-			c6.2,4.9,9.2,9.2,15.2,14.6c1.6-6.3,6-8.9,11.7-12.2c2.7-1.6,8.9-5.9,11.7-7.4c2.9-1.5,4.6-2.8,7.2-4.8c1.1-0.8,7.1-1.9,7.1-3.3
-			c0-2.9-4.1-7.1-6.6-10.9c-8.4-12.5-15.5-25.6-23.3-38.7c-0.6-1-1.3-2-2.4-2.3c-0.9-0.3-1.9,0.1-2.8,0.4c-5.4,2.1-14,4.9-19.4,7
-			c-2.1,0.8-4.4,1.7-6.7,1.7c-2,0-4-0.7-5.9-1.4c-13.6-4.7-27.7-8-42-9.9c-1.7-0.2-3.4-0.4-5.1,0c-1.4,0.3-2.6,1.1-3.8,1.8
-			c-7.9,4.9-15.5,10.2-22.8,16c-1.3,1-2.6,2.2-3.2,3.7c-0.6,1.5-0.3,3.2,0,4.8c1.5,9.2-0.5,16.9,0.2,26.2c0.4,5.3,0.1,6.9,2.8,6.5
-			C632.1,142.6,636.9,138.4,637.4,135.9z"/>
-		<path d="M672.6,122.8c0,0,16.8,3.4,31.5,1.1c0,0-11.3,5.3-27.2,2.5L672.6,122.8z"/>
-		<path class="st1" d="M645.2,229.4c0,0,2.6,3.1,4.9,3c0,0,5.2-2.7,4.9-4.8s-3.9-5.5-7.8-3.7C647.2,224,645.1,226.8,645.2,229.4z"/>
-		<path d="M645,229.1c0,0,4.1,4.1,7.3,1.8l5.8-5.6l0.2,0.7l-5,5.6c0,0-3.2,2.3-6.6,0.4C644.7,230.7,645,229.1,645,229.1z"/>
-		<path class="st1" d="M626,124.6c0-0.8,0.9-1.1,1.2-0.4c0.6,1,1.4,4.4,1.7,7.4c0,0,0.2,8.9-1.4,11.2c-0.2,0.3-0.7,0.1-0.9-0.2
-			c-0.5-0.8-1.3-3.2-1.2-9.2L626,124.6z"/>
-		<path class="st1" d="M743.6,94.3c-1-1.5-3.1-4.3-3.8-5.7c-1.1-2-1.4-2.5-3.7-2.5c-8.2,2.1-16.4,6.4-24.4,8.8
-			c1.1,0.5,5.8,1.4,6.7,2.1c4.5,3.3,2.2,1.5,6.7,4.8c6.1-1.6,14-2.1,19.9-4.1c0.3-0.1,0.4,0,0.5-0.2L743.6,94.3z"/>
-		<path d="M646.9,111.9c0,0,0.9-5.6,0.8-9.1c0,0,1.4,5.4,1.3,6.5c0,0,2.5-1.7,2.3-3.7v6.3H646.9z"/>
-		<path class="st1" d="M636.3,102.4c1.4-0.4,2.7-1.2,4-2c4.1-2.6,8.3-5.2,12.4-7.8c2.3-1.4,4.6-2.9,7.2-3.5
-			c3.7-0.9,7.6,0.1,11.3,0.9c6.1,1.3,12.3,2.2,18.6,3.1c3.6,0.5,7.4,1,11,0.2c-13.2-4.1-26.4-8.2-40.2-9.2c-1.7-0.1-3.4-0.2-5,0.2
-			c-1.3,0.4-2.6,1.1-3.8,1.8c-4.2,2.5-8.3,5.1-12.4,7.8c-3.8,2.5-8.5,5-11.8,8.3C628.4,103.6,634.8,102.8,636.3,102.4z"/>
-		<path d="M626,124.6c0,0,1.6-0.9,2.2,2.5c0,0,0.9,5.1,0.8,7.9c0,0,1.5-7.2-0.9-12.3c0,0-2.9-2.9-5,0L626,124.6z"/>
-	</g>
-	<g>
-		<path class="st1" d="M64.1,100.6V67.4h6.7l9.4,28.1l9.4-28.1h6.7v33.2h-3.7V71.3h-0.7l-9.6,28.1h-4.1l-9.6-28.1h-0.7v29.3H64.1z"
-			/>
-		<path class="st1" d="M119.9,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3
-			c0-8.4,3.3-12.6,10-12.6c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9
-			c1,1.3,2.6,1.9,5,1.9C115,97.9,117.4,97.8,119.9,97.6z M118.6,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8
-			c-2.1,0-3.7,0.6-4.8,1.9c-1.1,1.3-1.6,3.3-1.7,6.1H118.6z"/>
-		<path class="st1" d="M144.1,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3
-			c0-8.4,3.3-12.6,10-12.6c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9
-			c1,1.3,2.6,1.9,5,1.9C139.2,97.9,141.6,97.8,144.1,97.6z M142.8,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8
-			c-2.1,0-3.7,0.6-4.8,1.9c-1.1,1.3-1.6,3.3-1.7,6.1H142.8z"/>
-		<path class="st1" d="M164.3,79.7h-7.6v11.5c0,2.8,0.2,4.6,0.6,5.4c0.4,0.9,1.4,1.3,2.9,1.3l4.3-0.3l0.2,3
-			c-2.1,0.4-3.8,0.5-4.9,0.5c-2.5,0-4.2-0.6-5.2-1.8c-1-1.2-1.4-3.5-1.4-7V79.7h-3.4v-3.1h3.4v-7.3h3.6v7.3h7.6V79.7z"/>
-		<path class="st1" d="M168.7,71.2V67h3.6v4.2H168.7z M168.7,100.6v-24h3.6v24H168.7z"/>
-		<path class="st1" d="M182.8,100.6h-3.6v-24h3.6v1.7c2.6-1.4,5.1-2.2,7.4-2.2c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7
-			h-3.6V88c0-3.3-0.3-5.6-1-6.8c-0.7-1.2-2.1-1.8-4.2-1.8c-1,0-2.1,0.2-3.2,0.5c-1.1,0.3-2,0.6-2.6,0.9l-0.9,0.4V100.6z"/>
-		<path class="st1" d="M214.3,111.9c-3.8,0-6.5-0.5-8-1.6c-1.5-1-2.3-2.9-2.3-5.7c0-1.3,0.3-2.4,0.9-3.2c0.6-0.8,1.6-1.7,2.9-2.8
-			c-0.9-0.6-1.3-1.7-1.3-3.3c0-0.5,0.4-1.6,1.2-3l0.4-0.8c-2.5-1.2-3.8-3.6-3.8-7.2c0-5.5,3-8.2,9-8.2c1.5,0,3,0.2,4.3,0.5l0.7,0.1
-			l7.1-0.2v3.1l-4.6-0.1c1.1,1.1,1.6,2.7,1.6,4.8c0,3-0.7,5.1-2.2,6.3s-3.8,1.8-7,1.8c-0.9,0-1.6-0.1-2.4-0.2
-			c-0.6,1.4-0.9,2.3-0.9,2.7c0,1,0.3,1.6,0.9,1.8c0.6,0.2,2.4,0.4,5.5,0.4c3.1,0,5.3,0.5,6.6,1.4c1.3,1,2,2.8,2,5.6
-			C224.9,109.3,221.4,111.9,214.3,111.9z M207.5,104.4c0,1.7,0.5,2.9,1.4,3.5c0.9,0.7,2.7,1,5.2,1s4.4-0.4,5.5-1.1
-			c1.1-0.7,1.7-1.9,1.7-3.5c0-1.6-0.4-2.7-1.2-3.2c-0.8-0.5-2.4-0.7-4.7-0.7l-5.2-0.2c-1.1,0.8-1.8,1.4-2.1,2
-			C207.7,102.7,207.5,103.5,207.5,104.4z M207.8,84.3c0,1.9,0.4,3.2,1.3,4c0.8,0.8,2.2,1.2,4.2,1.2c2,0,3.3-0.4,4.2-1.2
-			c0.8-0.8,1.2-2.2,1.2-4.1c0-1.9-0.4-3.3-1.2-4.1s-2.2-1.2-4.2-1.2c-2,0-3.4,0.4-4.2,1.2C208.3,81.1,207.8,82.4,207.8,84.3z"/>
-		<path class="st1" d="M237.2,79.3c-3.5,0-5.2,1.2-5.2,3.6c0,1.1,0.4,1.9,1.2,2.4c0.8,0.5,2.6,0.9,5.5,1.4c2.8,0.5,4.9,1.2,6,2.1
-			c1.2,0.9,1.8,2.6,1.8,5c0,2.5-0.8,4.3-2.4,5.4s-3.9,1.7-6.9,1.7c-2,0-4.3-0.2-7-0.7l-1.4-0.2l0.2-3.1c3.6,0.5,6.4,0.8,8.3,0.8
-			s3.3-0.3,4.2-0.9c1-0.6,1.5-1.6,1.5-3c0-1.4-0.4-2.3-1.2-2.8c-0.8-0.5-2.7-1-5.5-1.4c-2.8-0.4-4.8-1.1-6-2
-			c-1.2-0.9-1.8-2.5-1.8-4.8c0-2.3,0.8-4.1,2.5-5.2c1.6-1.1,3.7-1.7,6.2-1.7c2,0,4.4,0.2,7.3,0.7l1.3,0.2l-0.1,3.1
-			C242.1,79.6,239.3,79.3,237.2,79.3z"/>
-	</g>
-	<g>
-		<path class="st0" d="M68.4,148.9h-6.9v-12.5h1.4v11.2h5.5V148.9z"/>
-		<path class="st0" d="M75.9,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C74.1,147.9,75,147.9,75.9,147.8z M75.5,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H75.5z"/>
-		<path class="st0" d="M85.3,142.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7
-			c-0.8,0-1.5-0.2-1.9-0.7c-0.4-0.5-0.6-1.1-0.6-2s0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4c1,0,1.8,0.2,2.2,0.7
-			C85,140.9,85.3,141.6,85.3,142.6z M79.7,146.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C79.8,145.4,79.7,145.8,79.7,146.3z"/>
-		<path class="st0" d="M87.9,148.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5s-1,0.4-1.3,0.5l-0.4,0.2v6.6H87.9z
-			"/>
-		<path class="st0" d="M95.5,148.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8H100v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M109.1,148.9h-1.4V136h1.4v4.4c1-0.5,1.9-0.7,2.8-0.7c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3
-			v-4.7c0-1.2-0.1-2.1-0.4-2.6c-0.2-0.5-0.8-0.7-1.6-0.7c-0.8,0-1.5,0.1-2.2,0.4l-0.3,0.1V148.9z"/>
-		<path class="st0" d="M117.1,144.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1c0.6,0.7,0.9,1.9,0.9,3.6
-			c0,1.6-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1s-2.5-0.4-3-1.1C117.3,147.2,117.1,146,117.1,144.4z M118.4,144.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8c0.3-0.5,0.5-1.4,0.5-2.8s-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			s-1.6,0.2-1.9,0.7C118.6,142.2,118.4,143.1,118.4,144.4z"/>
-		<path class="st0" d="M126.1,139.9h1.4l1.8,7.8h0.3l2.1-7.7h1.4l2.1,7.7h0.3l1.8-7.8h1.4l-2.1,9h-2.2l-1.9-7l-1.9,7h-2.2
-			L126.1,139.9z"/>
-		<path class="st0" d="M143.8,139.9h1.4l1.8,7.8h0.3l2.1-7.7h1.4l2.1,7.7h0.3l1.8-7.8h1.4l-2.1,9H152l-1.9-7l-1.9,7h-2.2
-			L143.8,139.9z"/>
-		<path class="st0" d="M164.3,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C162.5,147.9,163.4,147.9,164.3,147.8z M163.8,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H163.8z"/>
-		<path class="st0" d="M174.6,139.7c0.4,0,1.1,0.1,2,0.2l0.4,0.1l-0.1,1.1c-1-0.1-1.7-0.2-2.1-0.2c-1,0-1.7,0.2-2.1,0.7
-			s-0.5,1.4-0.5,2.7c0,1.3,0.2,2.2,0.5,2.7c0.3,0.5,1.1,0.8,2.1,0.8l2.1-0.2l0.1,1.1c-1.1,0.2-2,0.3-2.5,0.3c-1.4,0-2.4-0.4-2.9-1.1
-			s-0.8-1.9-0.8-3.6s0.3-2.9,0.9-3.6C172.3,140.1,173.2,139.7,174.6,139.7z"/>
-		<path class="st0" d="M178.6,144.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1c0.6,0.7,0.9,1.9,0.9,3.6
-			c0,1.6-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1s-2.5-0.4-3-1.1C178.8,147.2,178.6,146,178.6,144.4z M180,144.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8c0.3-0.5,0.5-1.4,0.5-2.8s-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			s-1.6,0.2-1.9,0.7C180.1,142.2,180,143.1,180,144.4z"/>
-		<path class="st0" d="M189.8,148.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3
-			v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M205,136v12.9h-1.3v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-0.5,0-0.9-0.1-1.3-0.2s-0.7-0.3-1-0.6
-			c-0.6-0.6-1-1.8-1-3.6s0.3-3,0.9-3.8c0.6-0.8,1.5-1.2,2.9-1.2c0.7,0,1.4,0.1,2.2,0.2v-4H205z M200.4,147.8
-			c0.2,0.1,0.5,0.1,0.8,0.1s0.7-0.1,1.2-0.2s0.8-0.2,1-0.3l0.4-0.2v-6.1c-0.8-0.1-1.5-0.2-2.1-0.2c-0.9,0-1.5,0.3-1.9,0.9
-			c-0.4,0.6-0.5,1.5-0.5,2.7c0,1.4,0.2,2.3,0.6,2.8C199.9,147.5,200.1,147.7,200.4,147.8z"/>
-		<path class="st0" d="M213.3,139.9h1.3v9h-1.3v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-1.2,0-2-0.3-2.4-1c-0.4-0.6-0.6-1.8-0.6-3.5v-4.7
-			h1.3v4.7c0,1.3,0.1,2.2,0.3,2.6c0.2,0.4,0.7,0.7,1.5,0.7c0.4,0,0.8-0.1,1.2-0.2c0.4-0.1,0.7-0.2,0.9-0.3l0.3-0.2V139.9z"/>
-		<path class="st0" d="M220.6,139.7c0.4,0,1.1,0.1,2,0.2l0.4,0.1l-0.1,1.1c-1-0.1-1.7-0.2-2.1-0.2c-1,0-1.7,0.2-2.1,0.7
-			s-0.5,1.4-0.5,2.7c0,1.3,0.2,2.2,0.5,2.7c0.3,0.5,1.1,0.8,2.1,0.8l2.1-0.2l0.1,1.1c-1.1,0.2-2,0.3-2.5,0.3c-1.4,0-2.4-0.4-2.9-1.1
-			s-0.8-1.9-0.8-3.6s0.3-2.9,0.9-3.6C218.3,140.1,219.2,139.7,220.6,139.7z"/>
-		<path class="st0" d="M229.7,141.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V141.1z"/>
-		<path class="st0" d="M236.7,148.9h-1.4v-9h1.3v0.6c0.9-0.5,1.8-0.8,2.6-0.8c1.1,0,1.9,0.3,2.3,0.9c0.4-0.2,0.9-0.5,1.5-0.6
-			c0.6-0.2,1.2-0.3,1.7-0.3c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.5-0.7
-			c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-1,0.3l-0.3,0.2c0.2,0.4,0.2,1.3,0.2,2.6v4.7H241v-4.6c0-1.3-0.1-2.2-0.4-2.6
-			c-0.2-0.5-0.7-0.7-1.5-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-0.9,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M256.5,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C254.7,147.9,255.6,147.9,256.5,147.8z M256,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H256z"/>
-		<path class="st0" d="M265.6,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C263.8,147.9,264.7,147.9,265.6,147.8z M265.1,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H265.1z"/>
-		<path class="st0" d="M273.2,141.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V141.1z"/>
-		<path class="st0" d="M274.8,137.9v-1.6h1.4v1.6H274.8z M274.8,148.9v-9h1.4v9H274.8z"/>
-		<path class="st0" d="M280.1,148.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3
-			v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M291.9,153.2c-1.4,0-2.4-0.2-3-0.6c-0.6-0.4-0.9-1.1-0.9-2.1c0-0.5,0.1-0.9,0.3-1.2c0.2-0.3,0.6-0.7,1.1-1
-			c-0.3-0.2-0.5-0.6-0.5-1.2c0-0.2,0.1-0.6,0.4-1.1l0.2-0.3c-0.9-0.4-1.4-1.3-1.4-2.7c0-2.1,1.1-3.1,3.4-3.1c0.6,0,1.1,0.1,1.6,0.2
-			l0.3,0.1l2.7-0.1v1.2l-1.7,0c0.4,0.4,0.6,1,0.6,1.8c0,1.1-0.3,1.9-0.8,2.4s-1.4,0.7-2.6,0.7c-0.3,0-0.6,0-0.9-0.1
-			c-0.2,0.5-0.3,0.9-0.3,1c0,0.4,0.1,0.6,0.3,0.7c0.2,0.1,0.9,0.1,2.1,0.1c1.2,0,2,0.2,2.5,0.5s0.8,1.1,0.8,2.1
-			C295.9,152.2,294.6,153.2,291.9,153.2z M289.4,150.3c0,0.6,0.2,1.1,0.5,1.3c0.4,0.2,1,0.4,2,0.4c1,0,1.6-0.1,2.1-0.4
-			c0.4-0.3,0.6-0.7,0.6-1.3s-0.2-1-0.5-1.2c-0.3-0.2-0.9-0.3-1.8-0.3l-1.9-0.1c-0.4,0.3-0.7,0.5-0.8,0.8
-			C289.4,149.7,289.4,150,289.4,150.3z M289.5,142.8c0,0.7,0.2,1.2,0.5,1.5c0.3,0.3,0.8,0.4,1.6,0.4c0.7,0,1.3-0.1,1.6-0.4
-			c0.3-0.3,0.5-0.8,0.5-1.5s-0.2-1.2-0.5-1.5c-0.3-0.3-0.8-0.5-1.6-0.5c-0.7,0-1.3,0.2-1.6,0.5C289.7,141.6,289.5,142.1,289.5,142.8
-			z"/>
-		<path class="st0" d="M300.5,140.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.5,0.9c0.3,0.2,1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8
-			c0.4,0.3,0.7,1,0.7,1.9s-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2
-			c1.4,0.2,2.4,0.3,3.1,0.3c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1c0-0.5-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5
-			c-1.1-0.2-1.8-0.4-2.2-0.7c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9c0.6-0.4,1.4-0.6,2.3-0.6c0.7,0,1.7,0.1,2.8,0.3l0.5,0.1
-			l0,1.2C302.3,141,301.3,140.9,300.5,140.9z"/>
-	</g>
-</g>
-</svg>

+ 0 - 215
meetings/img/meetings-cover.svg

@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 882 300" style="enable-background:new 0 0 882 300;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#C4C3C6;}
-	.st1{fill:#FFFFFF;}
-	.st2{fill-rule:evenodd;clip-rule:evenodd;}
-	.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#C4C3C6;}
-	.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
-	.st5{fill:#010101;}
-	.st6{fill:none;}
-	.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#B1B2B7;}
-	.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;}
-	.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;}
-</style>
-<g id="Layer_4">
-	<path d="M876,209H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h870c3.3,0,6,2.7,6,6v197C882,206.3,879.3,209,876,209z"/>
-</g>
-<g id="Layer_2">
-</g>
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
-	<g>
-		<path d="M619.7,91.2c10.3,0.7,21.8,0.7,31.9,2.8c3,0.6,5.4,4.3,8,5.9c4.2,2.5,7.4,6.3,10.6,9.9c17.1,19.1,38.4,33.7,58.7,49.3
-			c8.3,6.4,16.8,13.5,19.8,23.5s-2.5,23.1-12.9,24.1c2.6,6,1.1,13.5-3.8,17.9s-12.5,5.2-18.2,2c4.2,5.9-1.5,14.7-8.6,16.4
-			c-7.1,1.6-14.3-1.5-20.9-4.5c0.4,6.8-7.3,11.8-14.1,11.2s-12.6-4.9-18-9.1c-8.9-6.9-17.7-13.7-26.6-20.6
-			c-16.7-12.9-34-26.6-43.3-45.6c-1.9-3.8-3.4-7.8-6.1-11.1c-2.4-2.8-5.5-4.9-8.5-6.9c-10.1-6.5-20.7-12.3-31.7-17.4
-			c5-10.2,10.1-20.4,15.5-30.4c3.8-7.1,17.3-30.4,17.3-30.4c8.6,2,15.4,7.3,22.8,9.5C601.1,90.4,610,90.5,619.7,91.2z"/>
-		<path class="st0" d="M700.8,236c-3.4,1.6-8.1-1.3-14.3-4.7c-4.1-2.2-35.2-21.6-35.2-21.6c1.3,2.6,27.4,20.6,26.1,23
-			c-1.5,2.8-5.5,6.2-6.6,6.3c-2,0.3-8.3-4.3-8.3-4.3c-21.2-14.8-33.2-24.8-49.3-45c-8.7-10.9-16.7-21.3-26.5-31.3
-			c-9.8-10-21.3-18.1-33.2-23.8c5.5-10,16.6-28.7,21.4-39.3c0.9-2,30.2,7.4,46.7,7.6c5.5,0.1,16.2,0.9,21.4,2.7c3.2,1.1,5.4,6,8,8.3
-			c23.4,20,49.6,38,72.9,58c0,0,9.6,7.9,11.2,10.1c2.7,3.5,7.3,7,4.7,11.9c-2.2,4-3.5,8.6-8.2,8.2c-1-0.1-49.1-27.6-52.8-29.3
-			c0,0,47.3,31.1,48.5,33.2c1.2,2.2,2.1,4.9,1.2,6.4c-1.8,3.1-2.6,6.2-6.1,8.4c-3.5,2.2-12.2-1.1-15.2-3.1c-3-2-44-26.1-44-26.1
-			s42.4,30.9,43,33.6C706.7,227.9,703.9,234.6,700.8,236z"/>
-		<path class="st1" d="M667.7,186.1c-9.8,8.5-10.2-8.2-3.1-13.4c2.9-2.1,8.6-2.8,9.9,2C675.5,178.1,670.1,184,667.7,186.1z"/>
-		<path class="st1" d="M683.8,166.3c-12.2,10.1-12.8-9.7-3.8-15.9c3.7-2.5,10.8-3.3,12.4,2.3C693.4,156.9,686.7,163.9,683.8,166.3z"
-			/>
-		<path class="st1" d="M658.9,193.5c0.7,2.1-0.6,4.2-1.9,5.9c-1.4,2-2.9,4.1-5.1,5.4c-2.2,1.2-5.2,1.2-6.9-0.6
-			c-0.6-0.7-1-1.7-0.7-2.7c0.1-0.4,0.4-0.8,0.6-1.1C647.1,197.7,656,184.6,658.9,193.5z"/>
-		<path d="M702.8,216.2c0,0,7.5-6.6,8.8-9l-6.8,10l5.9-5c0,0-2,4.3-3.5,6.8C707.2,219,702.5,219.5,702.8,216.2z"/>
-		<path d="M684.3,232.6c0,0,6.4-6.1,8.1-8.5c0,0-5.2,9-6,10L684.3,232.6z"/>
-		<path d="M660.2,239.1c0,0,6.4-6.1,8.1-8.5c0,0-5.2,9-6,10L660.2,239.1z"/>
-		<path d="M718.6,196c0,0,7.4-6.9,9.3-9.7c0,0-6,10.2-6.9,11.4L718.6,196z"/>
-		<path class="st1" d="M713.5,167.9c4.2,3.1,8.7,5.7,12.4,9.4c4.5,4.5,9.4,10.3,14.3,14.4c0.7-1.8-0.2-2.4-0.7-4.1s-2.6-4.2-3.8-5.5
-			c-4.9-5.2-9.2-9.3-14.9-13.7c-3.3-2.6-6.6-5.1-9.9-7.7c-1.2-0.9-7.9-7.3-9.1-6.7C697.7,156,713.5,166.9,713.5,167.9z"/>
-		<path class="st1" d="M571.1,103c0,0,49.3,15.2,57.9,14.3L642.5,99c0,0-8.6,7.4-40.1,1.5c0,0-20.5-5.3-27.5-5.2
-			C574.9,95.3,572.1,101.2,571.1,103z"/>
-		<path d="M588.4,164.5c4.4-3.6,18.9-4,21.2,3.7c1.2,4.1,1.5,10.1,0,14.2c5.5-1.5,11.4,0.3,15.9,3.8c4.5,3.5,4.1,11.1,0.8,15.7
-			c8.9-3.1,19.5,5.6,18.2,14.9c4.3-3.1,11-1.7,14.3,2.6c3.3,4.2,3.3,10.4,0.8,15.2c-2.5,4.7-7.2,8-12.3,9.7
-			c-1.5,0.5-7.9-1.2-9.8-2.9c-2.4-2.2-4.1-4.8-2.3-10c-3.8,4.9-11.5,6.3-16.8,3.1c-5.3-3.3-7.5-10.8-4.8-16.4
-			c-5.1,2.7-10.8,5.7-15.6,3c-1.2-0.7-6-5.3-6.8-6.5c-2.4-3.6-0.1-9.3,0.9-13.5c-1.2,2.6-6.5,4.4-9.4,3.1
-			c-13.6-6.1-12-13.7-5.9-24.6C580.5,172.9,584.4,167.7,588.4,164.5z"/>
-		<path class="st0" d="M604.3,175.5c0.2,0.7,0.3,1.4,0.1,2.1c-0.2,0.8-0.7,1.6-1.3,2.2c-3.5,4.5-7.3,8.9-11.2,13.1
-			c-1.2,1.3-2.5,2.6-4.2,3c-1,0.3-1.6-0.3-2.6-0.4c-2.6-0.2-4.1-1.8-5.5-4c-1.7-2.6,0.4-7.4,2-10C585.3,175.9,600,159,604.3,175.5z"
-			/>
-		<path class="st0" d="M613.2,189.7c2.2-0.4,4.6,0.1,6.3,1.6c1.7,1.4,2.5,3.5,2,5.6c-0.8,3.7-5.2,7.7-8,10.3c-2,1.8-4.4,5-7.1,5.2
-			c-2.7,0.2-5.2-0.6-6.9-2.7c-0.4-0.5-1.4-2-1.7-2.5c-0.9-2,2.5-7.5,3.9-9.2C604.6,194.7,608.7,190.5,613.2,189.7z"/>
-		<path class="st0" d="M630.4,209.9c1.9-0.5,4-0.2,5.6,1c1.6,1.2,2.6,3.4,2.3,5.4c-0.4,3.5-2.8,5.6-5.1,8.2c-1.6,1.8-3.8,4-6.1,4.4
-			c-2.3,0.4-4.2-0.2-5.9-2c-0.4-0.4-0.8-2.1-1.1-2.6c-0.9-1.8,0.1-4,1.2-5.7C623.5,215.4,626.5,211,630.4,209.9z"/>
-		<path class="st0" d="M648.4,223.7c1.6-0.3,3.3,0.1,4.5,1.2c1.2,1.1,1.9,2.9,1.5,4.6c-0.6,2.8-1.2,2.6-3.2,4.5
-			c-1.4,1.4-2.7,3.3-4.6,3.5c-1.9,0.2-3.5-1.5-4.7-3.1c-0.3-0.4-0.6-0.7-0.7-1.1c-0.6-1.6,0.3-3.3,1.4-4.6
-			C644.7,226.1,645.2,224.3,648.4,223.7z"/>
-		<path class="st1" d="M602.7,170.5c1.5,0.9,1.8,4.3,1.7,4.6c-0.1,0.4-0.4,0.8-0.7,1.1c-2,2.3-3.4,4.3-5.6,6.4
-			c-0.7,0.6-2.3,1.4-3.2,1.7c-0.6,0.1-1.2,0.1-1.8,0c-1.5-0.1-3.2-0.3-4.1-1.4c-1-1.3-0.6-5.2,0.3-6.5
-			C591.4,173.5,595.3,166.1,602.7,170.5z"/>
-		<path class="st1" d="M637,209.4c1.1,0.7,1.9,3,1.8,3.3c-0.1,0.3-0.1,1.4-0.4,1.7c-1.5,1.8-2.5,3.4-4.3,5c-0.5,0.5-2.4,0.7-3.2,0.9
-			c-0.4,0.1-0.9,0.1-1.3,0c-1.1-0.1-2.5-0.2-3.1-1.1c-0.7-1-0.5-4.1,0.2-5.1C628.4,211.8,631.3,206,637,209.4z"/>
-		<path class="st1" d="M620.1,191.3c1.4,0.8,1.8,3.6,1.7,3.9c-0.1,0.4-0.4,0.7-0.7,1c-2,1.9-2.5,3-4.7,4.8c-0.7,0.5-3,1.9-3.9,2.1
-			c-0.6,0.1-1.1,0.1-1.7,0c-1.5-0.1-2.7-1.2-3.5-2.1c-1-1.1-0.5-4.3,0.5-5.4C609.7,193.1,611.9,186.3,620.1,191.3z"/>
-		<path d="M588.4,180.1c0,0,4.1,4.6,8.3,1.6l7.8-7.5l0.2,0.9l-6.6,7.4c0,0-3.5,3-7.4,1.3C587.8,182.7,588.4,180.1,588.4,180.1z"/>
-		<path d="M606.8,198.9c0,0,4.1,4.6,8.3,1.6l7.8-7.5l0.2,0.9l-6.6,7.4c0,0-3.5,3-7.4,1.3C606.2,201.4,606.8,198.9,606.8,198.9z"/>
-		<path d="M626.2,216.6c0,0,4.1,4.6,8.3,1.6l7.8-7.5l0.2,0.9l-6.6,7.4c0,0-3.5,3-7.4,1.3C625.6,219.2,626.2,216.6,626.2,216.6z"/>
-		<path d="M619.8,147.4c0,1,0.1,2.1,0.8,2.8c0.5,0.6,1.4,0.8,2.1,1.1c4.3,1.2,13.2,1.1,16.1-2.3c1.1-1.3,1.5-3.3,2.3-4.8
-			c3.7-7.7,4.6-11,6.6-18.1c0.7-2.4,1.8-1.9,3.2-3.9c1.4-2,3.9-5,5.5-6.8c2.2-2.5,1.9-3.4,3.7-6c0.4-0.6,1.3-0.9,2.1-0.9
-			c1,0,1.9,0.7,2.7,1.5c6.5,6.1,13.2,12.1,19.9,18c2.3,2.1,4.7,4.1,7,6.2c15.5,13.8,31,27.6,46.5,41.4c0.6,0.6,1.4,1.2,2.2,1
-			c0.7-0.1,1.2-0.8,1.6-1.4c4.4-6.9,7.3-15.4,14.1-20c2.6-1.8,5.7-2.9,8.6-4.1c4.9-2.1,9.5-4.8,13.8-7.9c0.6-0.4,1.2-0.9,1.6-1.5
-			c0.5-0.8,0.6-1.9,0.5-2.9c-0.5-8.2-6.6-12.9-10.2-20.3c-2.1-4.3-4.8-10.1-7.5-14c-1.4-2-2-4.3-3.3-6.3c-1.6-2.5-2.8-4.9-4.3-7.4
-			c-3.9-6.1-7.9-12.5-11.3-18.9c-9.2,3.9-16.4,6.9-25.6,10.9c-3.1,1.3-6.2,2.6-9.6,2.8c-3.2,0.1-6.3-0.8-9.3-1.7
-			C687,80.4,674,78,661.1,75.7c-2.2-0.4-4.4-0.8-6.5-0.3c-2.5,0.6-4.5,2.2-6.5,3.9c-8.4,7-19,13-27.4,20c-5.2,4.4-2.3,14.8-2,21
-			C619,129.3,619.4,138.4,619.8,147.4z"/>
-		<path class="st0" d="M637.4,135.9c1-5.2,2.1-10.3,4.5-15.2c2.5-5.1,3.5-6,5.9-11.5c1.8,0.8,4.3-1.5,5.8-0.9
-			c6.3,2.6,9.6,6.9,16.9,10.6c6.9,3.5,13.8,7.2,19.7,12.2c3.8,3.1,7.2,6.8,11.1,9.7c5,3.8,10.7,6.5,15.6,10.4
-			c6.2,4.9,9.2,9.2,15.2,14.6c1.6-6.3,6-8.9,11.7-12.2c2.7-1.6,8.9-5.9,11.7-7.4c2.9-1.5,4.6-2.8,7.2-4.8c1.1-0.8,7.1-1.9,7.1-3.3
-			c0-2.9-4.1-7.1-6.6-10.9c-8.4-12.5-15.5-25.6-23.3-38.7c-0.6-1-1.3-2-2.4-2.3c-0.9-0.3-1.9,0.1-2.8,0.4c-5.4,2.1-14,4.9-19.4,7
-			c-2.1,0.8-4.4,1.7-6.7,1.7c-2,0-4-0.7-5.9-1.4c-13.6-4.7-27.7-8-42-9.9c-1.7-0.2-3.4-0.4-5.1,0c-1.4,0.3-2.6,1.1-3.8,1.8
-			c-7.9,4.9-15.5,10.2-22.8,16c-1.3,1-2.6,2.2-3.2,3.7c-0.6,1.5-0.3,3.2,0,4.8c1.5,9.2-0.5,16.9,0.2,26.2c0.4,5.3,0.1,6.9,2.8,6.5
-			C632.1,142.6,636.9,138.4,637.4,135.9z"/>
-		<path d="M672.6,122.8c0,0,16.8,3.4,31.5,1.1c0,0-11.3,5.3-27.2,2.5L672.6,122.8z"/>
-		<path class="st1" d="M645.2,229.4c0,0,2.6,3.1,4.9,3c0,0,5.2-2.7,4.9-4.8s-3.9-5.5-7.8-3.7C647.2,224,645.1,226.8,645.2,229.4z"/>
-		<path d="M645,229.1c0,0,4.1,4.1,7.3,1.8l5.8-5.6l0.2,0.7l-5,5.6c0,0-3.2,2.3-6.6,0.4C644.7,230.7,645,229.1,645,229.1z"/>
-		<path class="st1" d="M626,124.6c0-0.8,0.9-1.1,1.2-0.4c0.6,1,1.4,4.4,1.7,7.4c0,0,0.2,8.9-1.4,11.2c-0.2,0.3-0.7,0.1-0.9-0.2
-			c-0.5-0.8-1.3-3.2-1.2-9.2L626,124.6z"/>
-		<path class="st1" d="M743.6,94.3c-1-1.5-3.1-4.3-3.8-5.7c-1.1-2-1.4-2.5-3.7-2.5c-8.2,2.1-16.4,6.4-24.4,8.8
-			c1.1,0.5,5.8,1.4,6.7,2.1c4.5,3.3,2.2,1.5,6.7,4.8c6.1-1.6,14-2.1,19.9-4.1c0.3-0.1,0.4,0,0.5-0.2L743.6,94.3z"/>
-		<path d="M646.9,111.9c0,0,0.9-5.6,0.8-9.1c0,0,1.4,5.4,1.3,6.5c0,0,2.5-1.7,2.3-3.7v6.3H646.9z"/>
-		<path class="st1" d="M636.3,102.4c1.4-0.4,2.7-1.2,4-2c4.1-2.6,8.3-5.2,12.4-7.8c2.3-1.4,4.6-2.9,7.2-3.5
-			c3.7-0.9,7.6,0.1,11.3,0.9c6.1,1.3,12.3,2.2,18.6,3.1c3.6,0.5,7.4,1,11,0.2c-13.2-4.1-26.4-8.2-40.2-9.2c-1.7-0.1-3.4-0.2-5,0.2
-			c-1.3,0.4-2.6,1.1-3.8,1.8c-4.2,2.5-8.3,5.1-12.4,7.8c-3.8,2.5-8.5,5-11.8,8.3C628.4,103.6,634.8,102.8,636.3,102.4z"/>
-		<path d="M626,124.6c0,0,1.6-0.9,2.2,2.5c0,0,0.9,5.1,0.8,7.9c0,0,1.5-7.2-0.9-12.3c0,0-2.9-2.9-5,0L626,124.6z"/>
-	</g>
-	<g>
-		<path class="st1" d="M64.1,100.6V67.4h6.7l9.4,28.1l9.4-28.1h6.7v33.2h-3.7V71.3h-0.7l-9.6,28.1h-4.1l-9.6-28.1h-0.7v29.3H64.1z"
-			/>
-		<path class="st1" d="M119.9,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3
-			c0-8.4,3.3-12.6,10-12.6c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9
-			c1,1.3,2.6,1.9,5,1.9C115,97.9,117.4,97.8,119.9,97.6z M118.6,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8
-			c-2.1,0-3.7,0.6-4.8,1.9c-1.1,1.3-1.6,3.3-1.7,6.1H118.6z"/>
-		<path class="st1" d="M144.1,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3
-			c0-8.4,3.3-12.6,10-12.6c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9
-			c1,1.3,2.6,1.9,5,1.9C139.2,97.9,141.6,97.8,144.1,97.6z M142.8,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8
-			c-2.1,0-3.7,0.6-4.8,1.9c-1.1,1.3-1.6,3.3-1.7,6.1H142.8z"/>
-		<path class="st1" d="M164.3,79.7h-7.6v11.5c0,2.8,0.2,4.6,0.6,5.4c0.4,0.9,1.4,1.3,2.9,1.3l4.3-0.3l0.2,3
-			c-2.1,0.4-3.8,0.5-4.9,0.5c-2.5,0-4.2-0.6-5.2-1.8c-1-1.2-1.4-3.5-1.4-7V79.7h-3.4v-3.1h3.4v-7.3h3.6v7.3h7.6V79.7z"/>
-		<path class="st1" d="M168.7,71.2V67h3.6v4.2H168.7z M168.7,100.6v-24h3.6v24H168.7z"/>
-		<path class="st1" d="M182.8,100.6h-3.6v-24h3.6v1.7c2.6-1.4,5.1-2.2,7.4-2.2c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7
-			h-3.6V88c0-3.3-0.3-5.6-1-6.8c-0.7-1.2-2.1-1.8-4.2-1.8c-1,0-2.1,0.2-3.2,0.5c-1.1,0.3-2,0.6-2.6,0.9l-0.9,0.4V100.6z"/>
-		<path class="st1" d="M214.3,111.9c-3.8,0-6.5-0.5-8-1.6c-1.5-1-2.3-2.9-2.3-5.7c0-1.3,0.3-2.4,0.9-3.2c0.6-0.8,1.6-1.7,2.9-2.8
-			c-0.9-0.6-1.3-1.7-1.3-3.3c0-0.5,0.4-1.6,1.2-3l0.4-0.8c-2.5-1.2-3.8-3.6-3.8-7.2c0-5.5,3-8.2,9-8.2c1.5,0,3,0.2,4.3,0.5l0.7,0.1
-			l7.1-0.2v3.1l-4.6-0.1c1.1,1.1,1.6,2.7,1.6,4.8c0,3-0.7,5.1-2.2,6.3s-3.8,1.8-7,1.8c-0.9,0-1.6-0.1-2.4-0.2
-			c-0.6,1.4-0.9,2.3-0.9,2.7c0,1,0.3,1.6,0.9,1.8c0.6,0.2,2.4,0.4,5.5,0.4c3.1,0,5.3,0.5,6.6,1.4c1.3,1,2,2.8,2,5.6
-			C224.9,109.3,221.4,111.9,214.3,111.9z M207.5,104.4c0,1.7,0.5,2.9,1.4,3.5c0.9,0.7,2.7,1,5.2,1s4.4-0.4,5.5-1.1
-			c1.1-0.7,1.7-1.9,1.7-3.5c0-1.6-0.4-2.7-1.2-3.2c-0.8-0.5-2.4-0.7-4.7-0.7l-5.2-0.2c-1.1,0.8-1.8,1.4-2.1,2
-			C207.7,102.7,207.5,103.5,207.5,104.4z M207.8,84.3c0,1.9,0.4,3.2,1.3,4c0.8,0.8,2.2,1.2,4.2,1.2c2,0,3.3-0.4,4.2-1.2
-			c0.8-0.8,1.2-2.2,1.2-4.1c0-1.9-0.4-3.3-1.2-4.1s-2.2-1.2-4.2-1.2c-2,0-3.4,0.4-4.2,1.2C208.3,81.1,207.8,82.4,207.8,84.3z"/>
-		<path class="st1" d="M237.2,79.3c-3.5,0-5.2,1.2-5.2,3.6c0,1.1,0.4,1.9,1.2,2.4c0.8,0.5,2.6,0.9,5.5,1.4c2.8,0.5,4.9,1.2,6,2.1
-			c1.2,0.9,1.8,2.6,1.8,5c0,2.5-0.8,4.3-2.4,5.4s-3.9,1.7-6.9,1.7c-2,0-4.3-0.2-7-0.7l-1.4-0.2l0.2-3.1c3.6,0.5,6.4,0.8,8.3,0.8
-			s3.3-0.3,4.2-0.9c1-0.6,1.5-1.6,1.5-3c0-1.4-0.4-2.3-1.2-2.8c-0.8-0.5-2.7-1-5.5-1.4c-2.8-0.4-4.8-1.1-6-2
-			c-1.2-0.9-1.8-2.5-1.8-4.8c0-2.3,0.8-4.1,2.5-5.2c1.6-1.1,3.7-1.7,6.2-1.7c2,0,4.4,0.2,7.3,0.7l1.3,0.2l-0.1,3.1
-			C242.1,79.6,239.3,79.3,237.2,79.3z"/>
-	</g>
-	<g>
-		<path class="st0" d="M68.4,148.9h-6.9v-12.5h1.4v11.2h5.5V148.9z"/>
-		<path class="st0" d="M75.9,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C74.1,147.9,75,147.9,75.9,147.8z M75.5,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H75.5z"/>
-		<path class="st0" d="M85.3,142.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7
-			c-0.8,0-1.5-0.2-1.9-0.7c-0.4-0.5-0.6-1.1-0.6-2s0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4c1,0,1.8,0.2,2.2,0.7
-			C85,140.9,85.3,141.6,85.3,142.6z M79.7,146.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C79.8,145.4,79.7,145.8,79.7,146.3z"/>
-		<path class="st0" d="M87.9,148.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5s-1,0.4-1.3,0.5l-0.4,0.2v6.6H87.9z
-			"/>
-		<path class="st0" d="M95.5,148.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8H100v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M109.1,148.9h-1.4V136h1.4v4.4c1-0.5,1.9-0.7,2.8-0.7c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3
-			v-4.7c0-1.2-0.1-2.1-0.4-2.6c-0.2-0.5-0.8-0.7-1.6-0.7c-0.8,0-1.5,0.1-2.2,0.4l-0.3,0.1V148.9z"/>
-		<path class="st0" d="M117.1,144.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1c0.6,0.7,0.9,1.9,0.9,3.6
-			c0,1.6-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1s-2.5-0.4-3-1.1C117.3,147.2,117.1,146,117.1,144.4z M118.4,144.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8c0.3-0.5,0.5-1.4,0.5-2.8s-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			s-1.6,0.2-1.9,0.7C118.6,142.2,118.4,143.1,118.4,144.4z"/>
-		<path class="st0" d="M126.1,139.9h1.4l1.8,7.8h0.3l2.1-7.7h1.4l2.1,7.7h0.3l1.8-7.8h1.4l-2.1,9h-2.2l-1.9-7l-1.9,7h-2.2
-			L126.1,139.9z"/>
-		<path class="st0" d="M143.8,139.9h1.4l1.8,7.8h0.3l2.1-7.7h1.4l2.1,7.7h0.3l1.8-7.8h1.4l-2.1,9H152l-1.9-7l-1.9,7h-2.2
-			L143.8,139.9z"/>
-		<path class="st0" d="M164.3,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C162.5,147.9,163.4,147.9,164.3,147.8z M163.8,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H163.8z"/>
-		<path class="st0" d="M174.6,139.7c0.4,0,1.1,0.1,2,0.2l0.4,0.1l-0.1,1.1c-1-0.1-1.7-0.2-2.1-0.2c-1,0-1.7,0.2-2.1,0.7
-			s-0.5,1.4-0.5,2.7c0,1.3,0.2,2.2,0.5,2.7c0.3,0.5,1.1,0.8,2.1,0.8l2.1-0.2l0.1,1.1c-1.1,0.2-2,0.3-2.5,0.3c-1.4,0-2.4-0.4-2.9-1.1
-			s-0.8-1.9-0.8-3.6s0.3-2.9,0.9-3.6C172.3,140.1,173.2,139.7,174.6,139.7z"/>
-		<path class="st0" d="M178.6,144.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1c0.6,0.7,0.9,1.9,0.9,3.6
-			c0,1.6-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1s-2.5-0.4-3-1.1C178.8,147.2,178.6,146,178.6,144.4z M180,144.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8c0.3-0.5,0.5-1.4,0.5-2.8s-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			s-1.6,0.2-1.9,0.7C180.1,142.2,180,143.1,180,144.4z"/>
-		<path class="st0" d="M189.8,148.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3
-			v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M205,136v12.9h-1.3v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-0.5,0-0.9-0.1-1.3-0.2s-0.7-0.3-1-0.6
-			c-0.6-0.6-1-1.8-1-3.6s0.3-3,0.9-3.8c0.6-0.8,1.5-1.2,2.9-1.2c0.7,0,1.4,0.1,2.2,0.2v-4H205z M200.4,147.8
-			c0.2,0.1,0.5,0.1,0.8,0.1s0.7-0.1,1.2-0.2s0.8-0.2,1-0.3l0.4-0.2v-6.1c-0.8-0.1-1.5-0.2-2.1-0.2c-0.9,0-1.5,0.3-1.9,0.9
-			c-0.4,0.6-0.5,1.5-0.5,2.7c0,1.4,0.2,2.3,0.6,2.8C199.9,147.5,200.1,147.7,200.4,147.8z"/>
-		<path class="st0" d="M213.3,139.9h1.3v9h-1.3v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-1.2,0-2-0.3-2.4-1c-0.4-0.6-0.6-1.8-0.6-3.5v-4.7
-			h1.3v4.7c0,1.3,0.1,2.2,0.3,2.6c0.2,0.4,0.7,0.7,1.5,0.7c0.4,0,0.8-0.1,1.2-0.2c0.4-0.1,0.7-0.2,0.9-0.3l0.3-0.2V139.9z"/>
-		<path class="st0" d="M220.6,139.7c0.4,0,1.1,0.1,2,0.2l0.4,0.1l-0.1,1.1c-1-0.1-1.7-0.2-2.1-0.2c-1,0-1.7,0.2-2.1,0.7
-			s-0.5,1.4-0.5,2.7c0,1.3,0.2,2.2,0.5,2.7c0.3,0.5,1.1,0.8,2.1,0.8l2.1-0.2l0.1,1.1c-1.1,0.2-2,0.3-2.5,0.3c-1.4,0-2.4-0.4-2.9-1.1
-			s-0.8-1.9-0.8-3.6s0.3-2.9,0.9-3.6C218.3,140.1,219.2,139.7,220.6,139.7z"/>
-		<path class="st0" d="M229.7,141.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V141.1z"/>
-		<path class="st0" d="M236.7,148.9h-1.4v-9h1.3v0.6c0.9-0.5,1.8-0.8,2.6-0.8c1.1,0,1.9,0.3,2.3,0.9c0.4-0.2,0.9-0.5,1.5-0.6
-			c0.6-0.2,1.2-0.3,1.7-0.3c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.5-0.7
-			c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-1,0.3l-0.3,0.2c0.2,0.4,0.2,1.3,0.2,2.6v4.7H241v-4.6c0-1.3-0.1-2.2-0.4-2.6
-			c-0.2-0.5-0.7-0.7-1.5-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-0.9,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M256.5,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C254.7,147.9,255.6,147.9,256.5,147.8z M256,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H256z"/>
-		<path class="st0" d="M265.6,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C263.8,147.9,264.7,147.9,265.6,147.8z M265.1,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H265.1z"/>
-		<path class="st0" d="M273.2,141.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V141.1z"/>
-		<path class="st0" d="M274.8,137.9v-1.6h1.4v1.6H274.8z M274.8,148.9v-9h1.4v9H274.8z"/>
-		<path class="st0" d="M280.1,148.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3
-			v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M291.9,153.2c-1.4,0-2.4-0.2-3-0.6c-0.6-0.4-0.9-1.1-0.9-2.1c0-0.5,0.1-0.9,0.3-1.2c0.2-0.3,0.6-0.7,1.1-1
-			c-0.3-0.2-0.5-0.6-0.5-1.2c0-0.2,0.1-0.6,0.4-1.1l0.2-0.3c-0.9-0.4-1.4-1.3-1.4-2.7c0-2.1,1.1-3.1,3.4-3.1c0.6,0,1.1,0.1,1.6,0.2
-			l0.3,0.1l2.7-0.1v1.2l-1.7,0c0.4,0.4,0.6,1,0.6,1.8c0,1.1-0.3,1.9-0.8,2.4s-1.4,0.7-2.6,0.7c-0.3,0-0.6,0-0.9-0.1
-			c-0.2,0.5-0.3,0.9-0.3,1c0,0.4,0.1,0.6,0.3,0.7c0.2,0.1,0.9,0.1,2.1,0.1c1.2,0,2,0.2,2.5,0.5s0.8,1.1,0.8,2.1
-			C295.9,152.2,294.6,153.2,291.9,153.2z M289.4,150.3c0,0.6,0.2,1.1,0.5,1.3c0.4,0.2,1,0.4,2,0.4c1,0,1.6-0.1,2.1-0.4
-			c0.4-0.3,0.6-0.7,0.6-1.3s-0.2-1-0.5-1.2c-0.3-0.2-0.9-0.3-1.8-0.3l-1.9-0.1c-0.4,0.3-0.7,0.5-0.8,0.8
-			C289.4,149.7,289.4,150,289.4,150.3z M289.5,142.8c0,0.7,0.2,1.2,0.5,1.5c0.3,0.3,0.8,0.4,1.6,0.4c0.7,0,1.3-0.1,1.6-0.4
-			c0.3-0.3,0.5-0.8,0.5-1.5s-0.2-1.2-0.5-1.5c-0.3-0.3-0.8-0.5-1.6-0.5c-0.7,0-1.3,0.2-1.6,0.5C289.7,141.6,289.5,142.1,289.5,142.8
-			z"/>
-		<path class="st0" d="M300.5,140.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.5,0.9c0.3,0.2,1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8
-			c0.4,0.3,0.7,1,0.7,1.9s-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2
-			c1.4,0.2,2.4,0.3,3.1,0.3c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1c0-0.5-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5
-			c-1.1-0.2-1.8-0.4-2.2-0.7c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9c0.6-0.4,1.4-0.6,2.3-0.6c0.7,0,1.7,0.1,2.8,0.3l0.5,0.1
-			l0,1.2C302.3,141,301.3,140.9,300.5,140.9z"/>
-	</g>
-</g>
-</svg>

File diff suppressed because it is too large
+ 0 - 10
meetings/img/meetings-cover_new.svg


+ 0 - 840
meetings/rome/README.md

@@ -1,840 +0,0 @@
-Table of Contents
-=================
-
-<!-- TOC START min:1 max:3 link:true asterisk:false update:true -->
-- [Planned Meetings](#planned-meetings)
-  - [Release Checklist Meeting](#release-checklist-meeting)
-    - [Agenda](#agenda)
-    - [Minutes](#minutes)
-  - [Lessons Learned](#lessons-learned)
-    - [Agenda](#agenda-1)
-    - [Minutes](#minutes-1)
-- [Conducted Meetings](#conducted-meetings)
-  - [Launch Meeting](#launch-meeting)
-    - [Agenda](#agenda-2)
-    - [Minutes](#minutes-2)
-  - [User Stories Meeting](#user-stories-meeting)
-    - [Agenda](#agenda-3)
-    - [Minutes](#minutes-3)
-  - [Release Plan Finalization Meeting](#release-plan-finalization-meeting)
-    - [Agenda](#agenda-4)
-    - [Minutes](#minutes-4)
-  - [Sprint in London](#sprint-in-london)
-    - [Agenda](#agenda-5)
-    - [Minutes](#minutes-5)
-  - [Rome Release Status Meeting](#rome-release-status-meeting)
-    - [Agenda](#agenda-6)
-    - [Minutes](#minutes-6)
-<!-- TOC END -->
-
-# Planned Meetings
-
-## Release Checklist Meeting
-
-- **ID:** `Rome Release Checklist Meeting`
-- **Date:** `dd.mm.yy`
-- **Starts:** `hh:mm GMT+2`
-- **Scheduled Duration:** `min`
-- **Venue:** `ZOOM`
-- **Lead**: `NA`
-- **Minutes**: `NA`
-- **Participants**:
-  - `name1`
-  - ...
-
-### Agenda
-#### Item 1
-1. Review the [Release Checklist](../../testnet#release-checklist) draft, and compare it to the release plan.
-2. Land a final Release Checklist, that contains all items and sorted it in order of deployment.
-
-
-### Minutes
-**Started at:** `hh:mm GMT+2`
-**Present:**
-  - `name1`
-  - ...
-
-#### Item 1
-...
-
-**Other topics raised:**
-...
-
-**Ended at:** `hh:mm GMT+2`
-
-
----
-
-## Lessons Learned
-
-- **ID:** `Rome Lessons Learned`
-- **Date:** `dd.mm.yy`
-- **Starts:** `hh:mm GMT+2`
-- **Scheduled Duration:** `min`
-- **Venue:** `ZOOM`
-- **Lead**: `NA`
-- **Minutes**: `NA`
-- **Participants**:
-  - `name1`
-  - ...
-
-### Agenda
-#### Item 1
-...
-
-
-### Minutes
-**Started at:** `hh:mm GMT+2`
-**Present:**
-  - `name1`
-  - ...
-
-#### Item 1
-...
-
-**Other topics raised:**
-...
-
-**Ended at:** `hh:mm GMT+2`
-
-# Conducted Meetings
-
-## Launch Meeting
-
-- **ID:** `Rome Launch Meeting`
-- **Date:** `10.07.19`
-- **Starts:** `11:30 GMT+2`
-- **Scheduled Duration:** `45min`
-- **Venue:** `ZOOM`
-- **Lead**: `Martin`
-- **Minutes**: `Martin`
-- **Participants**:
-  - `Alex`
-  - `Bedeho`
-  - `Martin`
-  - `Mokhtar`
-
-### Agenda
-#### Item 1
-Discuss draft Rome [release plan](../../testnets/rome).
-
-#### Item 2
-Discuss draft [release OKR](/okrs#release-okrs).
-
-#### Item 3
-Schedule [user stories meeting](#user-stories-meeting)
-
-### Minutes
-**Started at:** `11:30 GMT+2`
-**Present:**
-  - `Alex`
-  - `Bedeho`
-  - `Martin`
-  - `Mokhtar`
-
-#### Item 1
-1. Went through the draft Release plan point by point
-2. Points that were unclear, inaccurate, missing or wrong, were corrected or marked for change.
-
-#### Item 2
-1. Martin presented a draft OKR, with an emphasis on a proposed new way of making, tracking and grading the KRs using github issues, as discussed in the [Acropolis Lessons Learned Meeting](../acropolis#lessons-learned).
-    - In practice, it meant breaking down each KR into tasks
-    - The tasks would be sorted by the affected parties/repos, and a checkbox would accompany each task.
-    - Each task could (optionally) be assigned a weighting, to get an objective tracking of the progress.
-        - Each KR issue would also include an objective and pre-defined formulae for finally grading the KR. This would not necessarily be mapped to the same tasks.
-    - Each Monday, all affected parties would have a meeting, evaluating progress and checking off completed tasks.
-    - A summary of that weeks meeting, alongside a tracking grade, would be added as a comment by the release manager.
-    - This summary would be presented on the [Weekly All Hands](https://github.com/Joystream/joystream#monday-all-hands), which would be moved to Tuesday.
-
-2. The general sentiment was that the concept seemed like an improvement in certain areas, but the presented draft was not sufficient to convince all attendees that it sufficiently addressed the problems with the old release OKR system.
-
-3. Attendees shall present proposals to what the KRs should cover.
-
-
-#### Item 3
-
-This was not addressed.
-
-**Other topics raised:**
-NA
-
-**Ended at:** `15:00 GMT+2`
-
----
-
-## User Stories Meeting
-
-- **ID:** `Rome User Stories Meeting`
-- **Date:** `16.07.19`
-- **Starts:** `11:00 GMT+2`
-- **Scheduled Duration:** `1h30min`
-- **Venue:** `ZOOM`
-- **Lead**: `Martin`
-- **Minutes**: `Martin`
-- **Participants**:
-  - `Alex`
-  - `Bedeho`
-  - `Martin`
-  - `Mokhtar`
-
-### Agenda
-
-Review and discuss Users Stories.
-Note that during the meeting, it was decided to change the order of discussion due to time constraints. These changes are reflected below.
-
----
-
-#### 1. General Signup
-
-NB1: provider refers to either storage provider or distributor.
-
-NB2: These stories are kind of hand wavy. Many of the stories may be better suited off chain, e.g. coordinated through a server run by conductor. But it remains to be seen.
-
-##### As a prospective provider I want to
-- see terms associated with existing providers roles
-- see terms associated with open positions for new roles
-- apply to an open position with one click
-- one click download each auto generated key (stash, controller, session) for each role applied to
-- get notified if accepted into a position
-- see list of all positions I have occupied now and prior, and corresponding payouts, and circumstances of leaving.
-- get notified if slashed
-- get notified if evicted
-- leave a role
-
-
-
-##### As a Conductor I want to
-- add an open position with given terms
-- close an open position
-- slash a provider from a position
-- evict a provider from a position
-- get in touch with a provider out of band
-- add an obligation to the provider
-- remove the obligation from provider
-- quickly determine if a new accepted provider is correctly configured
-
----
-
-#### 2. Apollo
-
-##### As a prospective provider I want to
-- start Apollo with given keys
-- stop Apollo
-- see Apollo session status of node
-- see Apollo recent usage log
-
----
-
-#### 3. Colossus
-
-##### As a node operator I should be able to:
-- (Stake) Configure and enter storage role entirely from the command line, in an interactive process, where only essential secret keys are required on the node running the storage node software.
-- (Unstake) leave the role easily without losing access to staked (stash) keys
-- Re-enter the role after unstaking without overwriting old staking keys
-- Get status of my node:
-  - Sync status, IPNS publishing status. Total storage consumed...
-- Get usage stats:
-   - number of objects served/uploaded, total data transferred
-- Check if there is a version update available
-- Enter a test mode - non operational mode for testing setup and configuration
-- Configure a remote IPFS node to use
-- Configure a remote endpoint as joystream full node
-- Gracefully shutdown node
-
-##### The node itself should:
-- Not enter operational status until the chain is fully synced
-- Synchronize data objects over IPFS from other storage providers
-- Provide a REST API for receiving new data objects from publishers, and accepting transfers to distributors nodes
-- Provide a REST API for service resolution
-
----
-
-#### 4. Content Directory
-
-These stories describe the functionality of a general purpose Versioned Object Database system upon which the content directory for the platform will be constructed.
-
-##### As system sudo I can:
-- create a new `class group` x1
-- assign a `class group` sudo
-- have same permissions as class group sudo
-
-##### As `class group` sudo I can:
-- create a new Class
-- create a new Entity of an existing Class in my group
-- create a new Schema for a Class in my group, supporting use of an Object Property type that can map to a DataObjectID, of a specific DataObjectFamily from the Data Directory
-- create a new object of a specific schema for an existing Entity in my class group.
-- update the object properties of any object in my class group
-
-##### Any user of the platform can:
-- get a list of all classes, and entities
-- for each class get all its entities
-- for each entity get all versions of its object representation
-
-x1 - A `class group` is a logical grouping of Classes. It allows for segmenting the database and assigning different sudo accounts for different groups. A class group sudo can only create new classes and entities, under their group.
-
-Assume Database has following structure:
-Classes: `["Podcast", "PodcastTheme", "Episode", "Person"]`
-Schemas:
-```
-Podcast {
-  name: varchar(30),
-  host: Internal(Person),
-  // themes: Array(PodcastTheme) // array propertytype is not yet in spec
-  theme: PodcastCategory // might be limiting if a show fits in multiple categories
-}
-
-PodcastTheme {
-  name: varchar(30),
-}
-
-Person {
-  memberId: Option<External("Membership", 0)>,
-  email: varchar(150),
-}
-
-Episode {
-   podcast: Internal(Podcast),
-   title: varchar(50),
-   guest: Internal(Person), // Array ? guests
-   track: External("DataDirectory", DataObjectFamilyId = 0)
-}
-```
-
-##### In Pioneer a user should be able to:
-- browse list of `Podcast`s,
-- Sort podcasts by `Theme` or show host,
-- select a podcast and get a list of all `Episode`s
-- find episodes (from different shows) on which a guest appeared
-
-Should have similar stories for a `Movie` and associated classes. (Final list of content types to include in Rome is TBD)
-
-##### Stretch Goal
-- In Pioneer, anyone can use a tool to create a  *simple text formatted* description of a schema.
-- Sudo can use a command line tool to build an extrinsic that can create a new schema for a class.
-
-Instead of Arrays (eg. to add all guests that appeared on a show), we can have create a Class:
-```
-PodcastGuestAppearance {
-  episode: Internal(Episode),
-  guest: Internal(Person)
-}
-```
-
----
-
-
-#### 5. Community Fund Proposal System
-
-##### As a platform member and stakeholder, I want
-- a community fund of real money.
-- to be able to make proposals and apply for grants.
-- to be able to propose competitions, and get paid to arrange them.
-- to be able to participate in competitions and win real money.
-- to be able to propose increasing participation payouts.
-- a forum category to discuss and evaluate proposals.
-- insight on what Council Members think about proposals.
-
-##### As a Council Member candidate, I want
-- to communicate to stakeholders how I would allocate the resources as part of my campaign.
-- show my constituency that I want to support their cause as part of my campaign.
-- show that I can make good proposals that would help build the community.
-- show that I can evaluate, improve and find flaws in other proposals.
-
-##### As a Council Member, I want
-- all of the above.
-- the ability to vote and allocate the funds.
-
----
-
-### Minutes
-**Started at:** `11:00 GMT+2`
-**Present:**
-  - `Alex`
-  - `Bedeho`
-  - `Martin`
-  - `Mokhtar`
-
-**Note** All comments are in *italic*
-
----
-
-#### Item 1
-
-NB1: provider refers to either a storage provider or distributor.
-
-NB2: These stories are kind of hand wavy. Many of the stories may be better suited off chain, e.g. coordinated through a server run by conductor. But it remains to be seen.
-
-##### As a prospective provider I want to
-- see terms associated with existing providers roles
-- see terms associated with open positions for new roles
-- apply to an open position with one click
-- leave a role
-
-*It was decided to make the general `actor/working group` signup module small and generic. As a consequence, a lot of this will be off-chain. It was not resolved how much of this was going to be in Pioneer, and how to represent it.*
-
-
-##### As a Conductor I want to
-- add an open position with given terms
-- close an open position
-- slash a provider from a position *(without evicting, ie. only slash part of their stake)*
-- evict a provider from a position
-- add an obligation to provider *(content)*
-- remove the obligation from provider *(content)*
-- quickly determine if a new accepted provider is correctly configured
-
-*As above: It was decided to make the general `actor/working group` signup module small and generic. As a consequence, a lot of this will be off-chain. It was not resolved how much of this was going to be in Pioneer, and how to represent it.*
-
-
-##### Nice to haves
-- one click download each auto generated key (stash, controller, session) for each role applied to
-- get notified if accepted into a position *(email in node config was considered, or just wait for the chat system)*
-- see list of all positions I have occupied now and prior, and corresponding payouts, and circumstances of leaving.
-- get notified if slashed *(email in node config was considered, or just wait for the chat system)*
-- get notified if evicted *(email in node config was considered, or just wait for the chat system)*
-- get in touch with a provider out of band *(email in node config was considered, or just wait for the chat system)*
-
-*These stories were removed from the "must haves" to "nice to haves"*
-
----
-
-#### Item 2
-
-##### As a prospective provider I want to
-- start Apollo with given keys *(ie. use a session key, similar to running a joystream full node)*
-- stop Apollo
-- see Apollo session status of node *(similar to what "helios" already does)*
-- see Apollo recent usage log  *(This is/will be possible using the setup guide in helpdesk)*
-
----
-
-#### Item 3
-
-##### As a node operator I should be able to:
-- Get status of my node:
-  - Sync status, IPNS publishing status.  *("Total storage consumed..." was moved to nice to have)*
-- Configure a remote IPFS node to use
-
-##### The node itself should:
-- Not enter operational status until chain is fully synced *(This refers to the joystream-node)*
-- Synchronize data objects over IPFS from other storage providers
-- Provide a REST API for receiving new data objects from publishers, and accepting transfers to distributors nodes
-- Provide a REST API for service resolution
-
-*The final three points are already existing functionality*
-
-##### Nice to haves
-- Check if there is a version update available
-- Get usage stats:
-   - number of objects served/uploaded, total data transferred
-- Enter a test mode - non operational mode for testing setup and configuration *x*
-- Configure a remote endpoint as joystream full node *x*
-*x these two combined would mean users could test on a "reckless" testnet*
-- Gracefully shutdown node *(Refers to announcing you are down for maintenance)*
-- Get status of my node:
-  - Total storage consumed...
-
-*These stories were removed from the "must haves" to "nice to haves"*
-
----
-
-This was as far as we got on the first meeting. The remaining items will be addressed at a later date.
-
-**Other topics raised:**
-
-While going through items 1-3, a recurring topic was how much time and effort should be put into making the products user friendly, compared to the "quantity" and "quality" of users affected.
-
-More specifically, should we optimize to make it easy for actors, that are well paid for a role, without actually risking anything (no "real" stake), or should we rather expect them to monitor communication channels and the status of their software. By making everything easily accessible in Pioneer, and adding new ways of communicating directly, we are adding a significant workload on ourselves.
-
-**Ended at:** `12:30 GMT+2`
-
----
-
-**Day two:**
-**Started at:** `17.07.19 - 09:00 GMT+2`
-**Present:**
-  - `Alex`
-  - `Bedeho`
-  - `Martin`
-  - `Mokhtar`
-
----
-
-#### Item 4
-
-These stories describe the functionality of a general purpose Versioned Object Database system upon which the content directory for the platform will be constructed.
-
-##### As system sudo I can:
-- create a new `content directory sudo`
-- assign a `content directory sudo`
-
- *implement group permission in a separate module*
-
-##### As `content directory sudo` I can:
-- create a new Class
-- create a new Entity of an existing Class in my group
-- create a new Schema for a Class, supporting use of an Object Property type that can map to a DataObjectID, of a specific DataObjectFamily from the Data Directory
-- create a new object of a specific schema for an existing Entity
-- update the object properties of any object
-- use a command line tool or the extrinsics app from pioneer to send a tx and create a new schema for a class.
-
-*The final point was moved from nice to haves, as there has to be some way of making these. Whether the first implementation should be done via, extrinsics in pioneer or a standalone CLI, is TBD*
-
-##### Any user of the platform can use Pioneer to:
-- get a list of all classes, and entities
-- for each class get all its entities
-- for each entity get all versions of its object representation
-
-*It was not settled whether this should be via "regular" chain state queries, or a new x*
-
-##### As an uploader I can:
-- create a subset of Entities and Objects which the permissions module will limit to Members
-- update a subset of Entities and Objects which permissions module will limit to the content owner
-
-*Added so that uploaders can actually add metadata (such as "title" and "description" without extra permissions)*
-
-Assume Database has following structure:
-Classes: `["Podcast", "PodcastTheme", "Episode", "Person"]`
-Schemas:
-```
-Podcast {
-  name: varchar(30),
-  host: Internal(Person),
-  // themes: Array(PodcastTheme) // array propertytype is not yet in spec
-  theme: PodcastCategory // might be limiting if a show fits in multiple categories
-}
-
-PodcastTheme {
-  name: varchar(30),
-}
-
-Person {
-  memberId: Option<External("Membership", 0)>,
-  email: varchar(150),
-}
-
-Episode {
-   podcast: Internal(Podcast),
-   title: varchar(50),
-   guest: Internal(Person), // Array ? guests
-   track: External("DataDirectory", DataObjectFamilyId = 0)
-}
-```
-
-##### In Pioneer a user should be able to:
-- browse list of `Podcast`s, *(example)*
-- Sort podcasts by `Theme` or show host,
-- select a podcast and get a list of all `Episode`s
-- find episodes (from different shows) on which a guest appeared
-
-Should have similar stories for a `Movie` and associated classes. (Final list of content types to include in Rome is TBD)
-
-*The representation of this in pioneer is very much a WIP still*
-
----
-
-#### Item 5
-
-Not addressed yet.
-
----
-
-
-**Ended at:** `11:15 GMT+2`
-
----
-
-## Release Plan Finalization Meeting
-
-- **ID:** `Rome Release Plan Finalization Meeting`
-- **Date:** `20.08.19`
-- **Starts:** `11:15 GMT+2`
-- **Scheduled Duration:** `90min`
-- **Venue:** `ZOOM`
-- **Lead**: `Martin`
-- **Minutes**: `Martin`
-- **Participants**:
-  - `Alex`
-  - `Bedeho`
-  - `Martin`
-  - `Mokhtar`
-  - `Paul`
-
-### Agenda
-#### Item 1
-Go through the draft Release Plan and OKRs.
-- Correct any errors
-- Resolve open questions
-- Ensure the process is clear to all
-- Revisit the *very tentative* milestone dates
-
-#### Item 2
-Go through the Tracking Issues
-- Discuss how they are split
-- Discuss granularity
-- Discuss assigning
-- Discuss Tracking Issues -> OKR grading
-
-### Minutes
-**Started at:** `11:15 GMT+2`
-**Present:**
-  - `All`
-
-#### Item 1
-
-Started with a brief introduction of the new Release Plan format.
-
-- The main topic of discussion was the OKRs.
-  - Some changes were requested for clarity.
-  - Some numbers were changed for the community engagement KRs.
-- We agreed to leave the Milestone dates as proposed for now.
-- We agreed to upgrade the Substrate Node Template to a newer version, but decided to await more research and testing before choosing a specific version.
-- We agreed not to migrate any content from Acropolis to Rome.
-
-#### Item 2
-
-Started with a brief introduction of the Tracking Issues.
-
-- Two main issues raised:
-  - Should we add tentative dates to all tasks?
-    - We decided not to for now.
-  - Not everyone was convinced the Tracking Issues were split correctly.
-    - We decided to leave them as is unless a detailed counter proposal was made.
-- Due to time constraints, we only looked at their structure.
-- Everyone is responsible for reviewing the Tracking Issues, and propose improvements and additions.
-- Some good suggestions, like adding testing, was proposed and will be implemented.
-
-
-**Other topics raised:**
-
-NA
-
-**Ended at:** `12:50 GMT+2`
-
----
-
-## Sprint in London
-
-- **ID:** `Rome Sprint in London`
-- **Date:** `21.10.19-25.10.19`
-- **Venue:** `London`
-- **Lead**: `Martin`
-- **Minutes**: `Ben`
-- **Participants**:
-  - `Alex`
-  - `Bedeho`
-  - `Ben`
-  - `Martin`
-  - `Paul`  
-
-### Agenda
-The overall agenda is for the Jsgenesis team to get together under roof, and focus on getting `Rome` shipped.
-
-See separate [document](sprint-in-london.md) for specifics.
-
-### Minutes
-
-#### Brief Summary
-The Rome Sprint's overall objective was to allow the Jsgenesis team to accelerate the release of our latest testnet by enabling a coordinated response to the obstacles in the path of Rome's release, taking advantage of our physical proximity.
-
-The sprint officially began on Monday morning. However, the collaborative part of the trip was only able to get going in the afternoon when we were able to go through Tracking Issues 1-8 in order to decide which would be the top priority task(s) for each team member. Going through this together was helpful in understanding which tasks would be more useful to work on while all in the same room. This process was also useful for allowing team members to decide which tasks to embark on without the risk of blocking or being blocked by other members. Once chosen, we estimated how long would be required to complete our highest priority task and noted this on a whiteboard.
-
-On many occasions, it was possible for small groups or pairs of team members to go off and work on or discuss particular topics. This took the form of presentations (e.g. on the membership module) as well as informal discussions on subjects such as mockups and the "hiring flow" for actors on the platform. Work during the sprint was typically spread over two rooms, with one being dedicated to discussions and meetings, and the other intended for quiet computer work.
-
-We kept quite strictly to the schedule laid out [here](sprint-in-london.md) for the first two to three days, after which it seemed unnecessary to formally review everyone's priorities on a daily basis. It was also not considered necessary to formally discuss Constantinople, the testnet which will follow Rome, nor spend time evaluating the success or usefulness of the trip on Friday evening. We did discuss the benefits and drawbacks of such a sprint in the Tuesday all-hands following the sprint with the points being made highlighted below in the consensus section.
-
-#### Consensus
-- Team members were mostly satisfied with the progress made during the sprint.
-- There was a lot of value in lots of the work conducted in smaller groups and one-on-one.
-- Cross-communication was also very useful and was enabled by the physical nature of the meeting.
-- Smaller gatherings are often better than larger ones (i.e. sprint) for productivity.
-- Time spent programming etc. was occasionally not the best deployment of time. Some team members felt that we should have exclusively focussed team and pair activities made much easier by "being in a room together"
-- Whiteboard time was very useful and could not be easily replicated using video conference etc.
-- Some wondered whether the trip was cost-effective.
-- Some felt that the itinerary could have been better organized e.g. mealtimes.
-- It would have been nicer to have a more comprehensive plan for the sprint. This would have allowed for preparing in advance the things which could be shared with others (e.g. mockups).
-- We (eventually) got to spend valuable time on problems that are easier solved together: standing in front of a shared screen/whiteboard discussing design and data models.
-- We should have avoided excessive focus on tracking progress, no fun, adds little value.
-- We should have had daily "standup" at a specific time to help efficiently starting collaboration each day.
-- Best time for a sprint is perhaps super early in a release, or with more RnD/experimental focus, rather than tied to shipping.
-- We didn't always stick to the schedule.
-- It was very good for morale for everyone to meet each other.
-- Some of the early meetings involved people who were not relevant to the topics discussed, wasting time.
-
----
-
-## Rome Release Status Meeting
-
-- **ID:** `Rome Release Status Meeting`
-- **Date:** `10.02.20`
-- **Starts:** `12:00 GMT+1`
-- **Scheduled Duration:** `1h30m`
-- **Venue:** `ZOOM`
-- **Lead**: `Martin`
-- **Minutes**: `Ben`
-- **Participants**:
-  - `Alex`
-  - `Bedeho`
-  - `Ben`
-  - `Martin`
-  - `Mokhtar`
-  - `Paul`
-
-### Agenda
-
-#### Item 1 - Runtime
-
-- Status of the modules:
-  1. staking module
-  2. rewards (recurring) module
-  3. minting module
-  4. hiring module
-  5. membership module
-  6. versioned data store module
-  7. permissions module
-  8. content directory working group module
-
-
-#### Item 2 - Curation
-
-- Curator Group and tooling:
-  1. Tools for content
-  2. Joining flow
-  3. View status of curator group
-  4. Policing and editing flow
-
-
-#### Item 3 - Content
-
-- Non-pioneer
-  1. Schemas
-  2. Channels
-
-- Pioneer (video)
-  1. Channel creation/editing
-  2. Channel curation/moderation
-  3. Content creation/editing (upload)
-  4. Content curation/moderation
-  5. Content consumption and exploration
-
-#### Item 4 - Testing
-
-- Launch reckless chain(s)
-  1. One to rule them all?
-  2. One for each sub-system?
-
-- Testing (sub-system)
-  1. Curator Group (target date)
-  2. Channels + Content (target date)
-  3. Validator (target date)
-  4. Unchanged functionality  (target date)
-    - Forum
-    - Membership
-    - Council
-    - Runtime upgrades
-
-#### Item 5 - Infrastructure
-
-- Storage node
-  1. Change max file size
-  2. Support for "cleaning" content?
-
-- Migration and genesis config
-  1. Migration (still) working
-  2. Change genesis parameters and consequences
-    - Starting balance
-    - Faucet payout
-    - JOY rewards (Storage/Validation)
-    - Use telegram as "main faucet"?
-
-#### Item 6 - Community
-
-- Hire testers
-  1. How many/who?
-  2. Lead(s)
-
-- Incentives (prep for Constantinople)
-  1. Make them dynamic
-  2. Review, and re-align w/genesis config
-
-- Release
-  1. Assets
-  2. Coordination
-  3. Posts
-  4. Newsletters
-
-### Minutes
-**Started at:** `12:00 GMT+1`
-**Present:**
-  - `Alex`
-  - `Bedeho`
-  - `Ben`
-  - `Martin`
-  - `Mokhtar`
-  - `Paul`
-
-#### Item 1
-1. Staking Module: `Done, no open PRs, ready unless any bugs found`
-2. Rewards (Recurring) Module: `Done, no open PRs, ready unless any bugs found`
-3. Minting Module: `Done, no open PRs, ready unless any bugs found`
-4. Hiring Module: `Done, but some additional work being done here by Shamil`
-5. Membership Module: `Done, no open PRs, ready unless any bugs found`
-6. Versioned Data Store Module: `Done, no open PRs, ready unless any bugs found`
-7. Permissions Module: `Done, no open PRs, ready unless any bugs found`
-8. Content Directory Working Group Module:`Done, but there are open PRs with bugfixes and enhancements`
-
-#### Item 2 - Curation
-
-1. We first discussed the status of the tools connected to `versioned-store-js`. These will need Joystream types to be updated in order to allow them to work with the newest version of the runtime. Between three hours and one day will be required to update these.
-2. Paul estimated that if there are no more issues, the basic joining flow should be done this week within 6-7 working days.
-3. Viewing the status of the curator group is now done.
-4. We agreed that the editing flow here should be kept the same as for content creators, for simplicity and ease of development.
-
-
-#### Item 3 - Content
-
-1. In terms of `schemas`, we still need to implement channel as a property of a video (`channel-id`).
-2. Alex needs 1-2 more days of work on channel creation/editing for Pioneer.
-3. Channel curation and moderation does not need to be implemented in Pioneer. The ability to delete channels through `sudo` will be added post Rome release.
-4. Content creation and editing in Pioneer needs 3 more days of work by Alex. The UI and styling are already complete.
-5. Content consumption and exploration on Pioneer will need about half a day more work. We will not be including pagination on launch.
-
-
-#### Item 4 - Testing
-
-1. We agreed that for now one of the most important things is to have some sort of staging environment for Alex to test with. This would not be a local dev-chain, but rather a chain we all can test/connect to, with a working storage-node and validators.
-
-2. The following target dates were agreed for sub-system tests:
-
- - Curator Group (22/02/20)
- - Channels + Content (22/02/20)
- - Validator (21/02/20)
- - Unchanged functionality (21/02/20)
-
-#### Item 5 - Infrastructure
-
-1. We agreed to change the maximum file size of videos to be hosted by storage providers to greater than 100MB. This needs to be updated in both Pioneer and the Storage API.
-2. We won't be implementing support for "cleaning" content from storage nodes until after release.
-3. Mokhtar has finished migration.
-4. We also agreed that Aracus should be killed and replaced with some new Joystream-hosted nodes. Provisionally we agreed that these might be made up of 2 bootnodes, 1 also performing media discovery, 1 also acting as our storage provider and 1 or more nodes hosting Pioneer, with load balancing if applicable.
-5. The following `genesis config parameters` need to be re-evaluated:
-- Balances for existing members
-- Payouts (JOY) for Storage Providers, Validators and Curators
-- Open slots for Storage Providers, Validators and Curators
-- Staking requirements (JOY) for Storage Providers, Validators? and Curators
-- Smaller (relative) size of faucet tokens -> Use telegram for larger (JOY) token payouts, to avoid faucet abuse.
-- Perhaps more to consider
-
-#### Item 6 - Community
-
-1. We agreed that testers should be sourced from our Telegram group.
-2. We also agreed that incentives for Rome should be made dynamic to avoid making roles too lucrative.
-3. Assets for newsletters, blog posts and everything else relating to the release are to be prepared.
-
-
-**Other topics raised:**
-NA
-
-**Ended at:** `13:40 GMT+1`
-
----
-

+ 0 - 215
meetings/rome/img/meetings-cover.svg

@@ -1,215 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 882 300" style="enable-background:new 0 0 882 300;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#C4C3C6;}
-	.st1{fill:#FFFFFF;}
-	.st2{fill-rule:evenodd;clip-rule:evenodd;}
-	.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#C4C3C6;}
-	.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
-	.st5{fill:#010101;}
-	.st6{fill:none;}
-	.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#B1B2B7;}
-	.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;}
-	.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;}
-</style>
-<g id="Layer_4">
-	<path d="M876,209H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h870c3.3,0,6,2.7,6,6v197C882,206.3,879.3,209,876,209z"/>
-</g>
-<g id="Layer_2">
-</g>
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
-	<g>
-		<path d="M619.7,91.2c10.3,0.7,21.8,0.7,31.9,2.8c3,0.6,5.4,4.3,8,5.9c4.2,2.5,7.4,6.3,10.6,9.9c17.1,19.1,38.4,33.7,58.7,49.3
-			c8.3,6.4,16.8,13.5,19.8,23.5s-2.5,23.1-12.9,24.1c2.6,6,1.1,13.5-3.8,17.9s-12.5,5.2-18.2,2c4.2,5.9-1.5,14.7-8.6,16.4
-			c-7.1,1.6-14.3-1.5-20.9-4.5c0.4,6.8-7.3,11.8-14.1,11.2s-12.6-4.9-18-9.1c-8.9-6.9-17.7-13.7-26.6-20.6
-			c-16.7-12.9-34-26.6-43.3-45.6c-1.9-3.8-3.4-7.8-6.1-11.1c-2.4-2.8-5.5-4.9-8.5-6.9c-10.1-6.5-20.7-12.3-31.7-17.4
-			c5-10.2,10.1-20.4,15.5-30.4c3.8-7.1,17.3-30.4,17.3-30.4c8.6,2,15.4,7.3,22.8,9.5C601.1,90.4,610,90.5,619.7,91.2z"/>
-		<path class="st0" d="M700.8,236c-3.4,1.6-8.1-1.3-14.3-4.7c-4.1-2.2-35.2-21.6-35.2-21.6c1.3,2.6,27.4,20.6,26.1,23
-			c-1.5,2.8-5.5,6.2-6.6,6.3c-2,0.3-8.3-4.3-8.3-4.3c-21.2-14.8-33.2-24.8-49.3-45c-8.7-10.9-16.7-21.3-26.5-31.3
-			c-9.8-10-21.3-18.1-33.2-23.8c5.5-10,16.6-28.7,21.4-39.3c0.9-2,30.2,7.4,46.7,7.6c5.5,0.1,16.2,0.9,21.4,2.7c3.2,1.1,5.4,6,8,8.3
-			c23.4,20,49.6,38,72.9,58c0,0,9.6,7.9,11.2,10.1c2.7,3.5,7.3,7,4.7,11.9c-2.2,4-3.5,8.6-8.2,8.2c-1-0.1-49.1-27.6-52.8-29.3
-			c0,0,47.3,31.1,48.5,33.2c1.2,2.2,2.1,4.9,1.2,6.4c-1.8,3.1-2.6,6.2-6.1,8.4c-3.5,2.2-12.2-1.1-15.2-3.1c-3-2-44-26.1-44-26.1
-			s42.4,30.9,43,33.6C706.7,227.9,703.9,234.6,700.8,236z"/>
-		<path class="st1" d="M667.7,186.1c-9.8,8.5-10.2-8.2-3.1-13.4c2.9-2.1,8.6-2.8,9.9,2C675.5,178.1,670.1,184,667.7,186.1z"/>
-		<path class="st1" d="M683.8,166.3c-12.2,10.1-12.8-9.7-3.8-15.9c3.7-2.5,10.8-3.3,12.4,2.3C693.4,156.9,686.7,163.9,683.8,166.3z"
-			/>
-		<path class="st1" d="M658.9,193.5c0.7,2.1-0.6,4.2-1.9,5.9c-1.4,2-2.9,4.1-5.1,5.4c-2.2,1.2-5.2,1.2-6.9-0.6
-			c-0.6-0.7-1-1.7-0.7-2.7c0.1-0.4,0.4-0.8,0.6-1.1C647.1,197.7,656,184.6,658.9,193.5z"/>
-		<path d="M702.8,216.2c0,0,7.5-6.6,8.8-9l-6.8,10l5.9-5c0,0-2,4.3-3.5,6.8C707.2,219,702.5,219.5,702.8,216.2z"/>
-		<path d="M684.3,232.6c0,0,6.4-6.1,8.1-8.5c0,0-5.2,9-6,10L684.3,232.6z"/>
-		<path d="M660.2,239.1c0,0,6.4-6.1,8.1-8.5c0,0-5.2,9-6,10L660.2,239.1z"/>
-		<path d="M718.6,196c0,0,7.4-6.9,9.3-9.7c0,0-6,10.2-6.9,11.4L718.6,196z"/>
-		<path class="st1" d="M713.5,167.9c4.2,3.1,8.7,5.7,12.4,9.4c4.5,4.5,9.4,10.3,14.3,14.4c0.7-1.8-0.2-2.4-0.7-4.1s-2.6-4.2-3.8-5.5
-			c-4.9-5.2-9.2-9.3-14.9-13.7c-3.3-2.6-6.6-5.1-9.9-7.7c-1.2-0.9-7.9-7.3-9.1-6.7C697.7,156,713.5,166.9,713.5,167.9z"/>
-		<path class="st1" d="M571.1,103c0,0,49.3,15.2,57.9,14.3L642.5,99c0,0-8.6,7.4-40.1,1.5c0,0-20.5-5.3-27.5-5.2
-			C574.9,95.3,572.1,101.2,571.1,103z"/>
-		<path d="M588.4,164.5c4.4-3.6,18.9-4,21.2,3.7c1.2,4.1,1.5,10.1,0,14.2c5.5-1.5,11.4,0.3,15.9,3.8c4.5,3.5,4.1,11.1,0.8,15.7
-			c8.9-3.1,19.5,5.6,18.2,14.9c4.3-3.1,11-1.7,14.3,2.6c3.3,4.2,3.3,10.4,0.8,15.2c-2.5,4.7-7.2,8-12.3,9.7
-			c-1.5,0.5-7.9-1.2-9.8-2.9c-2.4-2.2-4.1-4.8-2.3-10c-3.8,4.9-11.5,6.3-16.8,3.1c-5.3-3.3-7.5-10.8-4.8-16.4
-			c-5.1,2.7-10.8,5.7-15.6,3c-1.2-0.7-6-5.3-6.8-6.5c-2.4-3.6-0.1-9.3,0.9-13.5c-1.2,2.6-6.5,4.4-9.4,3.1
-			c-13.6-6.1-12-13.7-5.9-24.6C580.5,172.9,584.4,167.7,588.4,164.5z"/>
-		<path class="st0" d="M604.3,175.5c0.2,0.7,0.3,1.4,0.1,2.1c-0.2,0.8-0.7,1.6-1.3,2.2c-3.5,4.5-7.3,8.9-11.2,13.1
-			c-1.2,1.3-2.5,2.6-4.2,3c-1,0.3-1.6-0.3-2.6-0.4c-2.6-0.2-4.1-1.8-5.5-4c-1.7-2.6,0.4-7.4,2-10C585.3,175.9,600,159,604.3,175.5z"
-			/>
-		<path class="st0" d="M613.2,189.7c2.2-0.4,4.6,0.1,6.3,1.6c1.7,1.4,2.5,3.5,2,5.6c-0.8,3.7-5.2,7.7-8,10.3c-2,1.8-4.4,5-7.1,5.2
-			c-2.7,0.2-5.2-0.6-6.9-2.7c-0.4-0.5-1.4-2-1.7-2.5c-0.9-2,2.5-7.5,3.9-9.2C604.6,194.7,608.7,190.5,613.2,189.7z"/>
-		<path class="st0" d="M630.4,209.9c1.9-0.5,4-0.2,5.6,1c1.6,1.2,2.6,3.4,2.3,5.4c-0.4,3.5-2.8,5.6-5.1,8.2c-1.6,1.8-3.8,4-6.1,4.4
-			c-2.3,0.4-4.2-0.2-5.9-2c-0.4-0.4-0.8-2.1-1.1-2.6c-0.9-1.8,0.1-4,1.2-5.7C623.5,215.4,626.5,211,630.4,209.9z"/>
-		<path class="st0" d="M648.4,223.7c1.6-0.3,3.3,0.1,4.5,1.2c1.2,1.1,1.9,2.9,1.5,4.6c-0.6,2.8-1.2,2.6-3.2,4.5
-			c-1.4,1.4-2.7,3.3-4.6,3.5c-1.9,0.2-3.5-1.5-4.7-3.1c-0.3-0.4-0.6-0.7-0.7-1.1c-0.6-1.6,0.3-3.3,1.4-4.6
-			C644.7,226.1,645.2,224.3,648.4,223.7z"/>
-		<path class="st1" d="M602.7,170.5c1.5,0.9,1.8,4.3,1.7,4.6c-0.1,0.4-0.4,0.8-0.7,1.1c-2,2.3-3.4,4.3-5.6,6.4
-			c-0.7,0.6-2.3,1.4-3.2,1.7c-0.6,0.1-1.2,0.1-1.8,0c-1.5-0.1-3.2-0.3-4.1-1.4c-1-1.3-0.6-5.2,0.3-6.5
-			C591.4,173.5,595.3,166.1,602.7,170.5z"/>
-		<path class="st1" d="M637,209.4c1.1,0.7,1.9,3,1.8,3.3c-0.1,0.3-0.1,1.4-0.4,1.7c-1.5,1.8-2.5,3.4-4.3,5c-0.5,0.5-2.4,0.7-3.2,0.9
-			c-0.4,0.1-0.9,0.1-1.3,0c-1.1-0.1-2.5-0.2-3.1-1.1c-0.7-1-0.5-4.1,0.2-5.1C628.4,211.8,631.3,206,637,209.4z"/>
-		<path class="st1" d="M620.1,191.3c1.4,0.8,1.8,3.6,1.7,3.9c-0.1,0.4-0.4,0.7-0.7,1c-2,1.9-2.5,3-4.7,4.8c-0.7,0.5-3,1.9-3.9,2.1
-			c-0.6,0.1-1.1,0.1-1.7,0c-1.5-0.1-2.7-1.2-3.5-2.1c-1-1.1-0.5-4.3,0.5-5.4C609.7,193.1,611.9,186.3,620.1,191.3z"/>
-		<path d="M588.4,180.1c0,0,4.1,4.6,8.3,1.6l7.8-7.5l0.2,0.9l-6.6,7.4c0,0-3.5,3-7.4,1.3C587.8,182.7,588.4,180.1,588.4,180.1z"/>
-		<path d="M606.8,198.9c0,0,4.1,4.6,8.3,1.6l7.8-7.5l0.2,0.9l-6.6,7.4c0,0-3.5,3-7.4,1.3C606.2,201.4,606.8,198.9,606.8,198.9z"/>
-		<path d="M626.2,216.6c0,0,4.1,4.6,8.3,1.6l7.8-7.5l0.2,0.9l-6.6,7.4c0,0-3.5,3-7.4,1.3C625.6,219.2,626.2,216.6,626.2,216.6z"/>
-		<path d="M619.8,147.4c0,1,0.1,2.1,0.8,2.8c0.5,0.6,1.4,0.8,2.1,1.1c4.3,1.2,13.2,1.1,16.1-2.3c1.1-1.3,1.5-3.3,2.3-4.8
-			c3.7-7.7,4.6-11,6.6-18.1c0.7-2.4,1.8-1.9,3.2-3.9c1.4-2,3.9-5,5.5-6.8c2.2-2.5,1.9-3.4,3.7-6c0.4-0.6,1.3-0.9,2.1-0.9
-			c1,0,1.9,0.7,2.7,1.5c6.5,6.1,13.2,12.1,19.9,18c2.3,2.1,4.7,4.1,7,6.2c15.5,13.8,31,27.6,46.5,41.4c0.6,0.6,1.4,1.2,2.2,1
-			c0.7-0.1,1.2-0.8,1.6-1.4c4.4-6.9,7.3-15.4,14.1-20c2.6-1.8,5.7-2.9,8.6-4.1c4.9-2.1,9.5-4.8,13.8-7.9c0.6-0.4,1.2-0.9,1.6-1.5
-			c0.5-0.8,0.6-1.9,0.5-2.9c-0.5-8.2-6.6-12.9-10.2-20.3c-2.1-4.3-4.8-10.1-7.5-14c-1.4-2-2-4.3-3.3-6.3c-1.6-2.5-2.8-4.9-4.3-7.4
-			c-3.9-6.1-7.9-12.5-11.3-18.9c-9.2,3.9-16.4,6.9-25.6,10.9c-3.1,1.3-6.2,2.6-9.6,2.8c-3.2,0.1-6.3-0.8-9.3-1.7
-			C687,80.4,674,78,661.1,75.7c-2.2-0.4-4.4-0.8-6.5-0.3c-2.5,0.6-4.5,2.2-6.5,3.9c-8.4,7-19,13-27.4,20c-5.2,4.4-2.3,14.8-2,21
-			C619,129.3,619.4,138.4,619.8,147.4z"/>
-		<path class="st0" d="M637.4,135.9c1-5.2,2.1-10.3,4.5-15.2c2.5-5.1,3.5-6,5.9-11.5c1.8,0.8,4.3-1.5,5.8-0.9
-			c6.3,2.6,9.6,6.9,16.9,10.6c6.9,3.5,13.8,7.2,19.7,12.2c3.8,3.1,7.2,6.8,11.1,9.7c5,3.8,10.7,6.5,15.6,10.4
-			c6.2,4.9,9.2,9.2,15.2,14.6c1.6-6.3,6-8.9,11.7-12.2c2.7-1.6,8.9-5.9,11.7-7.4c2.9-1.5,4.6-2.8,7.2-4.8c1.1-0.8,7.1-1.9,7.1-3.3
-			c0-2.9-4.1-7.1-6.6-10.9c-8.4-12.5-15.5-25.6-23.3-38.7c-0.6-1-1.3-2-2.4-2.3c-0.9-0.3-1.9,0.1-2.8,0.4c-5.4,2.1-14,4.9-19.4,7
-			c-2.1,0.8-4.4,1.7-6.7,1.7c-2,0-4-0.7-5.9-1.4c-13.6-4.7-27.7-8-42-9.9c-1.7-0.2-3.4-0.4-5.1,0c-1.4,0.3-2.6,1.1-3.8,1.8
-			c-7.9,4.9-15.5,10.2-22.8,16c-1.3,1-2.6,2.2-3.2,3.7c-0.6,1.5-0.3,3.2,0,4.8c1.5,9.2-0.5,16.9,0.2,26.2c0.4,5.3,0.1,6.9,2.8,6.5
-			C632.1,142.6,636.9,138.4,637.4,135.9z"/>
-		<path d="M672.6,122.8c0,0,16.8,3.4,31.5,1.1c0,0-11.3,5.3-27.2,2.5L672.6,122.8z"/>
-		<path class="st1" d="M645.2,229.4c0,0,2.6,3.1,4.9,3c0,0,5.2-2.7,4.9-4.8s-3.9-5.5-7.8-3.7C647.2,224,645.1,226.8,645.2,229.4z"/>
-		<path d="M645,229.1c0,0,4.1,4.1,7.3,1.8l5.8-5.6l0.2,0.7l-5,5.6c0,0-3.2,2.3-6.6,0.4C644.7,230.7,645,229.1,645,229.1z"/>
-		<path class="st1" d="M626,124.6c0-0.8,0.9-1.1,1.2-0.4c0.6,1,1.4,4.4,1.7,7.4c0,0,0.2,8.9-1.4,11.2c-0.2,0.3-0.7,0.1-0.9-0.2
-			c-0.5-0.8-1.3-3.2-1.2-9.2L626,124.6z"/>
-		<path class="st1" d="M743.6,94.3c-1-1.5-3.1-4.3-3.8-5.7c-1.1-2-1.4-2.5-3.7-2.5c-8.2,2.1-16.4,6.4-24.4,8.8
-			c1.1,0.5,5.8,1.4,6.7,2.1c4.5,3.3,2.2,1.5,6.7,4.8c6.1-1.6,14-2.1,19.9-4.1c0.3-0.1,0.4,0,0.5-0.2L743.6,94.3z"/>
-		<path d="M646.9,111.9c0,0,0.9-5.6,0.8-9.1c0,0,1.4,5.4,1.3,6.5c0,0,2.5-1.7,2.3-3.7v6.3H646.9z"/>
-		<path class="st1" d="M636.3,102.4c1.4-0.4,2.7-1.2,4-2c4.1-2.6,8.3-5.2,12.4-7.8c2.3-1.4,4.6-2.9,7.2-3.5
-			c3.7-0.9,7.6,0.1,11.3,0.9c6.1,1.3,12.3,2.2,18.6,3.1c3.6,0.5,7.4,1,11,0.2c-13.2-4.1-26.4-8.2-40.2-9.2c-1.7-0.1-3.4-0.2-5,0.2
-			c-1.3,0.4-2.6,1.1-3.8,1.8c-4.2,2.5-8.3,5.1-12.4,7.8c-3.8,2.5-8.5,5-11.8,8.3C628.4,103.6,634.8,102.8,636.3,102.4z"/>
-		<path d="M626,124.6c0,0,1.6-0.9,2.2,2.5c0,0,0.9,5.1,0.8,7.9c0,0,1.5-7.2-0.9-12.3c0,0-2.9-2.9-5,0L626,124.6z"/>
-	</g>
-	<g>
-		<path class="st1" d="M64.1,100.6V67.4h6.7l9.4,28.1l9.4-28.1h6.7v33.2h-3.7V71.3h-0.7l-9.6,28.1h-4.1l-9.6-28.1h-0.7v29.3H64.1z"
-			/>
-		<path class="st1" d="M119.9,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3
-			c0-8.4,3.3-12.6,10-12.6c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9
-			c1,1.3,2.6,1.9,5,1.9C115,97.9,117.4,97.8,119.9,97.6z M118.6,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8
-			c-2.1,0-3.7,0.6-4.8,1.9c-1.1,1.3-1.6,3.3-1.7,6.1H118.6z"/>
-		<path class="st1" d="M144.1,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3
-			c0-8.4,3.3-12.6,10-12.6c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9
-			c1,1.3,2.6,1.9,5,1.9C139.2,97.9,141.6,97.8,144.1,97.6z M142.8,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8
-			c-2.1,0-3.7,0.6-4.8,1.9c-1.1,1.3-1.6,3.3-1.7,6.1H142.8z"/>
-		<path class="st1" d="M164.3,79.7h-7.6v11.5c0,2.8,0.2,4.6,0.6,5.4c0.4,0.9,1.4,1.3,2.9,1.3l4.3-0.3l0.2,3
-			c-2.1,0.4-3.8,0.5-4.9,0.5c-2.5,0-4.2-0.6-5.2-1.8c-1-1.2-1.4-3.5-1.4-7V79.7h-3.4v-3.1h3.4v-7.3h3.6v7.3h7.6V79.7z"/>
-		<path class="st1" d="M168.7,71.2V67h3.6v4.2H168.7z M168.7,100.6v-24h3.6v24H168.7z"/>
-		<path class="st1" d="M182.8,100.6h-3.6v-24h3.6v1.7c2.6-1.4,5.1-2.2,7.4-2.2c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7
-			h-3.6V88c0-3.3-0.3-5.6-1-6.8c-0.7-1.2-2.1-1.8-4.2-1.8c-1,0-2.1,0.2-3.2,0.5c-1.1,0.3-2,0.6-2.6,0.9l-0.9,0.4V100.6z"/>
-		<path class="st1" d="M214.3,111.9c-3.8,0-6.5-0.5-8-1.6c-1.5-1-2.3-2.9-2.3-5.7c0-1.3,0.3-2.4,0.9-3.2c0.6-0.8,1.6-1.7,2.9-2.8
-			c-0.9-0.6-1.3-1.7-1.3-3.3c0-0.5,0.4-1.6,1.2-3l0.4-0.8c-2.5-1.2-3.8-3.6-3.8-7.2c0-5.5,3-8.2,9-8.2c1.5,0,3,0.2,4.3,0.5l0.7,0.1
-			l7.1-0.2v3.1l-4.6-0.1c1.1,1.1,1.6,2.7,1.6,4.8c0,3-0.7,5.1-2.2,6.3s-3.8,1.8-7,1.8c-0.9,0-1.6-0.1-2.4-0.2
-			c-0.6,1.4-0.9,2.3-0.9,2.7c0,1,0.3,1.6,0.9,1.8c0.6,0.2,2.4,0.4,5.5,0.4c3.1,0,5.3,0.5,6.6,1.4c1.3,1,2,2.8,2,5.6
-			C224.9,109.3,221.4,111.9,214.3,111.9z M207.5,104.4c0,1.7,0.5,2.9,1.4,3.5c0.9,0.7,2.7,1,5.2,1s4.4-0.4,5.5-1.1
-			c1.1-0.7,1.7-1.9,1.7-3.5c0-1.6-0.4-2.7-1.2-3.2c-0.8-0.5-2.4-0.7-4.7-0.7l-5.2-0.2c-1.1,0.8-1.8,1.4-2.1,2
-			C207.7,102.7,207.5,103.5,207.5,104.4z M207.8,84.3c0,1.9,0.4,3.2,1.3,4c0.8,0.8,2.2,1.2,4.2,1.2c2,0,3.3-0.4,4.2-1.2
-			c0.8-0.8,1.2-2.2,1.2-4.1c0-1.9-0.4-3.3-1.2-4.1s-2.2-1.2-4.2-1.2c-2,0-3.4,0.4-4.2,1.2C208.3,81.1,207.8,82.4,207.8,84.3z"/>
-		<path class="st1" d="M237.2,79.3c-3.5,0-5.2,1.2-5.2,3.6c0,1.1,0.4,1.9,1.2,2.4c0.8,0.5,2.6,0.9,5.5,1.4c2.8,0.5,4.9,1.2,6,2.1
-			c1.2,0.9,1.8,2.6,1.8,5c0,2.5-0.8,4.3-2.4,5.4s-3.9,1.7-6.9,1.7c-2,0-4.3-0.2-7-0.7l-1.4-0.2l0.2-3.1c3.6,0.5,6.4,0.8,8.3,0.8
-			s3.3-0.3,4.2-0.9c1-0.6,1.5-1.6,1.5-3c0-1.4-0.4-2.3-1.2-2.8c-0.8-0.5-2.7-1-5.5-1.4c-2.8-0.4-4.8-1.1-6-2
-			c-1.2-0.9-1.8-2.5-1.8-4.8c0-2.3,0.8-4.1,2.5-5.2c1.6-1.1,3.7-1.7,6.2-1.7c2,0,4.4,0.2,7.3,0.7l1.3,0.2l-0.1,3.1
-			C242.1,79.6,239.3,79.3,237.2,79.3z"/>
-	</g>
-	<g>
-		<path class="st0" d="M68.4,148.9h-6.9v-12.5h1.4v11.2h5.5V148.9z"/>
-		<path class="st0" d="M75.9,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C74.1,147.9,75,147.9,75.9,147.8z M75.5,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H75.5z"/>
-		<path class="st0" d="M85.3,142.6v4.6c0,0.4,0.4,0.7,1,0.8l-0.1,1.1c-0.9,0-1.7-0.2-2.1-0.7c-1.1,0.5-2.2,0.7-3.2,0.7
-			c-0.8,0-1.5-0.2-1.9-0.7c-0.4-0.5-0.6-1.1-0.6-2s0.2-1.5,0.7-1.9c0.4-0.4,1.1-0.7,2.1-0.8l2.8-0.3v-0.8c0-0.6-0.1-1-0.4-1.3
-			c-0.3-0.3-0.6-0.4-1.1-0.4c-1,0-2,0.1-3,0.2l-0.6,0.1l-0.1-1c1.3-0.3,2.5-0.4,3.5-0.4c1,0,1.8,0.2,2.2,0.7
-			C85,140.9,85.3,141.6,85.3,142.6z M79.7,146.3c0,1.1,0.5,1.7,1.4,1.7c0.8,0,1.6-0.1,2.4-0.4l0.4-0.1v-3l-2.7,0.3
-			c-0.5,0-0.9,0.2-1.2,0.5C79.8,145.4,79.7,145.8,79.7,146.3z"/>
-		<path class="st0" d="M87.9,148.9v-9h1.3v1.2c1-0.7,2.1-1.2,3.3-1.4v1.4c-0.5,0.1-1,0.2-1.6,0.5s-1,0.4-1.3,0.5l-0.4,0.2v6.6H87.9z
-			"/>
-		<path class="st0" d="M95.5,148.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8H100v-4.7
-			c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M109.1,148.9h-1.4V136h1.4v4.4c1-0.5,1.9-0.7,2.8-0.7c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3
-			v-4.7c0-1.2-0.1-2.1-0.4-2.6c-0.2-0.5-0.8-0.7-1.6-0.7c-0.8,0-1.5,0.1-2.2,0.4l-0.3,0.1V148.9z"/>
-		<path class="st0" d="M117.1,144.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1c0.6,0.7,0.9,1.9,0.9,3.6
-			c0,1.6-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1s-2.5-0.4-3-1.1C117.3,147.2,117.1,146,117.1,144.4z M118.4,144.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8c0.3-0.5,0.5-1.4,0.5-2.8s-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			s-1.6,0.2-1.9,0.7C118.6,142.2,118.4,143.1,118.4,144.4z"/>
-		<path class="st0" d="M126.1,139.9h1.4l1.8,7.8h0.3l2.1-7.7h1.4l2.1,7.7h0.3l1.8-7.8h1.4l-2.1,9h-2.2l-1.9-7l-1.9,7h-2.2
-			L126.1,139.9z"/>
-		<path class="st0" d="M143.8,139.9h1.4l1.8,7.8h0.3l2.1-7.7h1.4l2.1,7.7h0.3l1.8-7.8h1.4l-2.1,9H152l-1.9-7l-1.9,7h-2.2
-			L143.8,139.9z"/>
-		<path class="st0" d="M164.3,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C162.5,147.9,163.4,147.9,164.3,147.8z M163.8,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H163.8z"/>
-		<path class="st0" d="M174.6,139.7c0.4,0,1.1,0.1,2,0.2l0.4,0.1l-0.1,1.1c-1-0.1-1.7-0.2-2.1-0.2c-1,0-1.7,0.2-2.1,0.7
-			s-0.5,1.4-0.5,2.7c0,1.3,0.2,2.2,0.5,2.7c0.3,0.5,1.1,0.8,2.1,0.8l2.1-0.2l0.1,1.1c-1.1,0.2-2,0.3-2.5,0.3c-1.4,0-2.4-0.4-2.9-1.1
-			s-0.8-1.9-0.8-3.6s0.3-2.9,0.9-3.6C172.3,140.1,173.2,139.7,174.6,139.7z"/>
-		<path class="st0" d="M178.6,144.4c0-1.6,0.3-2.8,0.9-3.6c0.6-0.7,1.6-1.1,3-1.1c1.4,0,2.4,0.4,3,1.1c0.6,0.7,0.9,1.9,0.9,3.6
-			c0,1.6-0.3,2.8-0.8,3.6c-0.6,0.7-1.6,1.1-3,1.1s-2.5-0.4-3-1.1C178.8,147.2,178.6,146,178.6,144.4z M180,144.4
-			c0,1.3,0.2,2.2,0.5,2.8c0.3,0.5,1,0.8,2,0.8c1,0,1.7-0.3,2-0.8c0.3-0.5,0.5-1.4,0.5-2.8s-0.2-2.2-0.5-2.7c-0.3-0.5-1-0.7-1.9-0.7
-			s-1.6,0.2-1.9,0.7C180.1,142.2,180,143.1,180,144.4z"/>
-		<path class="st0" d="M189.8,148.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3
-			v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M205,136v12.9h-1.3v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-0.5,0-0.9-0.1-1.3-0.2s-0.7-0.3-1-0.6
-			c-0.6-0.6-1-1.8-1-3.6s0.3-3,0.9-3.8c0.6-0.8,1.5-1.2,2.9-1.2c0.7,0,1.4,0.1,2.2,0.2v-4H205z M200.4,147.8
-			c0.2,0.1,0.5,0.1,0.8,0.1s0.7-0.1,1.2-0.2s0.8-0.2,1-0.3l0.4-0.2v-6.1c-0.8-0.1-1.5-0.2-2.1-0.2c-0.9,0-1.5,0.3-1.9,0.9
-			c-0.4,0.6-0.5,1.5-0.5,2.7c0,1.4,0.2,2.3,0.6,2.8C199.9,147.5,200.1,147.7,200.4,147.8z"/>
-		<path class="st0" d="M213.3,139.9h1.3v9h-1.3v-0.6c-0.9,0.5-1.8,0.8-2.7,0.8c-1.2,0-2-0.3-2.4-1c-0.4-0.6-0.6-1.8-0.6-3.5v-4.7
-			h1.3v4.7c0,1.3,0.1,2.2,0.3,2.6c0.2,0.4,0.7,0.7,1.5,0.7c0.4,0,0.8-0.1,1.2-0.2c0.4-0.1,0.7-0.2,0.9-0.3l0.3-0.2V139.9z"/>
-		<path class="st0" d="M220.6,139.7c0.4,0,1.1,0.1,2,0.2l0.4,0.1l-0.1,1.1c-1-0.1-1.7-0.2-2.1-0.2c-1,0-1.7,0.2-2.1,0.7
-			s-0.5,1.4-0.5,2.7c0,1.3,0.2,2.2,0.5,2.7c0.3,0.5,1.1,0.8,2.1,0.8l2.1-0.2l0.1,1.1c-1.1,0.2-2,0.3-2.5,0.3c-1.4,0-2.4-0.4-2.9-1.1
-			s-0.8-1.9-0.8-3.6s0.3-2.9,0.9-3.6C218.3,140.1,219.2,139.7,220.6,139.7z"/>
-		<path class="st0" d="M229.7,141.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V141.1z"/>
-		<path class="st0" d="M236.7,148.9h-1.4v-9h1.3v0.6c0.9-0.5,1.8-0.8,2.6-0.8c1.1,0,1.9,0.3,2.3,0.9c0.4-0.2,0.9-0.5,1.5-0.6
-			c0.6-0.2,1.2-0.3,1.7-0.3c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.5-0.7
-			c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-1,0.3l-0.3,0.2c0.2,0.4,0.2,1.3,0.2,2.6v4.7H241v-4.6c0-1.3-0.1-2.2-0.4-2.6
-			c-0.2-0.5-0.7-0.7-1.5-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.7,0.2-0.9,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M256.5,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C254.7,147.9,255.6,147.9,256.5,147.8z M256,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H256z"/>
-		<path class="st0" d="M265.6,147.8l0.5-0.1l0,1.1c-1.4,0.2-2.5,0.3-3.5,0.3c-1.3,0-2.2-0.4-2.8-1.1s-0.8-1.9-0.8-3.5
-			c0-3.2,1.3-4.7,3.8-4.7c1.2,0,2.1,0.3,2.7,1s0.9,1.7,0.9,3.2l-0.1,1h-5.9c0,1,0.2,1.7,0.5,2.2c0.4,0.5,1,0.7,1.9,0.7
-			C263.8,147.9,264.7,147.9,265.6,147.8z M265.1,143.9c0-1.1-0.2-1.9-0.5-2.3c-0.4-0.5-0.9-0.7-1.7-0.7s-1.4,0.2-1.8,0.7
-			c-0.4,0.5-0.6,1.2-0.6,2.3H265.1z"/>
-		<path class="st0" d="M273.2,141.1h-2.9v4.3c0,1,0.1,1.7,0.2,2c0.1,0.3,0.5,0.5,1.1,0.5l1.6-0.1l0.1,1.1c-0.8,0.1-1.4,0.2-1.8,0.2
-			c-0.9,0-1.6-0.2-1.9-0.7c-0.4-0.5-0.5-1.3-0.5-2.6v-4.7h-1.3v-1.2h1.3v-2.8h1.3v2.8h2.9V141.1z"/>
-		<path class="st0" d="M274.8,137.9v-1.6h1.4v1.6H274.8z M274.8,148.9v-9h1.4v9H274.8z"/>
-		<path class="st0" d="M280.1,148.9h-1.4v-9h1.3v0.6c1-0.5,1.9-0.8,2.8-0.8c1.2,0,2,0.3,2.4,1c0.4,0.6,0.6,1.8,0.6,3.5v4.8h-1.3
-			v-4.7c0-1.2-0.1-2.1-0.4-2.6s-0.8-0.7-1.6-0.7c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.8,0.2-1,0.3l-0.3,0.2V148.9z"/>
-		<path class="st0" d="M291.9,153.2c-1.4,0-2.4-0.2-3-0.6c-0.6-0.4-0.9-1.1-0.9-2.1c0-0.5,0.1-0.9,0.3-1.2c0.2-0.3,0.6-0.7,1.1-1
-			c-0.3-0.2-0.5-0.6-0.5-1.2c0-0.2,0.1-0.6,0.4-1.1l0.2-0.3c-0.9-0.4-1.4-1.3-1.4-2.7c0-2.1,1.1-3.1,3.4-3.1c0.6,0,1.1,0.1,1.6,0.2
-			l0.3,0.1l2.7-0.1v1.2l-1.7,0c0.4,0.4,0.6,1,0.6,1.8c0,1.1-0.3,1.9-0.8,2.4s-1.4,0.7-2.6,0.7c-0.3,0-0.6,0-0.9-0.1
-			c-0.2,0.5-0.3,0.9-0.3,1c0,0.4,0.1,0.6,0.3,0.7c0.2,0.1,0.9,0.1,2.1,0.1c1.2,0,2,0.2,2.5,0.5s0.8,1.1,0.8,2.1
-			C295.9,152.2,294.6,153.2,291.9,153.2z M289.4,150.3c0,0.6,0.2,1.1,0.5,1.3c0.4,0.2,1,0.4,2,0.4c1,0,1.6-0.1,2.1-0.4
-			c0.4-0.3,0.6-0.7,0.6-1.3s-0.2-1-0.5-1.2c-0.3-0.2-0.9-0.3-1.8-0.3l-1.9-0.1c-0.4,0.3-0.7,0.5-0.8,0.8
-			C289.4,149.7,289.4,150,289.4,150.3z M289.5,142.8c0,0.7,0.2,1.2,0.5,1.5c0.3,0.3,0.8,0.4,1.6,0.4c0.7,0,1.3-0.1,1.6-0.4
-			c0.3-0.3,0.5-0.8,0.5-1.5s-0.2-1.2-0.5-1.5c-0.3-0.3-0.8-0.5-1.6-0.5c-0.7,0-1.3,0.2-1.6,0.5C289.7,141.6,289.5,142.1,289.5,142.8
-			z"/>
-		<path class="st0" d="M300.5,140.9c-1.3,0-2,0.5-2,1.4c0,0.4,0.1,0.7,0.5,0.9c0.3,0.2,1,0.4,2.1,0.5c1.1,0.2,1.8,0.4,2.3,0.8
-			c0.4,0.3,0.7,1,0.7,1.9s-0.3,1.6-0.9,2c-0.6,0.4-1.5,0.6-2.6,0.6c-0.7,0-1.6-0.1-2.6-0.3l-0.5-0.1l0.1-1.2
-			c1.4,0.2,2.4,0.3,3.1,0.3c0.7,0,1.2-0.1,1.6-0.3c0.4-0.2,0.5-0.6,0.5-1.1c0-0.5-0.2-0.9-0.5-1.1c-0.3-0.2-1-0.4-2.1-0.5
-			c-1.1-0.2-1.8-0.4-2.2-0.7c-0.4-0.3-0.7-0.9-0.7-1.8s0.3-1.5,0.9-1.9c0.6-0.4,1.4-0.6,2.3-0.6c0.7,0,1.7,0.1,2.8,0.3l0.5,0.1
-			l0,1.2C302.3,141,301.3,140.9,300.5,140.9z"/>
-	</g>
-</g>
-</svg>

+ 0 - 222
meetings/rome/sprint-in-london.md

@@ -1,222 +0,0 @@
-Agenda for London
-=======
-
-Table of Contents
------
-<!-- TOC START min:1 max:2 link:true asterisk:false update:true -->
-- [Arrivals and Departures](#arrivals-and-departures)
-  - [General Notes](#general-notes)
-- [Daily Agenda](#daily-agenda)
-  - [Sunday 20.10](#sunday-2010)
-  - [Monday 21.10](#monday-2110)
-  - [Tuesday 22.10](#tuesday-2210)
-  - [Wednesday 23.10](#wednesday-2310)
-  - [Thursday 24.10](#thursday-2410)
-  - [Friday 25.10](#friday-2510)
-  - [Saturday 26.10](#saturday-2610)
-- [Summary of Time](#summary-of-time)
-<!-- TOC END -->
-
-# Arrivals and Departures
-
-At Location estimates (sorted by arrival time)
-
-| Name       |  Date-Time  |  Date-Time  |
-|------------|-------------|-------------|
-|**Ben**     |20.10-1500   |26.10-1330   |
-|**Mokhtar** |    `*`      |    `*`      |
-|**Martin**  |20.10-1545   |26.10-1330   |
-|**Paul**    |21.10-1000   |25.10-1700   |
-|**Bedeho**  |21.10-1000   |26.10-0730   |
-|**Alex**    |21.10-1200   |26.10-1330   |
-
-- `*` *Mokhtar* is having logistics issues, and will not make it
-
-## General Notes
-- **All times in London Time (UTC/GMT+0100)**
-- The **start** time of the items on each daily agenda is intended to be quite "firm"
-- The **end** times of each are more flexible. If we finalize earlier -> "Autonomous work"
-- If *member* has an errand, or something they want to in a block denoted "Autonomous work", feel free to ask.
-- The blocks which includes "fun" is your own time. After **2100**, there is no pressure to work.
-
-# Daily Agenda
-
-## Sunday 20.10
-
-- **Present:**
-  - `Ben`
-  - `Martin ~1545`
-
-### Agenda
-- **1500**
-  - Get keys, information, sign, etc.
-  - Handle luggage, and start moving furniture to clear space
-  - Get confirmation on delivery.
-- **1600-1800**
-  - Receive delivery of furniture
-  - Set up and arrange desks, chairs, whiteboards
-  - Do inventory -> gather list work related items needed
-- **When done**
-  - Buy groceries for the evening, and breakfast
-  - If possible, acquire items on list (most likely Monday morning)
-  - Dinner at restaurant/takeaway
-
-## Monday 21.10
-
-- **Present:**
-  - `Ben`
-  - `Martin`
-  - `Mokthar??`
-- **Arrivals:**
-  - `Paul ~09:30`
-  - `Bedeho ~10:00`
-  - `Alex ~12:00`
-
-### Agenda
-- **0800**
-  - Breakfast served
-- **0900-1300**
-  - Finalize preparations
-  - Autonomous work while arrivals settle in
-- **1300-1400**
-  - Lunch - Foodora
-- **1400-1800**
-  - Go through [Tracking Issues](https://github.com/Joystream/joystream/issues?utf8=%E2%9C%93&q=label%3Arome-testnet+label%3Atracking-issue) (**TR**) 1-8 (*ALL*)
-    - *Ben* does "master" notes along the way, but *all* should note down specific decisions regarding their own assigned tasks and priorities
-  - Summary and discussion
-    - Agree on each team/member **top priority task** (ie. an unchecked box from one of the **TRs**)
-    - *Teams/member* to gather/discuss details, and set realistic timelines for this top priority task
-  - Each *teams/member* to sketch up their conclusion on the whiteboard. See example below:
-
-| Name       |Mon|Tue|Wed|Thu|Fri|
-|------------|---|---|---|---|---|
-|**Alex**    |xxx|xxx|xx |   |   |
-|**Bedeho**  |xxx|xx |   |   |   |
-|**Ben**     |xxx|xx |   |   |   |
-|**Martin**  |xxx|x  |   |   |   |
-|**Mokhtar** |xxx|xxx|x  |   |   |
-|**Paul**    |xxx|   |   |   |   |
-
-**Notes**
-- Where `x` denotes a block of time equivalent to 1/3 of a day.
-- In this example, *Alex'* assumes to complete his top priority task after 2/3 of Wednesday.
-
-<br>
-
-- **1800-1900**
-  - Dinner - Foodora
-- **1900-2030**
-  - Set realistic goals for what should be achieved during the week.
-    - A document compiling all tasks (ie. checkmark boxes from TRs) we hope to complete will be made, and presented on a monitor all week.
-    - For each new task completed, *member* will check it off immediately **ALL WEEK**
-- **2030-**
-  - Autonomous work
-  - Fun
-
-## Tuesday 22.10
-### Agenda
-- **0800**
-  - Breakfast served
-- **0900-1300**
-  - Autonomous work
-- **1300-1400**
-  - Lunch - Foodora/nearby restaurant
-- **1400-1430**
-  - Short briefing on progress for each *teams/member* top priority task
-    - Adjust if needed
-    - If applicable, add new top priority task nr.`n` and alotted time on whiteboard
-- **1430-1730**
-  - Autonomous work
-- **1730-**
-  - Prepare for nice meal at nice restaurant
-
-## Wednesday 23.10
-### Agenda
-- **0800**
-  - Breakfast served
-- **0900-1300**
-  - Autonomous work
-- **1300-1430**
-  - Lunch - Foodora/nearby restaurant
-- **1430-1500**
-  - Short briefing on progress for each *teams/member* top priority task
-    - Adjust if needed
-    - If applicable, add new top priority task nr.`n` and alotted time on whiteboard
-- **1500-1830**
-  - Autonomous work
-- **1830-2000**
-  - Dinner - Foodora/nearby restaurant
-- **2000-2030**
-  - Short briefing on weekly progress
-- **2030-**
-  - Autonomous work
-  - Fun
-
-## Thursday 24.10
-### Agenda
-- **0800**
-  - Breakfast served
-- **0900-1300**
-  - Autonomous work
-- **1300-1430**
-  - Lunch - Foodora/nearby restaurant
-- **1430-1500**
-  - Short briefing on progress for each *teams/member* top priority task
-    - Adjust if needed
-    - If applicable, add new top priority task nr.`n` and alotted time on whiteboard
-- **1500-1830**
-  - Autonomous work
-- **1830-2000**
-  - Dinner - Foodora/nearby restaurant
-- **2000-**
-  - Informal presentation of plans for `Constantinople`
-    - Discuss and highlight potential issues
-    - *Ben* to note key decisions/issues/etc.
-  - Autonomous work
-  - Fun
-
-## Friday 25.10
-### Agenda
-- **0800**
-  - Breakfast served
-- **0900-1300**
-  - Autonomous work
-- **1300-1430**
-  - Lunch - Foodora/nearby restaurant
-- **1430-1600**
-  - Summary of weekly achievements
-    - Count and evaluate quantity and quality of checked off boxes vs. goals set on Monday
-    - Revisit the [Rome Live Milestones](https://github.com/Joystream/joystream/issues/103), and revise
-  - Discussions regarding the value of such a sprint, vs. working as usual will be done the following weeks [all-hands meeting](/README.md#tuesday-all-hands). We can do a brief round, time permitting.
-- **1600-1830**
-  - Autonomous work
-- **1830-2000**
-  - Dinner - Foodora/nearby restaurant
-- **2000-**
-  - Autonomous work
-  - Pack up desks/chairs
-  - Fun
-
-## Saturday 26.10
-### Agenda
-- **0700-0800**
-  - Breakfast served
-  - Have everything ready for furniture pickup
-- **0800-1300**
-  - Pack and get ready for checkout
-    - Fun/Autonomous work
-- **1300-**
-  - Checkout
-  - Lunch for everyone that are available.
-
-# Summary of Time
-Note that is assumed all meetings will conclude as scheduled. Most likely, some shift between "Autonomous work" and "Meetings" shoud be expected.
-
-| **Day** | **Aut. Work** | **Meetings** | **Food/fun** | **TOT** |
-|---------|---------------|--------------|--------------|---------|
-| **Mon** | 4.5           | 5.5          | 3            | 13      |
-| **Tue** | 7             | 0.5          | 5.5          | 13      |
-| **Wed** | 8             | 1            | 4            | 13      |
-| **Thu** | 7.5           | 1.5          | 4            | 13      |
-| **Fri** | 7.5           | 1.5          | 4            | 13      |
-| **TOT** | 34.5          | 10           | 20.5         | **65**  |

+ 0 - 0
LICENSE → node/LICENSE


+ 0 - 93
node/README.md

@@ -1,93 +0,0 @@
-# Joystream Node [![Build Status](https://travis-ci.org/Joystream/substrate-runtime-joystream.svg?branch=master)](https://travis-ci.org/Joystream/substrate-runtime-joystream)
-
-## Build Status
-
-Development [![Development Branch Build Status](https://travis-ci.org/Joystream/substrate-runtime-joystream.svg?branch=development)](https://travis-ci.org/Joystream/substrate-runtime-joystream)
-
-More detailed build history on [Travis CI](https://travis-ci.org/github/Joystream/substrate-runtime-joystream/builds)
-
-## Validator
-![ Nodes for Joystream](./validator-node-banner.svg)
-
-Joystream node is the main server application that connects to the network, synchronizes the blockchain with other nodes and produces blocks if configured as a validator node.
-
-To setup a full node and validator review the [advanced guide from the helpdesk](https://github.com/Joystream/helpdesk/tree/master/roles/validators).
-
-
-###  Pre-built Binaries
-
-The latest pre-built binaries can be downloads from the [releases](https://github.com/Joystream/substrate-runtime-joystream/releases) page.
-
-
-### Building from source
-
-Clone the repository and install build tools:
-
-```bash
-git clone https://github.com/Joystream/joystream.git
-
-cd joystream/
-
-./setup.sh
-```
-
-### Building
-
-```bash
-cargo build --release
-```
-
-### Running a public node on the Rome testnet
-
-Run the node and connect to the public testnet.
-
-```bash
-cargo run --release -- --chain ./rome-tesnet.json
-```
-
-The `rome-testnet.json` chain file can be ontained from the [release page](https://github.com/Joystream/joystream/releases/tag/v6.8.0)
-
-
-### Installing a release build
-This will install the executable `joystream-node` to your `~/.cargo/bin` folder, which you would normally have in your `$PATH` environment.
-
-```bash
-cargo install joystream-node --path node/
-```
-
-Now you can run
-
-```bash
-joystream-node --chain rome-testnet.json
-```
-
-### Local development
-
-This will build and run a fresh new local development chain purging existing one:
-
-```bash
-./scripts/run-dev-chain.sh
-```
-
-### Unit tests
-
-```bash
-cargo test
-```
-
-
-## Coding style
-
-We use `cargo-fmt` to format the source code for consistency.
-
-It should be available on your machine if you ran the `setup.sh` script, otherwise install it with rustup:
-
-```bash
-rustup component add rustfmt
-```
-
-Applying code formatting on all source files recursing subfolders:
-
-```
-cargo-fmt
-```

+ 0 - 125
okrs/OKR-archive/Q1-19/README.md

@@ -1,125 +0,0 @@
-Q1-19 OKR Archive
-===
-
-
-# Table of contents
-
-- [Overview](#overview)
-- [Quarterly OKRs](#quarterly-okrs)
-  - [Expand the Jsgenesis team](#objective-expand-the-jsgenesis-team)
-  - [Launch and grow Staked podcast](objective-launch-and-grow-staked-podcast)
-- [Personal OKRs](#personal-okrs)
-  - [Bedeho](#bedeho-bedeho)
-      - [Make Joystream easier to understand for prospective community members and Jsgenesis hires](#objective-make-joystream-easier-to-understand-for-prospective-community-members-and-jsgenesis-hires)
-      - [Launch and grow Staked podcast](#objective-establish-critical-routines-for-future-productivity)
-
-# Quarterly OKRs
-
-## Objective: `Expand the Jsgenesis team`
-- **KR Measurement Deadline:** End of Q1
-- **Tracked:** Weekly
-- **Tracking Manager:** Martin
-- **Key Results:** Martin and Bedeho equally
-  1. `Add 3 full time blockchain developers`
-  2. `Add 1 full time UI/UX designer/team`
-  3. `Add 1 full time, full stack developer`
-  4. `Source 25 candidates outside of angel/jsg/dribble/hh`
-  5. `Interview at least 25 candidates once, and 15 candidates twice`  
-<br />
-- **Final Score**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |  Total  |
-|:--------:|:-----:|:-----:|:-----:|:-----:|:-----:|:-------:|
-| 05.04.19 | 0.33  |   1    |  1   |  0.36 |  0.39 |**0.616**|
-
-- **Notes:**
-  * `This was only tracked through updating a spreadsheet.`
-  * `In order for the OKR system to have value, we need to grade them at regular and schedule intervals, and keep the results public for accountability.`
-<br />
-- **Tracking**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |
-|:--------:|:-----:|:-----:|:-----:|:-----:|:-----:|
-| 26.03.19 | 0.33  |   1    |  1   |  0.36 |  0.3  |
-| 05.04.19 | 0.33  |   1    |  1   |  0.36 |  0.39 |
-
-<br />
-
-## Objective: `Launch and grow Staked podcast`
-- **KR Measurement Deadline:** End of Q1
-- **Tracked:** Every 2 weeks
-- **Tracking Manager:** Martin
-- **Key Results:** Martin and Bedeho equally
-  1. `Launch a new branded podcast available in all major podcast channels`
-  2. `Record and publish 5 first episodes`
-  3. `Get 100 subscribers`
-  4. `Get 500 listens`
-<br />
-- **Final Score**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 |  Total |
-|:--------:|:-----:|:-----:|:-----:|:-----:|:------:|
-| 05.04.19 |   1   | 0.4   | 0.24  | 0.37  |**0.55**|
-
-- **Notes:**
-  * `Subscribers are assumed to be equal to unique downloads of newest EP.`
-  * `Listener count are *unique* downloads`
-<br />
-- **Tracking**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 |
-|:--------:|:-----:|:-----:|:-----:|:-----:|
-| 18.03.19 |   1   | 0.4   |   x   |  x    |
-| 05.04.19 |   1   | 0.4   | 0.24  | 0.37  |
-
-
-# Personal OKRs
-
-## `Bedeho` (@bedeho)
-
-### Objective: `Make Joystream easier to understand for prospective community members and Jsgenesis hires`
-- **KR Measurement Deadline**: End of Q1 (see notes)
-- **Tracked**: Weekly
-- **Key Results**:
-  1. `Publish first whitepaper draft`
-  2. `Add role list to joystream.org`
-  <br />
-- **Final Score**
-
-| Date     | KR #1   | KR #2 |  Total |
-|:--------:|:-------:|:-----:|:------:|
-| 05.04.19 |   1.0   |  0.7  |**0.85**|
-
-- **Notes:**
-    * `This OKR was only live for ~3 weeks, and was only made for internal "testing"`    
-  <br />  
-- **Tracking:**
-
-| Date     | KR #1   | KR #2 |
-|:--------:|:-------:|:-----:|
-| 18.03.19 |   0.98  |  0.7  |
-| 05.04.19 |   1.0   |  0.7  |
-
-### Objective: `Establish critical routines for future productivity`
-- **KR Measurement Deadline**: End of Q1 (see notes)
-- **Tracked**: Weekly
-- **Key Results**:
-  1. `Draft planning framework for releases, quarters and longer term`
-  2. `Come up with specification framework`
-  3. `Learn Rust and Substrate`
-  4. `Draft framework for how to plan on Github`
-<br />
-- **Final Score**
-
-| Date     | KR #1 | KR #2  | KR #3 | KR #4 |  Total |
-|:--------:|:-----:|:------:|:-----:|:-----:|:------:|
-| 05.04.19 |  xxx  |  xxx   | xxx   |   x   | **0**  |
-  - **Notes:**
-    * `This OKR was only live for ~3 weeks, and was only made for internal "testing"`
-    <br />  
-  - **Tracking:**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 |
-|:--------:|:-----:|:-----:|:-----:|:-----:|
-| 18.03.19 |  0.6 |  0.1   | 0.1   |    0  |
-| 05.04.19 |  xxx |  xxx   | xxx   |   x   |

+ 0 - 215
okrs/OKR-archive/Q2-19/README.md

@@ -1,215 +0,0 @@
-Q2-19 OKR Archive
-===
-
-
-# Table of contents
-
-- [Overview](#overview)
-- [Quarterly OKRs](#quarterly-okrs)
-  - [Increase the Joystream building power](#objective-increase-the-joystream-building-power)
-  - [Expand Joystream platform awareness](#objective-expand-joystream-platform-awareness)
-- [Personal OKRs](#personal-okrs)
-    - [Bedeho - Improve Technical Productivity of Team](#objective-improve-technical-productivity-of-team)
-    - [Martin - Improve value as Release Manager](#objective-improve-value-as-release-manager)
-
-**Due to time constraints and summer vacation, tracking had to be abandoned for high priority work in July. This is in general not acceptable, and should not happen in the future. The final grading was made 30.07.19, but will reflect the status as denoted by the `KR Measurement Deadline`. See below for details where applicable.**
-
-# Quarterly OKRs
-
-## Objective: `Increase the Joystream building power`
-- **Active from:** 09.04.19
-- **KR Measurement Deadline:** 02.07.19
-- **Tracked:** Every other Tuesday
-- **Tracking Manager:** Martin
-- **Key Results:** Martin, Bedeho and Mokhtar
-  1. `Add 1 full time rust developer (ewd)`
-  2. `Add 1 full time blockchain developer (ewd)`
-  3. `Add 1 full stack developer (ewd)`
-  4. `Dev to start work on platform chat (n)`
-  5. `Dev to start work on platform forum (n)`
-
-<br />
-
-- **Final Score**
-
-| Date        | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |  Total   |
-|:-----------:|:-----:|:-----:|:-----:|:-----:|:-----:|:--------:|
-|30.07.19 `1.`|   0   |    0  |   0   |  0.5  |  1.0  | **0.30** |
-
-<br />
-
-- **Grading Notes**
-    1. `Final grading was done on 30.07.19, but the results are as of 02.07.19`
-    2. `KRs#1-3: at the time of grading, no candidates had been signed in a full time position`
-    3. `KR#4: A side project for chat was handed out, but the project was aborted`
-
-<br />
-
-- **Tracking Notes**
-    * `Due to time constraints, tracking was not done according to schedule`
-
-<br />
-
-- **Tracking:**
-
-| Date         | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |      Comments          |
-|--------------|:-----:|:-----:|:-----:|:-----:|:-----:|:----------------------:|
-| 23.04.19     |   0   |  0.3  |  0    |  0.05 |   1   | #1-3 from `n` to `ewd` |
-| 07.05.19     |  0.1  |  0.5  |  0.1  |  0.5  |   1   |           -            |
-| 21.05.19     | 0.15  |  0.6  | 0.15  |   0   |   1   |           -            |
-| 04.06.19     | 0.50  |  0.6  | 0.10  |   0   |   1   |           -            |
-| 18.06.19     | 0.60  |  0.7  | 0.40  |   0   |   1   |           -            |
-| 02.07.19     |  NA   |   NA  |   NA  |   NA  |   NA  |     See notes          |
-| 30.07.19 `1.`|  0.80 |  0.70 | 0.40  |   0   |   1   |     See notes          |
-
-
-
-## Objective: `Expand Joystream platform awareness`
-- **Active from:** 09.04.19
-- **KR Measurement Deadline:** 02.07.19
-- **Tracked:** Every other Tuesday
-- **Tracking Manager:** Martin
-- **Key Results:** Martin and Bedeho u.n.o.
-  1. `Get 500 sign ups for our Joystream jobs and roles mailing list (n)`
-  2. `Get 2000 "Readers" and 5000 "Reads" on our blog in Q2 (n)`
-      * `Martin`
-  3. `Get 500 downloads per hour spent for "Staked" (n)`
-  4. `Complete "Opportunistic joystream.org Website Improvements" (ewd)`
-      * `Bedeho` : `0.75`
-      * `Martin` : `0.25`
-  5. `Get 75% marks on user website comprehension test (ewd)`
-      * `Bedeho` : `0.75`
-      * `Martin` : `0.25`
-
-<br />
-
-- **Final Score**
-
-| Date        | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |  Total   |
-|:-----------:|:-----:|:-----:|:-----:|:-----:|:-----:|:--------:|
-|30.07.19 `1.`|  0.24 |  0.40 |  0.05 |  0.95 |  NA   | **0.41** |
-
-<br />
-
-- **Grading Notes**
-    1. `Final grading was done on 30.07.19, but the results are as of 02.07.19`
-    2. `KR#5: As we decided to move off of webflow, it was decided to postpone the comprehension test until migration was complete.`
-
-<br />
-
-- **Tracking Notes**
-    * `Calibration numbers: 0 - 802/1400 - 184 - 0/10 - NA`
-    * `KR#4 refers to tasks in https://github.com/orgs/Joystream/projects/3`
-    * `Due to time constraints, tracking was not done according to schedule`
-    * `KR#5: see Grading Notes 2.`
-
-<br />
-
-- **Tracking:**
-
-| Date         |     KR #1    |       KR #2       |       KR #3       |  KR #4  |  KR #5  |       Comments             |
-|--------------|:------------:|:-----------------:|:-----------------:|:-------:|:-------:|:--------------------------:|
-| 23.04.19     |(31) **0.06** |(182,318) **0.08** |(30,5) **0.01**    | **0.25**|   0     |Changed #1 from `ewd` to `n`|
-| 07.05.19     |(35) **0.07** |(344,552) **0.14** |(46,12) **0.01**   | **0.35**| **0.1** |         -                  |
-| 21.05.19     |(43) **0.09** |(478,778) **0.20** |(143,21.5) **0.01**| **0.5** | **0.1** |         -                  |
-| 04.06.19     |(57) **0.11** |(664,1023) **0.27**|(229,21.5) **0.02**| **0.65**| **0.1** |         -                  |
-| 18.06.19     |(81) **0.16** |(738,1200) **0.30**|(430,21.5) **0.04**| **0.75**| **0.1** |         -                  |
-| 02.07.19     |     NA       |         NA        |        NA         |    NA   |   NA    |        See notes           |
-| 30.07.19 `1.`|(120) **0.24**|(978,1600) **0.40**|(494,21.5) **0.05**| **0.95**| **0.5** |        See notes           |
-
-# Personal OKRs
-
-## `Bedeho` (@bedeho)
-
-## Objective: `Improve Technical Productivity of Team`
-
-- **Active from:** 23.04.19
-- **KR Measurement Deadline:** 16.07.19
-- **Tracked:** Every other Tuesday
-- **Tracking Manager:** Martin
-- **Key Results:** Bedeho
-  1. `Write Rust|Substrate forum module which is ready for release (ewd)`
-  2. `Define first full technical specification framework, and apply to a release (ewd)`
-  3. `Define runtime architecture guidelines (stretch goal) (n)`
-
-<br />
-
-- **Final Score**
-
-| Date        | KR #1 | KR #2 | KR #3 |   Total  |
-|:-----------:|:-----:|:-----:|:-----:|:--------:|
-|30.07.19 `1.`|  1.0  |  0.75 |  0.5  | **0.75** |
-
-<br />
-
-- **Grading Notes**
-    1. `Final grading was done on 30.07.19, but the results are as of 02.07.19`
-    2. `KR#2: The specification framework was heavily modified, not fully applied (storage P2P) and the value of the concept is being reconsidered`
-    3. `KR#3: WIP`
-
-<br />
-
-- **Tracking Notes**
-    * `Due to time constraints, tracking was not done according to schedule`
-
-<br />
-
-- **Tracking:**
-
-| Date         | KR #1 | KR #2 | KR #3 |Comments      |
-|--------------|:-----:|:-----:|:-----:|:------------:|
-| 07.05.19     |  0.3  |  0.5  |  0.15 | Killed KR #4 |
-| 21.05.19     |  0.65 |  0.85 |  0.15 |      -       |
-| 04.06.19     |  0.95 |  0.80 |  0.2  |      -       |
-| 18.06.19     |  1.0  |  0.95 |  0.5  |      -       |
-| 02.07.19     |  NA   |  NA   |   NA  |   See notes  |
-| 16.07.19     |  NA   |  NA   |   NA  |   See notes  |
-| 30.07.19 `1.`|  1.0  |  0.75 |  0.5  |   See notes  |
-
-## `Martin` (@bwhm)
-
-## Objective: `Improve value as Release Manager`
-- **Active from:** 23.04.19
-- **KR Measurement Deadline:** 16.07.19
-- **Tracked:** Every other Tuesday
-- **Tracking Manager:** Bedeho
-- **Key Results:** Martin
-  1. `Improve meeting tracking/reporting system as measured by no more than 1-off 7-day delay of release milestones (ewd)`
-  2. `Schedule, perform and report on weekly testing of new features in staging testnet(s) (ewd)`
-  3. `Submit minutes for all "Core" release meetings (n)`
-  4. `Finish the rust book. (n)`
-  5. `Have 2 (/src) PRs merged to our technical repos (n)`
-
-<br />
-
-- **Final Score**
-
-| Date        | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |  Total   |
-|:-----------:|:-----:|:-----:|:-----:|:-----:|:-----:|:--------:|
-|30.07.19 `1.`|  1.0  |  0.66 |  1.0  |  0.14 |  0.5  | **0.66** |
-
-<br />
-
-- **Grading Notes**
-    1. `Final grading was done on 30.07.19, but the results are as of 02.07.19`
-    2. `KR#2: Some meetings had to be postponed and the reporting was not always published`
-    3. `KR#5: Apart from some "low hanging fruit", the PRs was not merged in time`
-
-<br />
-
-- **Tracking Notes**
-    * `Due to time constraints, tracking was not done according to schedule`
-
-<br />
-
-- **Tracking:**
-
-| Date         | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |   Comments  |
-|:------------:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----------:|
-| 07.05.19     |   0.4 |  0.05 |  1.0  |  0.14 |   0   | KR#2 -> ewd |
-| 21.05.19     |  0.2  |  0.25 |  1.0  |  0.14 |   0   |      -      |
-| 04.06.19     | 0.55  |  0.30 |  1.0  |  0.14 |   0   |      -      |
-| 18.06.19     | 0.85  |  0.66 |  1.0  |  0.14 |   0   |      -      |
-| 02.07.19     |  NA   |   NA  |   NA  |   NA  |   NA  |  See notes  |
-| 16.07.19     |  NA   |   NA  |   NA  |   NA  |   NA  |  See notes  |
-| 30.07.19 `1.`|  1.0  |  0.66 |  1.0  |  0.14 |  0.5  |  See notes  |

+ 0 - 70
okrs/OKR-archive/releases/acropolis/README.md

@@ -1,70 +0,0 @@
-Acropolis OKR Archive
-===
-
-## Objective: `Launch Acropolis Network`
-- **Active from:** 09.05.19
-- **KR Measurement Deadline**: 7-9 days after Acropolis launch (first weekday)
-- **Tracked**: Every Monday
-- **Tracking Manager**: Martin
-- **Key Results**:
-1. `Get 75 posts on forum (limits, not Jsg) (ewd)`
-    - Bedeho: 2/3
-    - Alex: 1/3
-2. `Forum (runtime), storage (runtime and P2P) fully specd (n)`
-    - Bedeho (as manager): 1/2
-    - Bedeho (as writer): 1/6
-    - Jens: 2/6
-      - Mokhtar from 10.06.19
-3. `Have 4x replication for all 2 tranches on storage node (ewd)`
-    - Jens: 2/3
-      - Mokhtar from 10.06.19
-    - Mokhtar: 1/3
-4. `95% uptime Storage Providers (ewd)`
-    - Jens: 1/4
-      - 0 from 10.06.19
-    - Mokhtar: 1/4
-      - 1/2 from 10.06.19
-    - Martin: 1/4
-    - Alex: 1/4
-5. `No PRs merged to master (excluding bugfixes and "pioneer") after "Sub-system Test" (conf)`
-    - Martin: 1/2
-    - Jens: 1/8
-      - 0 from 10.06.19
-    - Mokhtar: 1/8
-      - 1/6 from 10.06.19
-    - Bedeho: 1/8
-      - 1/6 from 10.06.19
-    - Alex: 1/8
-      - 1/6 from 10.06.19
-
-<br />
-
-- **Final Score**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |  Total  |
-|:--------:|:-----:|:-----:|:-----:|:-----:|:-----:|:-------:|
-| 03.07.19 | 0.55  | 0.67  |  0.5  |  0.75 | 0.5   |**0.594**|
-
-- **Notes**
-1. `Although we only got 7 posts that counts, the forum was shipped successfully. We decided to grade it as two separate results.`
-2. `The forum and storage runtime was fully spec'd, whereas the P2P aspect of the storage was considered too incomplete to publish.`
-3. `We achieved more than 4x replication, but tranches had to be abandoned.`
-4. `We split this up in two parts, where the end user uptime, and provider uptime was weighted at 0.5 each.`
-5. `The storage node had non-bug fixes (improvements) merged to master after "Full test", whereas the forum side had none.`
-
-
-- **Tracking:**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |    Comments       |
-|:--------:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----------------:|
-| 13.05.19 |(0.55,0.65) **0.58**|(0.4,1,0.1) **0.4**|(0,0) **0**|(0,0,0,0) **0**|(0.5,1,0.5,0.95,0.95) **0.68**|KR3 tracking N/A as SoW must be finalized|
-| 20.05.19 |(0.6,0.8) **0.7**|(0.4,1,*0.1*) **0.4**|(*0*,0.1) **0.03**|(*0*,0,0,0) **0**|(0.5,*1*,0.25,0.95,0.95) **0.64**|  *n* denotes Jens' tracking (absent)|
-| 27.05.19 |(0.7,0.85) **0.78**|(0.4,1,0.9) **0.67**|(0,0.1) **0.03**|(0,0,0,0) **0**|(0.7,1,0.6,1,0.95) **0.79**|    -      |
-| 03.06.19 |(0.9,0.85) **0.88**|(0.4,1,0.95) **0.67**|(0.45,0.2) **0.37**|(0,0.2,0,0) **0.05**|(0.6,1,0.8,1,0.95) **0.77**|    **-**        |
-| 10.06.19 |(1.0,0.9) **0.95**|(0.4,1,0.95) **0.67**| (0.4) **0.4** |(0.85,0,0) **0.43**| `*` |`*` **Due to changes in circumstances, we chose abstain from tracking KR5**|
-| 17.06.19 |(0.99,0.97) **0.98**|(0.8,1.0,1.0) **0.9**|(0.49) **0.49**|(0.99,0.5,1.0) **0.85**|(0.65,0.95,0.3,0.7) **0.65**| - |
-| 24.06.19 |(1.0,1.0) **1.0**|(0.67,1.0,1.0) **0.83**|(0.5) **0.5**       |(0.9,0.8,1.0) **0.9**|(0,0.8,1.0,1.0) **0.47**  |
-| 03.07.19 | (1+7/75)x0.5 **0.55**| (2/3) **0.67**  | (1+0)x0.5 **0.5**| (1+0.5)x0.5 **0.75** | **0.5**   |Actual score|
-
-- **Notes**
-  * During the first tracking, it was decided to track KR5 by how confident (conf) each assigned individual is that the KR will be achieved.

+ 0 - 56
okrs/OKR-archive/releases/athens/README.md

@@ -1,56 +0,0 @@
-Athens OKR Archive
-===
-
-## Objective: `Launch Athens network`
-- **Active from:** 04.02.19
-- **KR Measurement Deadline**: 1 week after Athens launch
-- **Tracked**: Every Monday
-- **Tracking Manager**: Martin
-- **Key Results**:
-  1. `Get 10 claims per $ for tokens on our faucet (ewd)`
-      - Mokhtar: 0.5
-      - Martin: 0.5
-  2. `Have all episodes of the Staked (4) and Make_World (#) podcast in the content directory (ewd)`
-      - Jens: 0.5
-      - Martin+Bedeho: 0.5
-  3. `Have second council upgrade consensus after reaching quorum (ewd)`
-      - Alex: 1/3
-      - Mokhtar: 1/3
-      - Martin: 1/3
-  4. `20 Uploads (100min) and 100 Downloads not including Jsgenesis (ewd)`
-      - Jens: 1/3
-      - Alex: 1/3
-      - Mokhtar: 1/3
-  5. `75 Memberships created (not including Jsgenesis) at a min 1/2 membership/unique view ratio (ewd)`
-      - Mokhtar: 0.5
-      - Alex: 0.5
-
-
-<br />
-
-- **Final Score**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |  Total  |
-|:--------:|:-----:|:-----:|:-----:|:-----:|:-----:|:-------:|
-| 23.04.19 | 0.05  | 0.83  |  0.5  |  0.67 | 0.66  |**0.642**|
-
-
-- **Notes**
-  * `KRs 3, 4 and 5 were changed mid flight. KR tracking from before the 18.03 is disregarded `
-  * `This was a result of inexperience constructing good OKRs`
-  * `KRs was tracked from 04.03.19, but due to in flight changes, the numbers were scrapped`
-  * `For the raw numbers in final grading below, * denotes conservative estimates/extrapolations.`
-<br />
-
-- **Tracking:**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |  Comments |
-|:--------:|:-----:|:-----:|:-----:|:-----:|:-----:|:--------------:|
-| 04.03.19 | -  | -  | -  |  - |  - | In flight changes |
-| 18.03.19 |(1.0 , 0.75) **0.87**  | (0.66 , 0.9) **0.78**  | (1.0 , 0.8 , 0.8) **0.87**  |  (0.66 , 0, 0) **0.33** |  (0.8 , 0.65) **0.73** |  First Athens grading |
-| 25.03.19 |(1.0 , 0.86) **0.92** | (0.75 , 0.92) **0.84**  | (1.0 , 0.9 , 0.8) **0.9**  |  (0.66 , 0.1, 0.7) **0.49** |  (0.85 , 0.85) **0.85** | - |
-| 01.04.19 |(0.5 , 0.9) **0.7** | (0.8 , 0.95) **0.88**  |  **0.5**  |  (0.66 , 0.65, 0.9) **0.74** |  (1.0 , 0.85) **0.93** | Sparta crash made #3 unobtainable |
-| 08.04.19 |(0.5 , 0.9) **0.7** | (0.85 , 0.95) **0.9**  |  **0.5**  |  (1.0 , 0.9, 0.9) **0.93** |  (1.0 , 0.85) **0.93** | - |
-| 15.04.19 | (1.0 , 0.9) **0.95**  | (0.9 , 0.98) **0.94**   |  **0.5**  |  (0.95 , 1.0, 1.0) **0.96** |  (1.0 , 0.98) **0.99** | Bedeho not present |
-| 23.04.19 | (1.0 , 1.0) **1.0**  | (0.98 , 1.0) **0.99**   |  **0.5**  |  (1.0 , 1.0, 1.0) **1.0** |  (1.0 , 0.9) **0.95** | Bedeho not present |
-| 23.04.19 | (93 , $170) **0.05**  | (4/4 , 1/2) **0.83**   |  **0.5**  |  (4/20 , 46/100, 364*/200) **0.67** |  (32(40) , 72*(78)) **0.66** | Actual score |

+ 0 - 186
okrs/README.md

@@ -1,186 +0,0 @@
-<p align="center"><img src="img/live-okr_new.svg"></p>
-
-Table of Contents
-=================
-
-<!-- TOC START min:1 max:3 link:true asterisk:false update:true -->
-- [Archive](#archive)
-- [Project OKRs](#project-okrs)
-  - [!WIP! :construction_worker: Objective: `Launch a functional, upgradable video platform, governed and operated by a vibrant community`](#wip-construction_worker-objective-launch-a-functional-upgradable-video-platform-governed-and-operated-by-a-vibrant-community)
-- [Quarterly OKRs](#quarterly-okrs)
-- [Release OKRs](#release-okrs)
-  - [Objective: `Introduce a Better Content System`](#objective-introduce-a-better-content-system)
-  - [Objective: `Engage community to understand Rome and join us in the future`](#objective-engage-community-to-understand-rome-and-join-us-in-the-future)
-- [Group OKRs](#group-okrs)
-- [Personal OKRs](#personal-okrs)
-<!-- TOC END -->
-
-# Archive
-
-Archived OKRs are found in [archive](OKR-archive), below only live OKRs are found.
-
-# Project OKRs
-
-## !WIP! :construction_worker: Objective: `Launch a functional, upgradable video platform, governed and operated by a vibrant community`
-- **Active from:** N/A
-- **KR Measurement Deadline:** Joystream autonomous network live
-- **Tracked:** Every quarter
-- **Tracking Manager:** Martin
-- **Key Results:**
-  1. `All (IT) infrastructure roles are contested, and at least one professional for profit operation is taking part`
-  2. `There are at least 10 builders, with at least 2 in a full time capacity`
-  3. `There are at least 100 active governance or operations focused daily active members`
-  4. `There are at least 10000 daily active members, as measured by any kind of use of the platform`
-  5. `There are at least 200 active publishers, where active is defined as publishing at least once per month`
-<br />
-
-- **Notes**
-  * `None`
-<br />
-
-- **Tracking:**
-
-|     Date     |  KR#1  |  KR#2  |  KR#3  |  KR#4  |  KR#5  |        Comments        |
-|:------------:|:------:|:------:|:------:|:------:|:------:|:----------------------:|
-| dd.mm.yy     |   NA   |   NA   |   NA   |   NA   |   NA   |         **NA**         |
-
-# Quarterly OKRs
-
-TBD
-
-# Release OKRs
-
-## Objective: `Introduce a Better Content System`
-- **Active from:** 20.08.19
-- **KR Measurement Deadline**: 7 days after Rome launch
-- **Tracked**: Every Tuesday
-- **Tracking Manager**: Martin
-- **Key Results**:
-  1. `Members can make a Content Creator profile and publish content under this profile.`
-
-  2. `Introduce the role of staked Content Curators, policed by sudo.`
-
-  3. `Launch with 3 content types.`
-
-  4. `Add 1 new content type after release.`
-
-  5. `Add a new schema for a content type, and migrate only some instances to the new schema.`
-
-<br />
-
-#### Tracking
-
-|     Date     |  KR#1  |  KR#2  |  KR#3  |  KR#4  |  KR#5  |        Comments        |
-|--------------|:------:|:------:|:------:|:------:|:------:|------------------------|
-| 27.08.19     |  0.04  |  0.11  |  0.06  |  0.06  |  0.06  |     Weighting v0       |
-| 03.09.19     |  0.11  |  0.10  |  0.18  |  0.09  |  0.09  |     Weighting v1       |
-| 10.09.19     |  0.11  |  0.21  |  0.22  |  0.09  |  0.09  |     Weighting v2       |
-| 17.09.19     |  0.17  |  0.31  |  0.28  |  0.09  |  0.09  |           -            |
-| 24.09.19     |  0.22  |  0.41  |  0.50  |  0.19  |  0.19  |           -            |
-| 01.10.19     |  0.30  |  0.53  |  0.60  |  0.25  |  0.25  |           -            |
-| 08.10.19     |  0.30  |  0.64  |  0.60  |  0.25  |  0.25  |           -            |
-| 15.10.19     |  0.30  |  0.67  |  0.68  |  0.38  |  0.25  |           -            |
-| 22.10.19     |  0.35  |  0.69  |  0.68  |  0.64  |  0.25  |           -            |
-| 29.10.19     |  0.47  |  0.72  |  0.68  |  0.51  |  0.25  |           -            |
-| 05.11.19     |  0.47  |  0.73  |  0.68  |  0.51  |  0.25  |           -            |
-| 12.11.19     |  0.53  |  0.73  | 0.45`*`|  0.51  |  0.25  |  `*` See note 2.       |
-| 19.11.19     |  0.53  |  0.73  |  0.45  |  0.51  |  0.25  |           -            |
-| 26.11.19     |  0.53  |  0.76  |  0.45  |  0.51  |  0.25  |           -            |
-| 03.12.19     |  0.61  |  0.78  |  0.45  |  0.51  |  0.25  |           -            |
-| 10.12.19     |  0.61  |  0.78  |  0.45  |  0.51  |  0.25  |     No updates         |
-| 17.12.19     |  0.63  |  0.78  |  0.45  |  0.51  |  0.25  |           -            |
-| 24.12.19     |        |        |        |        |        |           -            |
-| dd.mm.yy     |        |        |        |        |        |           -            |
-
-#### Tracking Notes
-
-1. Some tweaks to the tracking should be expected. In this case, these changes will be reflected in the comments.
-2. It was decided to only launch with two content types, thus the tracked score of KR3 was adjusted by **2/3**.
-
-<br />
-
-## Objective: `Engage the community to understand Rome and join us in the future`
-- **Active from:** 20.08.19
-- **KR Measurement Deadline**: 7 days after Rome launch
-- **Tracked**: Every Tuesday
-- **Tracking Manager**: Martin
-- **Key Results**:
-
-  1. `20 Content Creator profiles which add at least one content item.`
-
-  2. `Get 5 active Content Curators.`
-
-  3. `At least 20 items for each content type enabled at launch.`
-
-  4. `At least 500 items in total across all content types.`
-
-<br />
-
-#### Tracking
-
-|     Date     |  KR#1  |  KR#2  |  KR#3  |  KR#4  |        Comments        |
-|--------------|:------:|:------:|:------:|:------:|------------------------|
-| 27.08.19     |   0    |   0    |   0    |   0    |      Weighting v0      |
-| 03.09.19     |   0    |   0    |   0    |   0    |           -            |
-| 10.09.19     |   0    |   0    |   0    |   0    |           -            |
-| 17.09.19     |   0    |   0    |   0    |   0    |           -            |
-| 24.09.19     |   0    |   0    |   0    |   0    |           -            |
-| 01.10.19     |   0    |   0    |   0    |   0    |           -            |
-| 08.10.19     |   0    |   0    |   0    |   0    |           -            |
-| 15.10.19     |   0    |   0    |   0    |   0    |           -            |
-| 22.10.19     |   0    |   0    |   0    |   0    |           -            |
-| 29.10.19     |   0    |   0    |   0    |   0    |           -            |
-| 05.11.19     |   0    |   0    |   0    |   0    |           -            |
-| 12.11.19     |   0    |   0    |   0    |   0    |           -            |
-| 19.11.19     |   0    |   0    |   0    |   0    |           -            |
-| 26.11.19     |   0    |   0    |   0    |   0    |           -            |
-| 03.12.19     |   0    |   0    |   0    |   0    |           -            |
-| 10.12.19     |   0    |   0    |   0    |   0    |           -            |
-| 17.12.19     |   0    |   0    |   0    |   0    |           -            |
-| 24.12.19     |        |        |        |        |           -            |
-| dd.mm.yy     |        |        |        |        |           -            |
-
-#### Tracking Notes
-
-* `NA`
-
-<br />
-
-#### OKR Notes
-
-* [Technical OKR](#objective-introduce-a-better-content-system)
-  * `1.` A member can create multiple "Content Creator" profiles associated with their membership ID.
-  * `3. - 5.` The content types and schemas must be understood by both the runtime and pioneer.
-
-* [Community OKR](#objective-engage-community-to-understand-rome-and-join-us-in-the-future)
-  * `2.` "Active" means Content Curators that are not fired as a result of not following their responsibilities.
-  * `3. & 4.`: Content "items" means a number of entries in the content directory, not the data objects associated with the entry.
-
-See [Release Plan](/testnets/rome/README.md#general) for general notes on the Release OKRs.
-
-<br />
-
-# Group OKRs
-
-Fill in if applicable.
-
-# Personal OKRs
-
-<!--
-## `Alex` (@siman)
-
-Fill in if applicable.
-
-## `Bedeho` (@bedeho)
-
-TBD
-
-## `Martin` (@bwhm)
-
-TBD
-
-## `Mokhtar` (@mnaamani)
-
--->
-
-Fill in if applicable.

File diff suppressed because it is too large
+ 0 - 0
okrs/img/live-okr.svg


File diff suppressed because it is too large
+ 0 - 72
okrs/img/live-okr_new.svg


+ 0 - 32
reports/README.md

@@ -1,32 +0,0 @@
-
-
-# Table of contents
-
-- [Reports](#reports)
-- [Format](#format)
-- [Index](#index)
-
-# Reports
-
-Reports are documents describing the discussion and decision making that results from meetings which were not scheduled to have note taking, yet ended up being very significant in technical or organisational respects.
-
-# Format
-
-A report must include
-
-- Title
-- Participants
-- Author.
-- Time and place
-- A description of major topics discussed
-- A set of conclusions arrived at
-
-Write in third person voice to keep report maximally neutral.
-
-# Index
-
-This is the index of past reports, they should all be stored in the `archive` subfolder under an integer file name. Any attachments for a report with id `N` should be located in a folder in the same directory named `N-attachments`.
-
-1. [Content Directory Encoding Discussion](archive/1.md)
-2. [Runtime Spec Proposal Discussion](archive/2.md)
-3. [1st Storage Spec Discussion](archive/3.md)

+ 0 - 63
reports/archive/1.md

@@ -1,63 +0,0 @@
-
-# Content Directory Encoding Discussion
-
-## Author
-
-Bedeho
-
-## Participants
-
-- Jens
-- Alex
-- Bedeho
-
-## Time and place
-
-4th April 2019, 12am GMT+1
-
-## Topics
-
-How content should be represented in the content directory is not specified in detail in the whitepaper, only sketched out conceptually, and Alex and Jens had proposed a general data model they wanted to review, referred to as the "JSON approach". This proposal was discussed and compared to another proposal that Bedeho already had had in mind, referred to as the "statically typed approach".
-
-### The "JSON approach"
-
-1. Each content item is not classified by type (e.g. video, music, episodic, film) explicitly, but rather contains a raw json of relevant properties, along with a reference to a json schema index kept on chain. This reference is a sort of implicit type definition. The only other runtime field would be any relevant set of data item ids, and the rationale for lifting them out of the json was for the runtime to enforce that the ids were in fact in the data directory.
-
-2. Adding a new content type, or _altering an existing content type schema_, amounts to adding a new schema to the index, and updating user facing software to write and read to the content directory with a new awareness of what this new schema means. New content items would be able to reference the new schema, but would not have to in principle.
-
-3. Importantly, the runtime would in no way validate whether the json encoding of some added or edited content matched the given schema, or was valid json at all, this would be up to the client software to do.
-
-### The "statically typed" approach
-
-Fully specify, as in a relational database context, all content types in the runtime, and have the runtime enforce integrity of any mutation of the content directory (add/edit).
-
-When the the format for some content type changed, this would require a migration, and when a new type was added, this would require a runtime upgrade. Clients would need to stay up to date with what the latest content system was in order to work correctly.
-
-### Discussion
-
-Jens and Alex were concerned that doing migrations on schema modifications for a given type was too costly to allow the frequency of changes to existing schemas. Also adding new content type would be harder, as it would require a runtime upgrade, but it was less of an issue, since it would happen less frequently.
-
-Alex also brought up the issue of how doing migrations on schema changes would break third party user interfaces that were not actively in synch with the platform dynamics.
-
-Bedeho was concerned that having the runtime state contain invalid (e.g. a podcast containing a podcast as the cover image data item) or deprecated (e.g. having N different now irrelevant encodings of what a podcast actually is), and that we would need to find a way to do frequent upgrades and migrations anyway.
-
-## Conclusions
-
-We agreed to use the "json approach" for Athens.
-
-## Bedeho post-mortem opinion
-
-1. I think that we must distinguish between the specific implementation of the "json approach" now used, and . As was acknowledged by Jens, there will probably be a number of other properties that it could make sense to lift out of the json for different types, e.g. category information. The current implementation blocks this, or at least requires that all types have the same category information rules. A half way house would be to have some typing for different types, but still have use of jsons paylouds in these types.
-
-2. **The issue of migrations imposing design constraints is a fundamental one, and we need more information on these before we start basing an increasing number of decisions upon it. Therefore I suggest we make it a point to try doing a migration as an educational exercise for the network after Athens in order to learn more about it, and in particular how to do ATP (see whitepaper) migrations that would be free of time constraints**
-
-3. The benefit of supporting low investment/effort third party user interfaces is outweighed by the cost of having to move slowly and become a least common denominator over time. Excellent user experiences are of much higher value. Although not a priority, there is actually a way to incentivise a diversity of user interfaces which is briefly touched upon in the whitepaper in the discussion section under bullet point **Screening and suspension and web 2.0 assets**:
-
-_...This may coincidentally ameliorate one of the other primary limitations of the platform, due to the state of current web/internet* infrastructure, which is the inability to properly own assets such as domains and app store entries. An ecosystem of such screeners can own these assets, conduct their own screening procedure, and capture in the upside the membership base they bring to the platform._
-
-*Added for disambiguation
-
-
-## Note
-
-If any participant wishes to add their own post-mortem, please open a PR.

+ 0 - 472
reports/archive/2-attachments/members-module.md

@@ -1,472 +0,0 @@
-
-# Members Module
-
-## Table Of Content
-
-- [Overview](#overview)
-- [Constants](#constants)
-- [Trait Configuration](#trait-configuration)
-  - [Trait Name](#trait-name)
-  - [Base Traits](#base-traits)
-  - [Associated Types](#associated-types)
-    - [Event](#Event)
-    - [MemberId](#MemberId)
-    - [PaidTermId](#PaidTermId)
-    - [SubscriptionId](#SubscriptionId)
-    - [Roles](#Roles)
-- [Public Types](#public-types)
-  - [EntryMethod](#EntryMethod)
-  - [Profile](#Profile)
-  - [PaidMembershipTerms](#PaidMembershipTerms)
-  - [UserInfo](#UserInfo)
-- [Storage](#storage)
-- [Invariants](#invariants)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [buy_membership](#`buy_membership`)
-  - [change_member_about_text](#`change_member_about_text`)
-  - [change_member_avatar](#`change_member_avatar`)
-  - [change_member_handle](#`change_member_handle`)
-  - [update_profile](#`update_profile`)
-  - [add_screened_member](#`add_screened_member`)
-  - [set_screening_authority](#`set_screening_authority`)
-- [Non-dispatchable Methods](#non-dispatchable-methods)
-  - [is_active_member](#`is_active_member`)
-  - [lookup_member_id](#`lookup_member_id`)
-  - [lookup_account_by_member_id](#`lookup_account_by_member_id`)
-
-## Overview
-
-Manages the set of current members, their profile, status.
-
-## Module Name
-
-`Membership`
-
-## Constants
-
-These are constants that are only part of making this document legible, they are not part of the public interface of the module.
-
-```Rust
-const DEFAULT_FIRST_MEMBER_ID: u64 = 1;
-const FIRST_PAID_TERMS_ID: u64 = 1;
-const DEFAULT_PAID_TERM_ID: u64 = 0;
-const DEFAULT_PAID_TERM_FEE: u64 = 100;
-const DEFAULT_PAID_TERM_TEXT: &str = "Default Paid Term TOS...";
-const DEFAULT_MIN_HANDLE_LENGTH: u32 = 5;
-const DEFAULT_MAX_HANDLE_LENGTH: u32 = 40;
-const DEFAULT_MAX_AVATAR_URI_LENGTH: u32 = 1024;
-const DEFAULT_MAX_ABOUT_TEXT_LENGTH: u32 = 2048;
-```
-
-## Trait Configuration
-
-### Trait Name
-
-`Trait`
-
-### Base Traits
-
-These are the traits which provide the interfaces to services external to this module, such as peer modules which must run in the same runtime for example.
-
-- **system::Trait**
-- **timestamp::Trait**
-- [**GovernanceCurrency**](shared-types.md#GovernanceCurrency)
-
-### Associated Types
-
-#### Event
-
-Event type. ???
-
-#### MemberId
-
-Member identifier type.
-
-####  PaidTermId
-
-Paid term identifier type.
-
-#### SubscriptionId
-
-Subscription identifier type.
-
-#### Roles
-
-Roles module type. <what do we link to here!?>
-
-## Public Types
-
-These are the public type of the module, that is they are used in the storage system and in signature of public methods. All other types are omitted.
-
-### EntryMethod
-
-```Rust
-pub enum EntryMethod<T: Trait> {
-    Paid(T::PaidTermId),
-    Screening(T::AccountId),
-}
-```
-
-### Profile
-
-```Rust
-pub struct Profile<T: Trait> {
-    pub id: T::MemberId,
-    pub handle: Vec<u8>,
-    pub avatar_uri: Vec<u8>,
-    pub about: Vec<u8>,
-    pub registered_at_block: T::BlockNumber,
-    pub registered_at_time: T::Moment,
-    pub entry: EntryMethod<T>,
-    pub suspended: bool,
-    pub subscription: Option<T::SubscriptionId>,
-}
-```
-
-### PaidMembershipTerms
-
-```Rust
-pub struct PaidMembershipTerms<T: Trait> {
-    /// Unique identifier - the term id
-    pub id: T::PaidTermId,
-    /// Quantity of native tokens which must be provably burned
-    pub fee: BalanceOf<T>,
-    /// String of capped length describing human readable conditions which are being agreed upon
-    pub text: Vec<u8>,
-}
-```
-
-### UserInfo
-
-```Rust
-pub struct UserInfo {
-    pub handle: Option<Vec<u8>>,
-    pub avatar_uri: Option<Vec<u8>>,
-    pub about: Option<Vec<u8>>,
-}
-```
-
-## Storage
-
-The following is the payload used with `decl_storage`.
-
-```Rust
-/// MemberId's start at this value
-pub FirstMemberId get(first_member_id) config(first_member_id): T::MemberId = T::MemberId::sa(DEFAULT_FIRST_MEMBER_ID);
-
-/// MemberId to assign to next member that is added to the registry
-pub NextMemberId get(next_member_id) build(|config: &GenesisConfig<T>| config.first_member_id): T::MemberId = T::MemberId::sa(DEFAULT_FIRST_MEMBER_ID);
-
-/// Mapping of member ids to their corresponding primary accountid
-pub AccountIdByMemberId get(account_id_by_member_id) : map T::MemberId => T::AccountId;
-
-/// Mapping of members' account ids to their member id.
-pub MemberIdByAccountId get(member_id_by_account_id) : map T::AccountId => Option<T::MemberId>;
-
-/// Mapping of member's id to their membership profile
-// Value is Option<Profile> because it is not meaningful to have a Default value for Profile
-pub MemberProfile get(member_profile) : map T::MemberId => Option<Profile<T>>;
-
-/// Registered unique handles and their mapping to their owner
-pub Handles get(handles) : map Vec<u8> => Option<T::MemberId>;
-
-/// Next paid membership terms id
-pub NextPaidMembershipTermsId get(next_paid_membership_terms_id) : T::PaidTermId = T::PaidTermId::sa(FIRST_PAID_TERMS_ID);
-
-/// Paid membership terms record
-// Remember to add _genesis_phantom_data: std::marker::PhantomData{} to membership
-// genesis config if not providing config() or extra_genesis
-pub PaidMembershipTermsById get(paid_membership_terms_by_id) build(|config: &GenesisConfig<T>| {
-    // This method only gets called when initializing storage, and is
-    // compiled as native code. (Will be called when building `raw` chainspec)
-    // So it can't be relied upon to initialize storage for runtimes updates.
-    // Initialization for updated runtime is done in run_migration()
-    let mut terms: PaidMembershipTerms<T> = Default::default();
-    terms.fee = config.default_paid_membership_fee;
-    vec![(terms.id, terms)]
-}) : map T::PaidTermId => Option<PaidMembershipTerms<T>>;
-
-/// Active Paid membership terms
-pub ActivePaidMembershipTerms get(active_paid_membership_terms) : Vec<T::PaidTermId> = vec![T::PaidTermId::sa(DEFAULT_PAID_TERM_ID)];
-
-/// Is the platform is accepting new members or not
-pub NewMembershipsAllowed get(new_memberships_allowed) : bool = true;
-
-pub ScreeningAuthority get(screening_authority) : Option<T::AccountId>;
-
-// User Input Validation parameters - do these really need to be state variables
-// I don't see a need to adjust these in future?
-pub MinHandleLength get(min_handle_length) : u32 = DEFAULT_MIN_HANDLE_LENGTH;
-pub MaxHandleLength get(max_handle_length) : u32 = DEFAULT_MAX_HANDLE_LENGTH;
-pub MaxAvatarUriLength get(max_avatar_uri_length) : u32 = DEFAULT_MAX_AVATAR_URI_LENGTH;
-pub MaxAboutTextLength get(max_about_text_length) : u32 = DEFAULT_MAX_ABOUT_TEXT_LENGTH;
-```
-
-## Invariants
-
-...
-
-## Events
-
-The following is the payload used with `decl_events`.
-
-```Rust
-pub enum Event<T> where
-      <T as system::Trait>::AccountId,
-      <T as Trait>::MemberId {
-        MemberRegistered(MemberId, AccountId),
-        MemberUpdatedAboutText(MemberId),
-        MemberUpdatedAvatar(MemberId),
-        MemberUpdatedHandle(MemberId),
-}
-```
-
-## Dispatchable Methods
-
-### `buy_membership`
-
-#### Payload
-
-```Rust
-origin: Origin, paid_terms_id: PaidTermId, user_info: UserInfo
-```
-
-#### Description
-
-Establish new membership through payment.
-
-#### Errors
-
-##### 1. <what is returned?>
-
-```Rust
-!ensure_signed(origin)
-```
-
-##### 2. new members not allowed
-
-```Rust
-!<NewMembershipsAllowed<T>>::get()
-```
-
-##### 3. account already associated with a membership
-
-```Rust
-<MemberIdByAccountId<T>>::exists(origin)
-```
-
-##### 4. role key cannot be used for membership
-
-```Rust
-T::Roles::is_role_account(origin)
-```
-
-##### 5. paid terms id not active
-
-```Rust
-!<ActivePaidMembershipTerms<T>>::iter().any(|x| x == paid_terms_id)
-```
-
-##### 6. paid terms id not active
-
-_Note: This is a bug, should not be checked_
-
-```Rust
-!<PaidMembershipTermsById<T>>::exists(paid_terms_id)
-```
-
-##### 7. not enough balance to buy membership
-
-```Rust
-!T::Currency::can_slash(who, terms.fee)
-```
-
-where
-
-```Rust
-let terms = <PaidMembershipTermsById<T>>::get(paid_terms_id);
-```
-
-##### 8. missing handle
-
-```Rust
-...
-```
-
-##### 9. handle too short
-
-```Rust
-...
-```
-
-##### 10. handle too long
-
-```Rust
-...
-```
-
-##### 11. avatar uri too long
-
-```Rust
-...
-```
-
-##### 12. Handle occupied
-
-```Rust
-...
-```
-
-#### Side effects
-
-##### Membership established
-
-###### Precondition
-
-`NO_ERROR`
-
-###### Side effect(s)
-
-The following conditions must all hold
-
-```Rust
-[T::Currency::balance]'(who) == T::Currency::balance(who) - <PaidMembershipTermsById<T>>::get(paid_terms_id).fee &&
-
-[<MemberIdByAccountId<T>>]' == <MemberIdByAccountId<T>> [+] (who, <NextMemberId<T>>::get()) &&
-[<AccountIdByMemberId<T>>]' == <AccountIdByMemberId<T>> [+] (<NextMemberId<T>>::get(), who)) == who &&
-[<MemberProfile<T>>]' == <MemberProfile<T>> [+] (<NextMemberId<T>>::get(), profile) &&
-[<Handles<T>>]' == <Handles<T>> [+] (user_info.handle.clone(), <NextMemberId<T>>::get()) &&
-[<NextMemberId<T>>]' == <NextMemberId<T>> + 1
-```
-
-where
-
-```Rust
-let profile = Profile {
-  id: <NextMemberId<T>>::get(),
-  handle: user_info.handle,
-  avatar_uri: user_info.avatar_uri,
-  about: user_info.about,
-  registered_at_block: <system::Module<T>>::block_number(),
-  registered_at_time: <timestamp::Module<T>>::now(),
-  entry: EntryMethod::Paid(paid_terms_id)),
-  suspended: false,
-  subscription: None,
-}
-```
-
-###### Result
-
-```Rust
-Ok(<NextMemberId<T>>::get())
-```
-
-###### Event(s)
-
-```Rust
-MemberRegistered(<NextMemberId<T>>::get(), who.clone())
-```
-
-### `change_member_about_text`
-
-#### Payload
-
-```Rust
-origin: Origin, text: Vec<u8>
-```
-
-#### Description
-
-Change about text on membership.
-
-#### Errors
-
-##### 1. <what is returned?>
-
-```Rust
-!ensure_signed(origin)
-```
-
-##### 2. no member id found for accountid
-
-```Rust
-!<MemberIdByAccountId<T>>::exists(who)
-```
-
-##### 3. not primary account
-
-```Rust
-!<AccountIdByMemberId<T>>::exists(member_id)
-```
-
-where
-
-```Rust
-let member_id = <MemberIdByAccountId<T>>::get(who)
-```
-
-##### 4. member profile not found
-
-```Rust
-!<MemberProfile<T>>::exists(member_id)
-```
-
-#### Side effects
-
-##### About text updated
-
-###### Precondition
-
-`NO_ERROR`
-
-###### Side effect(s)
-
-The following conditions must all hold
-
-```Rust
-<MemberProfile<T>>::get(member_id).text ===  text.truncate(Self::max_about_text_length() as usize);
-```
-
-###### Result
-
-```Rust
-Ok()
-```
-
-###### Event(s)
-
-`RawEvent::MemberUpdatedAboutText(id)`
-
-
-### `change_member_avatar`
-
-_fill in_
-
-### `change_member_handle`
-
-_fill in_
-
-### `update_profile`
-
-_fill in_
-
-### `add_screened_member`
-
-_fill in_
-
-### `set_screening_authority`
-
-_fill in_
-
-## Non-dispatchable Methods
-
-### `is_active_member`
-
-...
-
-### `lookup_member_id`
-
-...
-
-### `lookup_account_by_member_id`

+ 0 - 38
reports/archive/2.md

@@ -1,38 +0,0 @@
-
-# Runtime Spec Proposal Discussion
-
-## Author
-
-Bedeho
-
-## Participants
-
-- Jens
-- Alex
-- Dagur
-- Matthew
-- Martin
-- Bedeho
-
-## Time and place
-
-3rd May 2019, 11:30am GMT+1
-
-## Topics
-
-Bedeho presents and approach for how to do runtime specification up front with the goal of making internal coordination clearer, more error free and ultimately faster by reducing amount ambiguity and mistakes.
-
-## Proposal
-
-[Members Module](2-attachments/members-module.md)
-
-## Conclusions
-
-### Bedeho post-mortem opinion
-
-No one was terribly excited at the prospect of doing this sort of specification up front. The general feeling was that it was too detailed, and would take so much time to arrive upon up front. Some wanted a higher level description instead, while other suggested simply diving straight into implementation, but instead doing it in stages where the skeleton of a runtime is reviewed by someone else before full implementations are made. While I can appreciate the concern, I am still worried that we will end up shipping less secure/error free code and that our internal shared understanding of what is being built is going to be unreliable - slowing us down. None the less, I am happy to try this higher level approach on the runtime for now, as I am effectively a lone voice on this - and there are so many unknowns. I am not sure where this preference for more informality leaves us on for other nodes/protocols, but we can revisit this. This needs to be discussed further with Mokhtar, who had to leave early on the call.
-
-
-### Note
-
-If any participant wishes to add their own post-mortem, please open a PR.

+ 0 - 107
reports/archive/3.md

@@ -1,107 +0,0 @@
-
-# 1st Storage Spec Discussion
-
-## Author
-
-Jens
-
-## Participants
-
-- Jens
-- Mokhtar
-- Bedeho
-
-## Time and place
-
-21th May 2019, 11:30am GMT+1
-
-## Topics
-
-1. Jens had submitted some partial work on storage system spec for Acropolis testnet release, found [here](https://github.com/Joystream/joystream/pull/45).
-2. Mokhtar and Bedeho reviwed and discussed it prior to the meeting, and wrote a review, see below
-3. A meeting was conducted where the review was discussed, and some conclusions were reached on key questions, see conclusion section.
-
-## Review
-
-### Questions
-
-#### Progress
-
-Would it be accurate to say that what is missing still to be specified is
-
- - the communication protocol between uploader and liason
- - the communication protocol between the liason and storage providers
- - the communication protocol between the downloader and the storage provider
- - the runtime protocol used by uploader to add new content
- - the runtime protocol for managing tranches, creating, updating and assigning them to object types
- - the runtime protocol for introducing a new storage provider
- - the runtime protocol for penalizing/evicting a storage provider
- - the runtime protocol for an exiting storage provider
-
-#### Scope
-
-Perhaps we can limit the scope for Acropolis, yet still achieve much of what we want for our OKRs, by making a good number of things just configured in the genesis state - without thinking of adding/removing/editing, such as
-- data object types
-- tranches
-- other?
-
-#### Actors module
-
-Should we even depends on Actors module? I never understood it, and Mokhtar has questioned it multiple times.
-
-#### Mime key map
-
-Data Object Type Registry module has a map `DataObjectTypeConstraintsRegistry` which maps of media types. Why are media types being emphasized as a special property of constraints? is this just a convenience thing for light clients having to do the client side constraint matching on prospective uploads?
-
-### Minor points
-
-#### Why both DataObjectTypeConstraints and DataObjectTypes
-What does DataObjectTypeConstraints add, or vice versa? ultimately, you are trying to establish a mapping between a offchain data filtering rule and an on chain tranche. Prior this all lived in DataObjectTypes. Is the point that DataObjectTypeConstraints don’t point to tranches, only DataObjectTypes do?
-
-#### Combine modules
-
-The “submodules” 1-3 on the Structure list appear to mutually depend on each other. and nether can sensibly be reused on its own. Therefore organizing them a single  Substrate modules seems to be more appropriate.Mind you, we don’t have any good convention on how to apply the Substrate module abstraction, so we just going on case by case basis for now. But re-usability in other runtimes seems like one plausible guiding concern.
-
-#### Separate Content Directory from Storage Module
-The Content Directory (CD) really should be in its own proper Substrate module, which would depend on the storage module. The CD is going to substantially grow in scope as more complicated high level business logic/state is introduced there, and none of it is relied upon by anything else in the storage module proper.
-
-### Major points
-
-#### Payload based model
-The model chosen here makes the set of tranches available for a given type/constraint a function of the raw data payload. Moreover, it obliges the client to deduce this.
-
-This has a number of limitations:
-
-**A)** The functional role of a data object, that is how it is actually going to be used in user applications, may have substantial bearing on how it should be stored and distributed, and this cannot be deduced from the raw payload. The appropriate storage tranche may be sensitive such functional dimensions, and the distribution tranches/system likewise certainly also will be. For example, a certain type of image may be used in a way in the system that its stored in a highly redundant way with highly staked actors. But an equivalent image payload, in every way, may be used in applications in a way that its not critical at all, and it could be stored with tranches with unstaked newcomers with low redundancy.
-
-**B)** the quota system, for example on uploads, becomes blind to functional roles of objects, and can only operate on raw size and similar metrics, which may not be as flexible as one wants.
-For example, perhaps you want to make sure that no one store more than one channel cover photo explicitly.
-
-As is, if new members are given a 1GB upload quota for example (which is quite low), they may chose to use that by uploading 1 million 1Kb images for example, which is both abusive and makes no sense.
-
-**C)** the distribution system will be very sensitive to the role of a data object, as this is major determinant for future bandwidth requirement profile, hence having this explicitly represented will be very useful. <== speculative point, as we have not thought much about distribution.
-
-**D)** it may be impractical for certain usage environments to even do this , e.g. a browser having process the actual internal encoding information of a large payload.
-
-The alternative implied model by these observations is to have a set of data object types explicitly defined by functional role of the data, and there is only one type open to a given data object. Client applications will have to be hard coded to use the correct type for a given purpose. Likewise the content directory (schematas) would for example require that data objects pointed to have a specific type
-
-## Conclusion
-
-
-- The progress is more or less captured.
-
-- The payload-based model for data objects is a result of
-  1.  not having a clear notion of the purposes of data object types right now, and
-  2. both the storage node needing to enforce the constraints, and the UI being able to provide better UX by also trying to enforce constraints
-  3. therefore, starting from the file type being presented by the uploader made for a good starting point.
-
-- The separation of data object types and constraints is to allow for more flexibility in specifying constraints.
-- Actors module should be subsumed into the storage module because it's highly storage specific.
-- Storage should be one module.
-- Content directory should be a separate module.
-
-We did discuss the payload-based model for a while, and came to two changes:
-
-1. Instead of the constraints as a separate map, create a versioned constraint payload field for data object type. We should not worry about UI having to discover anything related to data objects, and instead expect UI to hardcode data object types based on purpose. Therefore, a constraint payload field allows us to start with simple file types + size approach, and versioning will allow us to expand this into an appropriate DSL in the future.
-
-2. Starting from hard-coded data object types by purpose does not remove the need for the UI or the storage nodes to enforce constraints.

+ 0 - 43
runtime/README.md

@@ -1,43 +0,0 @@
-## Joystream Runtime
-
-![Joystream Runtime](./runtime-banner.svg)
-
-
-The runtime is the code that defines the consensus rules of the Joystream protocol.
-It is compiled to WASM and lives on chain.
-Joystream node execute the code's logic to validate transactions and blocks on the blockchain.
-
-When building joystream-node as described abot with `cargo build --release`, in addition to the joystream-node binary being built the WASM blob artifact is produced in:
-
-`target/release/wbuild/joystream-node-runtime/joystream_node_runtime.compact.wasm`
-
-
-### Deployment
-
-Deploying the compiled runtime on a live system can be done in one of two ways:
-
-1. Joystream runtime upgrade proposals which will be voted on by the council. When the Joystream platform is live, this will be the only way to upgrade the chain's runtime code.
-
-2. During development and testnet phases, we can send an extrinsic (transaction signed with the sudo key) invoking `system::setCode()`. This can be done either from the UI/extrinsics app, or directly with an admin script.
-
-### Versioning the runtime
-
-Versioning of the runtime is set in `runtime/src/lib.rs`
-For detailed information about how to set correct version numbers when developing a new runtime, [see this](https://github.com/Joystream/substrate-runtime-joystream/issues/1)
-
-
-## Coding style
-
-We use `cargo-fmt` to format the source code for consistency.
-
-It should be available on your machine if you ran the `setup.sh` script, otherwise install it with rustup:
-
-```bash
-rustup component add rustfmt
-```
-
-Applying code formatting on all source files recursing subfolders:
-
-```
-cargo-fmt
-```

+ 0 - 41
testnets/README.md

@@ -1,41 +0,0 @@
-<p align="center"><img src="img/testnets_new.svg"></p>
-
-Table of Contents
-=================
-
-<!-- TOC START min:1 max:3 link:true asterisk:false update:true -->
-- [Overview](#overview)
-- [Testnet Releases](#testnet-releases)
-  - [Live Testnet](#live-testnet)
-  - [Next Testnet](#next-testnet)
-  - [Past Testnets](#past-testnets)
-- [Templates](#templates)
-<!-- TOC END -->
-
-
-# Overview
-This directory contains data on [live](#live-testnet), [next](#next-testnet) and [past](#past-testnets) testnets.
-It also contains templates for planning releases.
-
-# Testnet Releases
-
-## Live Testnet
-
-[Rome](rome)
-
-## Next Testnet
-
-Constantinople
-
-
-## Past Testnets
-
-| Network         | Started           | Ended         | Release Plan    |
-| -------------   | -------------     | -----         | -----           |
-| Acropolis       | 24.06.19          |   13.03.20    | [Link](acropolis)        |
-| Athens          | 27.04.19          |   24.06.19    | [Link](athens)  |
-| Sparta          | 28.02.19          |   29.03.19    |       NA        |
-| Mesopotamia     | 21.12.18          |   28.02.19    |       NA        |
-
-
-# Templates

+ 0 - 538
testnets/acropolis/README.md

@@ -1,538 +0,0 @@
-
-<img src="img/acropolis-cover_new.svg"/>
-
-<div align="center">
-  <h3>
-    <a href="specification/README.md">
-      Specification
-    </a>
-  </h3>
-</div>
-
-# Table of contents
-<!-- TOC START min:1 max:3 link:true asterisk:false update:true -->
-- [Table of contents](#table-of-contents)
-- [Live Milestones](#live-milestones)
-- [Past Release Meetings](#past-release-meetings)
-- [Specification](#specification)
-- [GitHub Projects](#github-projects)
-- [OKR results](#okr-results)
-  - [Objective: `Launch Acropolis Network`](#objective-launch-acropolis-network)
-- [Release Plan](#release-plan)
-  - [Name](#name)
-  - [Manager](#manager)
-  - [Release Date](#release-date)
-  - [OKRs](#okrs)
-- [Release OKRs](#release-okrs)
-    - [Objective: `Launch Acropolis Network`](#objective-launch-acropolis-network-1)
-  - [Constraints](#constraints)
-  - [Risks](#risks)
-  - [Deployment](#deployment)
-  - [Products](#products)
-    - [Runtime](#runtime)
-    - [Colossus](#colossus)
-    - [Pioneer](#pioneer)
-  - [Milestones](#milestones)
-    - [Spec Release](#spec-release)
-    - [Sub-system Test](#sub-system-test)
-    - [Final Test](#final-test)
-    - [Runtime Proposal](#runtime-proposal)
-    - [Release](#release)
-  - [Go-To-Market](#go-to-market)
-    - [Participation Incentives](#participation-incentives)
-    - [Helpdesk](#helpdesk)
-    - [Messages](#messages)
-  - [Public Infrastructure](#public-infrastructure)
-    - [Hosted Joystream Pioneer](#hosted-joystream-pioneer)
-    - [Hosted Joystream Storage Node](#hosted-joystream-storage-node)
-    - [Faucet service backend](#faucet-service-backend)
-  - [Internal Infrastructure and Tools](#internal-infrastructure-and-tools)
-    - [Payout Tool](#payout-tool)
-    - [Staging Testnets](#staging-testnets)
-    - [Storage uptime and quality tool](#storage-uptime-and-quality-tool)
-  - [Internal Operations](#internal-operations)
-    - [Payouts](#payouts)
-    - [Support](#support)
-<!-- TOC END -->
-
-
-# Live Milestones
-
-Due to changing circumstances, a meeting [Evaluating the feasibility](../meetings/acropolis##release-plan-milestone-evaluation-meeting) of the planned [Milestones](#milestones), the following conclusion was made:
-
-| Date            |   Event                               |     Involved                            |
-| :--------------:|:-------------------------------------:|:---------------------------------------:|
-|    19.06.19     | [Spec Release](#spec-release)         | Alex, Bedeho, Mokhtar                   |
-|    17.06.19     | [Sub-system Test](#sub-system-test)   | All                                     |
-|    20.06.19     | [Final Test](#final-test)             | Martin, Mokhtar + 2x community members  |
-|    22.06.19     | [Runtime Proposal](#runtime-proposal) | Mokhtar, Martin                         |
-|    24.06.19     | [Release](#release)                   | All                                     |
-
-
-#### Actual dates:
-
-- `Spec Release` was partially completed on the 22.06.19 [link](https://github.com/Joystream/joystream/tree/master/testnets/acropolis/specification).
-- `Sub-system Test` performed on or before 17.06.19.
-- `Final Test` successfully completed on the 20.06.19
-- `Runtime Proposal` made on the 22.06.19 [link](https://testnet-rpc.joystream.org/acropolis/pioneer/#/proposals/2)
-- `Release` the network successfully upgraded on the 24.06.19
-
-A summary of the tests for `forum` and `storage` can be read [here](https://github.com/Joystream/joystream/issues/47) and [here](https://github.com/Joystream/joystream/issues/57).
-
-
-# Past Release Meetings
-
-| Name/category               | Date            | Itinerary and Minutes                                     |
-| :-------------------------: | :-------------: |:---------------------------------------------------------:|
-| Launch Meeting              | 26.04.19        | [link](../../meetings/acropolis/#launch-meeting)             |
-| User Stories                | 02.05.19        | [link](../../meetings/acropolis#user-stories-meeting)        |
-| Release Plan Finalization   | 09.05.19        | [link](../../meetings/acropolis#release-plan-finalization-meeting)   |
-| Release Plan Milestone Evaluation Meeting | 10.06.19         | [link](../../meetings/acropolis##release-plan-milestone-evaluation-meeting) | Re-evaluation of Milestones due to changing circumstances |
-| Lessons Learned             | 02.07.19        | [link](../../meetings/acropolis/#lessons-learned)             |
-
-#  Specification
-
-After [discussing](../../reports/archive/2.md) internally, the specs for Acropolis will be made using [this](https://github.com/Joystream/joystream/blob/master/reports/archive/2-attachments/members-module.md) as a reference (link to be replaced after merge).
-
-# GitHub Projects
-
-The current set of relevant GitHub projects are
-
-- [Acropolis Release](https://github.com/orgs/Joystream/projects/7)
-
-# OKR results
-
-## Objective: `Launch Acropolis Network`
-- **Active from:** 09.05.19
-- **KR Measurement Deadline**: 7-9 days after Acropolis launch (first weekday)
-- **Key Results**:
-##### 1. `Get 75 posts on forum (limits, not Jsg) (ewd)`
-##### 2. `Forum (runtime), storage (runtime and P2P) fully specd (n)`
-##### 3. `Have 4x replication for all 2 tranches on storage node (ewd)`
-##### 4. `95% uptime Storage Providers (ewd)`
-##### 5. `No PRs merged to master (excluding bugfixes and "pioneer") after "Sub-system Test" (conf)`
-
-<br />
-
-- **Final Score**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |  Total  |
-|:--------:|:-----:|:-----:|:-----:|:-----:|:-----:|:-------:|
-| 03.07.19 | 0.55  | 0.67  |  0.5  |  0.75 | 0.5   |**0.594**|
-
-<br />
-
-Full details of tracking of results can be found in the [archive](../okrs/OKR-archive/acropolis).
-
-# Release Plan
-
-**This plan was made in advance, and anything below this line will not be updated inspite of changing circumstances.**
-
-## Name
-
-`Acropolis`
-
-## Manager
-
-`Martin`
-
-## Release Date
-
-20 June 2019, 12:00 (GMT+2)
-
-## OKRs
-
-# Release OKRs
-### Objective: `Launch Acropolis Network`
-- **Active from:** 09.05.19
-- **KR Measurement Deadline**: 7-9 days after Acropolis launch (first weekday)
-- **Tracked**: Every Monday
-- **Tracking Manager**: Martin
-- **Key Results**:
-1. `Get 75 posts on forum (limits, not Jsg) (ewd)`
-2. `Forum (runtime), storage (runtime and P2P) fully specd (n)`
-3. `Have 4x replication for all 2 tranches on storage node (ewd)`
-4. `95% uptime Storage Providers (ewd)`
-5. `No PRs merged to master (excluding bugfixes and "pioneer") after "Sub-system Test" (conf)`
-
-
-Go [here](../../okrs/#release-okrs) for more details and tracking.
-
-## Constraints
-
-- Major changes required for the [Storage Node/Colossus](#colossus) and storage system as a whole.
-
-## Risks
-
-- [Specification](#specification-plans) of new sub-systems may be more time consuming and iterative than anticipated.
-- Risks are partially mitigated by extending the cycle for Acropolis. Somewhat ironically, this introduces some risk that the release might collide with peak holiday season.
-
-## Deployment
-
-On-chain upgrade of runtime. Scope and extent of migrations unknown.
-
-## Products
-
-The following public products will be part of this release.
-
-### Runtime
----
-- **Description:** Runtime for Validator node
-- **Manager:** **Mokhtar**
-- **Core Team:**
-  - **Mokhtar:** Developer
-  - **Alex:** Developer
-  - **Jens:** Developer
-  - **Bedeho:** Developer
-  - **Martin:** Testing
-- **Main repo:** [substrate-runtime-joystream](https://github.com/Joystream/substrate-runtime-joystream)
-- **Current version:** v5.3.0
-- **New version:** target v5.4.0 (unless there are bugfix runtime upgrades before release)
-- **Audit:** No
-- **Documentation:** Publish the rust docs for the runtime at testnet.joystream.org/runtime-docs/
-- **Legal Review/ToS update:** No
-- **Build/CI system:**
-  - **Mokhtar:**
-    * CI: Simple travis job for PRs, running cargo tests, and verifying build doesn't fail and rustfmt is used to format code
-    * Build: Will have a working Docker file for building proposed WASM runtime blob
-- **New/Altered Functionality:**
-    * New Forum module (Bedeho)
-    * Updated Actors module to support storage tranches (Jens/Mokhtar)
-    * Updated storage modules to support storage tranches (Jens/Mokhtar)
-    * Cleanup old migration code in members module (Mokhtar)
-- **Refactor/Reorganization:**
-  - Best effort should be made to make new runtime modules as separate git repos
-  - Existing modules can remain in same repo
-  - Docker
-- **Deployment/Distribution:**
-    - Will be voted in through an upgrade proposal in council, see Events section for how.
-
-### Colossus
----
-
-- **Description:** Combined storage and distribution node.
-- **Manager:** Jens
-- **Team:**
-  - **Jens:** Developer
-  - **Mokhtar:** Developer
-  - **Martin:** Testing
-- **Main repo:** [storage-node-joystream](https://github.com/Joystream/storage-node-joystream)
-- **Current version:** 0.1.0 (did not bump last release)
-- **New version:** 0.2.0
-- **Audit:** No
-- **Documentation:**
-  - [README](https://github.com/Joystream/storage-node-joystream/blob/master/README.md)
-  - [Released API specs](https://storage-node-1.joystream.org/swagger.json)
-- **Legal Review/ToS update:** No
-- **Build/CI system:**
-  - **Jens**
-    * CI: Simple travis job, running unit tests.
-    * Build docker image
-- **Target Platforms:** Linux
-- **New/Altered Functionality:**
-  - Support storage tranches. The main difference is to stake for joining a tranche rather than the storage provider role.
-    - Allow multiple keys, or allow one key to stake for multiple tranches.
-  - Drop hyperdrive backend. Replace with IPFS backend.
-    - Drop multiple repository concept, and repository IDs in URLs.
-    - Replace sync protocol stack with simpler synchronization, downloading or pinning content from staked tranches.
-  - Drop bittorrent-dht and use IPFS DHT and IPNS for liason/download endpoint announcement.
-- **New Key User Stories:**
-  - As a storage provider, in order to selectively provide storage, I want to stake for storage tranches.
-  - As a storage provider, in order to fulfil my role, I want my storage node to synchronize content.
-- **Deployment/Distribution:**
-  - Dockerfile for deployment
-  - Will replace old storage system with the runtime upgrade.
-
-### Pioneer
----
-
- - **Description:** The user interface for interacting with the platform.
- - **Manager:** Alex
- - **Team:**
-    - **Alex:** Developer
-    - **Mokhtar:** Developer
-    - **Martin:** Testing
- - **Main repo:** [apps](https://github.com/Joystream/apps)
- - **Current version:** N/A (`0.32.0-beta.6` shown in Pioneer)
- - **New version:** `3.0`
-   - `0.x` - goes to Polka Apps.
-   - `1.x` - Elections + Proposals modules.
-   - `2.x` - Media module (explore + upload).
- - **Audit:** No
- - **Documentation:** No
- - **Legal Review/ToS update:** No. License to be added to migrated Repo.
- - **Build/CI system:** No
- - **Target Platforms:** Cross-platform and cross-browser.
- - **New/Altered Functionality**:
-    - Integration with new storage system
-    - Integration of forum
- - **New User Stories:**
-    - See [here](../meetings/acropolis#)
- - **Deployment/Distribution:**
-    - Upgrade of [hosted](#hosted-joystream-pioneer) Pioneer must be timed with release for integration with new storage system and forum.
-    - Frequent non-breaking improvements/updates performed expected.
-
-
-## Milestones
-
-| Date            |   Event                               |     Involved                            |
-| :--------------:|:-------------------------------------:|:---------------------------------------:|
-|    21.05.19     | [Spec Release](#spec-release)         | Alex, Bedeho, Jens, Mokhtar             |
-|    12.06.19     | [Sub-system Test](#sub-system-test)   | All                                     |
-|    17.06.19     | [Final Test](#final-test)             | Martin, Mokhtar + 2x community members  |
-|    18.06.19     | [Runtime Proposal](#runtime-proposal) | Mokhtar, Martin                         |
-|    20.06.19     | [Release](#release)                   | All                                     |
-
-
-### Spec Release
-
-- **Description:** Release the specs for Acropolis
-- **Deadline:** 21. May
-- **Manager:** **Bedeho**
-- **Team:**
-  - **Mokhtar:**
-  - **Jens:**
-  - **Bedeho:**
-- **Time line:**
-  - First draft of specs must be ready for review on the 15th of May at the latest.
-  - Bedeho will review and approve, or delegate the task.
-  - Bedeho: Forum module & main spec document & review contributions
-
-### Sub-system Test
-
-- **Description:** Test all sub-systems/software separately on the [`staging-reckless`](#staging-testnets) testnet
-- **Deadline:** 12. June
-- **Manager:** **Martin**
-- **Forum Team:**
-  - **Alex:**
-  - **Bedeho:**
-- **Storage Team:**
-  - **Mokhtar:**
-  - **Alex:**
-  - **Jens:**
-- **Test specification:**
-  - The members of each **Team** must be able present full functionality of their sub-systems/software, in the following environment:
-      1. Perform runtime upgrade from current to test version
-          * It's a preference, but not a requirement, for the same runtime to be used for both tests.
-      2. with a working branch of Pioneer (compatible with Athens, _must_ not include rest of Acropolis scope)
-      3. any other supporting software (compatible with Athens, _must_ not include rest of Acropolis scope)
-      4. if applicable, present clear list of items outstanding with:
-          - dependencies / responsible person(s)
-          - realistic timeline
-          - what, if any, should be postponed/abandoned for late release or next release.
-          - note that both RM and developer are responsible for this list not coming as a surprise.
-
-**Note** After this test, only bugfix PRs can be merged to master branch of relevant repos.
-
-### Final Test
-
-- **Description:** Upgrade the [`staging-lts`](#staging-testnets) testnet runtime to "Acropolis", and perform a full feature test.
-- **Deadline:** 17. June
-- **Manager:** **Mokhtar**
-- **Team:**
-  - **Martin:** Lead tester
-  - **Community Member 1:** Tester
-  - **Community Member 2:** Tester
-- **Time line:**
-  - A full test of all features and cycles on the platform with Acropolis runtime. Participants must use different OS' and browsers, for joystream-node, storage-nodes and pioneer.
-
-### Runtime Proposal
-
-- **Description:** Create a council runtime upgrade proposal for a new runtime with a member key.
-provide a script/instructions for how to build the identical runtime proposed.
-- **Deadline:** 18. June 11:00GMT+2
-- **Manager:** **Mokhtar**
-- **Team:**
-  - **Martin:** Reach out to council members, promote voting, and prepare final blog/newsletter for Acropolis.
-- **Time line:** Time line: After the runtime upgrade proposal is submitted, the actual upgrade will happen after all council members have voted. *48h in practice*
-
-### Release
-- **Description:** If proposal does not reach quorum and the proposal has not received legitimate criticism, immediately force the new proposal with the `sudo key`.
-- **Deadline:** 20. June 11:00GMT+2
-- **Manager:** **Mokhtar**
-
----
-
-## Go-To-Market
-
-**Note**
-Reference to a date or a [milestone](#milestones) should be made for each of these items.
-
-### Participation Incentives
-
-- **Description:** For Acropolis, the intention is to continue with three paid roles:
-  * Validators
-  * Council Members
-  * Storage Providers
-  * Note that "Bug Reporters/Builders" will also be incentivized, although not a formal role ATM.
-- **Deadline:** 18. June
-- **Manager:** **Martin**
-- **Team:**
-  - **Martin:** Manager
-  - **Bedeho:** ElPassion Manager
-  - **Mokhtar:** Developer
-  - **Tomasz:** Designer
-- **Tasks:**
-  - **Bedeho**, **Tomasz:**
-    - Update Joystream.org with new testnet summary information
-  - **Martin:**
-    - Write & publish blog post(s) and newsletter
-    - Update/maintain [Helpdesk](#helpdesk)
-    - Maintain [payout scripts](#payout-tool) and perform [payouts](#payouts)
-  - **Community Member(s):**
-    - Tech support/online presence
-    - Monitor tlgrm, RC, and on-chain forums.
-
-### Helpdesk
-
-- **Description:** Updated guides must be ready for launch.
-- **Deadline:** 19. June
-- **Manager:** **Martin**
-- **Team:**
-  - **Martin**
-  - **Community Member 1:** Tester
-  - **Community Member 2:** Tester
-- **Distribution:** helpdesk [repo](https://github.com/Joystream/helpdesk)
-- **Assets:** Cover(s)
-
-### Messages
-
-**NOTE**
-All public comms will follow the testnet design template, ref. [this](https://github.com/Joystream/communications/issues/18).
-
-
-#### Announcing Acropolis Testnet
-
-- **Description:** An initial message explaining what will be in Acropolis, why they should care,
-showings its logo, and a scheduled date (we are not in full control), once features are locked in.
-Telling people what the next sequence of events are, including future messages, future points in
-time they must act.
-- **Deadline:** 13. June
-- **CTA:** What action can people do, and how
-- **Author:** **Martin**
-- **Distribution:** TTRR
-- **Assets:** Cover + some new pagebreakers
-
-#### Acropolis Incentive Structure
-
-- **Description:** Incentive structure and changes made for Acropolis + lessons learned
-- **Deadline:** 18. June
-- **CTA:** Roles to take, and why
-- **Author:** **Martin**
-- **Distribution:** TTRR
-- **Assets:** Cover + some new pagebreakers
-
-#### Acropolis Released
-
-- **Description:** TL;DR of previous posts with links + Full update on howto
-- **Deadline:** 20. June
-- **CTA:** Join
-- **Author:** **Martin**
-- **Distribution:** TTRR+newsletter
-- **Assets:** Cover + some new pagebreakers
-
-## Public Infrastructure
-
-### Hosted Joystream Pioneer
-
-- **Description:** Host a version of Joystream Pioneer on testnet.joystream.org
-- **Manager:** Mokhtar
-- **DevOps:** Mokhtar
-- **Repo:** [apps](https://github.com/Joystream/apps) joystream branch (static build with yarn build)
-- **Team:**
-  - **Mokhtar**
-- **Tasks:**
-  - Update Caddy file to redirect https://testnet.joystream.org/athens/pioneer/ to https://testnet.joystream.org/acropolis/pioneer/
-
-### Hosted Joystream Storage Node
-
-- **Description:** One or more storage node(s) without any special status
-- **Manager:** **Jens**
-- **DevOps:** **Jens** **Mokhtar**
-- **Repo:** [storage-node-joystream](https://github.com/Joystream/storage-node-joystream)
-- **Team:**
-  - **Jens**
-  - **Mokhtar**
-- **Tasks:**
-  - Host a node and signup to role in the tranches
-
-### Faucet service backend
-
-- **Description:** Free token dispenser
-- **Manager:** **Mokhtar**
-- **DevOps:** **Mokhtar**
-- **Repo (private):** [substrate-faucet](https://github.com/Joystream/substrate-faucet)
-- **Team:**
-  - **Mokhtar**
-  - **Martin**  
-- **Tasks:**
-  - Update README with instructions on how to deploy backend
-  - Keep it stocked with tokens
-  - Delete old data at least weekly
-  - Modify frontend
-
-## Internal Infrastructure and Tools
-
-### Payout Tool
-
-- **Description:** Tool to compute payouts to relevant parties on testnet
-- **Manager:** **Martin**
-- **Repo (private):** [testnet-payout-scripts](https://github.com/Joystream/testnet-payout-scripts)
-- **Team:**
-  - **Martin**
-- **Tasks:**
-  - Must be updated to cover new storage node.
-
-### Staging Testnets
-
-- **Description:** Run a staging testnet with latest stable development runtime so that both ourselves and interested users can test new features, software, nodes without running closed `--dev` chains.
-- **Manager:** **Martin**
-- **DevOps:** **Martin**
-- **Repo:** N/A
-- **Team:**
-  - Martin
-- **Tasks:**
-  - Keep at least two staging testnets running.
-  - One continuous that will mirror existing testnet - `staging-lts`
-  - One "on demand" for reckless testing - `staging-reckless`
-
-### Storage uptime and quality tool
-
-- **Description:** Tool to verify uptime and quality of service by registered `Storage Providers`
-- **Manager:** **Alex**
-- **Repo (private):** [storage-quality-of-service](https://github.com/Joystream/storage-quality-of-service)
-- **Team:**
-  - **Alex**
-  - **Jens**
-- **Tasks:**
-    - Build the tool
-    - Maintain
-    - Devops
-
-## Internal Operations
-
-### Payouts
-
-- **Description:** Conduct regular payouts
-- **Manager:** **Martin**
-- **Team:**
-  - **Martin**
-- **Schedule:**
-    - Mondays at 10:00 GMT+2
-
-### Support
-
-- **Description:** Provide support to users engaging with testnet functionality and campaigns
-- **Manager:** - **Martin**
-- **Team:**
-  - **Martin**
-  - **Community Member 1:**
-  - **Community Member 2:**
-- **Duration:**
-  - Very high availability in the week following releases
-  - No more than 24 hour lag in response to queries after that
-- **Channels:**
-  - Telegram
-  - GitHub
-  - RocketChat
-  - On-chain forums

+ 0 - 33
testnets/acropolis/branding/README.md

@@ -1,33 +0,0 @@
-# Table of contents
-
-- [Name](#name)
-- [Naming Rational](#naming-rational)
-- [Goals](#goals)
-    - [Technical](#technical)
-    - [Community](#community)
-- [Logomark](#logomark)
-
-# Name
-Acropolis
-
-# Naming Rational
-We are naming our testnets after cities, locations and empires that's been important in the evolution of democratic principles and the rule of law. After `Athens`, we realized the next release would be smaller from a users POV. We therefore landed on `Acropolis`, as ["The history of the Acropolis of Athens is long, with moments when democracy, philosophy and art flourished..."](http://www.acropolisofathens.gr/aoa/).
-
-# Goals
-
-## Technical
-The technical goals of Acropolis is to improve our technical credibility, and add two new features:
-
-- `Specification` of all modules to improve onboarding for contributors, and set a good precedence for the platform.
-- Add `tranches` to the storage-node, to allow users with limited capacity to participate in a future with a large content directory.
-- Introduce a `feature freeze` (bugfixes and Pioneer app excluded) after module test to avoid rushing releases without all features working.
-- Introduce an on-chain `forum` for platform communication.
-
-## Community
-The main goals for the community is to introduce:
-
-- A `forum` for communication
-- Reduce the disc storage requirement for `Storage Providers` by introducing `tranches`.
-
-# Logomark
-TODO

File diff suppressed because it is too large
+ 0 - 0
testnets/acropolis/img/acropolis-cover.svg


File diff suppressed because it is too large
+ 0 - 10
testnets/acropolis/img/acropolis-cover_new.svg


+ 0 - 277
testnets/acropolis/specification/README.md

@@ -1,277 +0,0 @@
-# Acropolis Testnet Specification
-
-## Table Of Contents
-
-- [Document](#document)
-- [Caveat](#caveat)
-- [Glossary](#glossary)
-- [Overview](#overview)
-- [Substrate Runtime](#substrate-runtime)
-  - [Runtime Version](#runtime-version)
-  - [Native Version](#native-version)
-  - [Substrate Version](#substrate-version)
-  - [Modules](#modules)
-    - [Forum](#forum)
-    - [Proposals](#proposals)
-    - [CouncilElection](#councilelection)
-    - [Council](#council)
-    - [Memo](#memo)
-    - [Membership](#membership)
-    - [Migration](#migration)
-    - [Actors](#actors)
-    - [DataObjectTypeRegistry](#dataobjecttyperegistry)
-    - [DataDirectory](#datadirectory)
-    - [DataObjectStorageRegistry](#dataobjectstorageregistry)
-    - [DownloadSessions](#downloadsessions)
-  - [SRML Modules](#srml-modules)
-  - [Runtime API](#runtime-apis)
-<!-- - [Communication Protocols](#communication-protocols) -->
-
-## Document
-
-The purpose of this document is to serve as a starting point for the implementation phase of the given testnet. It is only a starting point in the sense that the implementation effort will always depart from the up front specification to some, possibly substantial, extent, but no effort is made to synchronise the specification at any time. Instead, the any such synchronisation would be done in the specification of a future network. The value of such a specification is primarily to establish a relatively precise shared understanding among all contributors to a testnet release.
-
-## Caveat
-
-Parts of the specification are not well harmonised with the rest, in particular the storage system, due to time constraints. Read graciously, this will be resolved later. Also, a substantial number of modules are not yet specced, as already implemented modules from prior testnets are being reused. Full specs will eventually be available as future networks are released where changes are made to these modules. Lastly, a number off communication protocols are not captured in this spec due to time constraints, they will be introduced for later networks.
-
-## Glossary
-
-- **Substrate:** A blockchain SDK, used for this testnet, that abstracts away concerns about consensus and p2p communication.
-
-- **Runtime:** Application specific consensus code written for the Substrate SDK. Includes state and transaction rules specific to the application, but excludes consensus algorithm and p2p networking.
-
-- **Substrate Module:** A substrate runtime is partitioned into functionality integrated units, called modules, which have their own local state, transaction types and events.
-
-- **SRML:** Substrate standard runtime library (SRML), is a set of highly reusable Substrate modules.
-
-- **AURA:** Component of consensus responsible for block authoring.
-
-- **GRANDPA:** Component of consensus responsible for block finality.
-
-<!--
-## Format
-
-[Read here to understand the format of this specification.](specification-format.md)
-
--->
-
-## Overview
-
-The Acropolis testnet features the following roles
-
-- **Validator**: Block producer and validator.
-- **Council Member:** Council participant, currently only involved in voting on runtime upgrades.
-- **Storage Provider**: Does storage and distribution of content, peer provider synchronisation, as well as upload liaison.
-- **Forum Moderator**: A single actor role for managing the new on-chain forum.
-
-This release also sees the introduction of a new storage infrastructure based on IPFS for distribution and synchronisation, and IPNS for host resolution. A generalised host resolution module is also introduced as part of making the latter functionality possible, and it will be reused for host resolution across the platform.
-
-A full featured hierarchical topic based, and single moderator, membership forum is also introduced.
-
-## Substrate Runtime
-
-### Runtime Version
-
-- **spec_name:** `joystream-node`
-- **impl_name:** `joystream-node`
-- **authoring_version:** `5`
-- **spec_version:** `4`
-- **impl_version:** `0`
-- **apis:** `RUNTIME_API_VERSIONS`
-
-### Native Version
-
-- **runtime_version:** [Runtime Version](#runtime-version)
-<!-- - **can_author_with:** Default::default() -->
-
-### Substrate Version
-
-`1.0.0`
-
-### Modules
-
-These are the Joystream specific modules, for each module, there is either a link to a module specification document, or no link, for already implemented modules (see [caveat](#caveat)). Standard configurations, for example based on values from the System module, are omitted.
-
-An integrated explanation of the modules constituting the storage system is found [here](runtime/storage-modules.md).
-
-#### Forum
-
-- **Description**: An on-chain discussion forum for members.
-- **Specification**: [**READ HERE**](runtime/forum-module.md)
-- **Status:** New.
-- **Configuration:**
-  - _ForumUserRegistry_: Proxy call to `get_profile` on [Membership](#membership) module.
-
-#### Proposals
-
-- **Description**: Proposal system, currently only supports runtime upgrades.
-- **Specification**: [**NA**](#)
-- **Status:** Unchanged from Athens.
-- **Configuration:**
-  - _Members_ : [Membership](#membership) module.
-
-#### CouncilElection
-
-- **Description**: Council election manager for council system.
-- **Specification**: [**NA**](#)
-- **Status:** Unchanged from Athens.
-- **Configuration:**
-  - _CouncilElected_: [Council](#council) module
-  - _Members_: [Membership](#membership) module.
-
-#### Council
-
-- **Description**: Council system.
-- **Specification**: [**NA**](#)
-- **Status:** Unchanged from Athens.
-- **Configuration:**
-  - _CouncilTermEnded_: [CouncilElection](#councilelection) module.
-
-#### Memo
-
-- **Description**: Account based public message field.
-- **Specification**: [**NA**](#)
-- **Status:** Unchanged from Athens.
-- **Configuration:** Standard only.
-
-#### Membership
-
-- **Description**: Membership registry.
-- **Specification**: [**NA**](#)
-- **Status:** Unchanged from Athens.
-- **Configuration:**
-  - _Roles_: [Actors](#actors) module
-  - _MemberId_: `u64`
-  - _PaidTermId_: `u64`
-  - _SubscriptionId_: `u64`
-
-#### Discovery
-
-- **Description**: Host resolution system for public keys.
-- **Specification**: [**READ-HERE**](runtime/discovery-module.md)
-- **Status:** New.
-- **Configuration:**
-  - _Roles_: Shim trait which enables account lookup and by proxying to [Actors](#actors) module. Keeping this brief, since it will change.
-
-#### Migration
-
-- **Description**: Runs migration & initialisation routines after on-chain upgrade from past testnet (Athens).
-- **Specification**: [**READ HERE**](runtime/migration-module.md)
-- **Status:** Updated to include initialisation of new forum after upgrade.
-- **Configuration:** Standard only.
-
-#### Actors
-
-- **Description**: Staking manager for storage system.
-- **Specification**: [**READ HERE**](runtime/actors-module.md)
-- **Status:** Unchanged from Athens.
-- **Configuration:**
-  - _Members_: [Membership](#membership) module.
-  - _OnActorRemoved_: Proxy call to `remove_account_info` on [Discovery](#discovery).
-
-#### DataObjectTypeRegistry
-
-- **Description**:
-- **Specification**: [**READ HERE**](runtime/data-object-type-registry-module.md)
-- **Status:** Unchanged from Athens.
-- **Configuration:**
-  - _DataObjectTypeId_: `u64`
-
-#### DataDirectory
-
-- **Description**:
-- **Specification**: [**READ HERE**](runtime/data-directory-module.md)
-- **Status:** Unchanged from Athens.
-- **Configuration:**
-  - _ContentId_: `primitives::H256`
-  - _SchemaId_: `u64`
-  - _Members_: [Membership](#membership) module.
-  - _Roles_: same as `Roles` configuration of [Discovery](#discovery) module.
-  - _IsActiveDataObjectType_: [DataObjectTypeRegistry](#dataobjecttyperegistry)
-
-#### DataObjectStorageRegistry
-
-- **Description**:
-- **Specification**: [**READ HERE**](runtime/data-object-storage-registry-module.md)
-- **Status:** Unchanged from Athens.
-- **Configuration:**
-  - _DataObjectStorageRelationshipId_: `u64`
-  - _Members_: [Membership](#membership) module.
-  - _Roles_: same as `Roles` configuration of [Discovery](#discovery) module.
-  - _ContentIdExists_: [DataDirectory](#datadirectory)
-
-#### DownloadSessions
-
-- **Description**: Manages download sessions in storage system.
-- **Specification**: [**NA**](#)
-- **Status:** Not used.
-- **Configuration:**
-  - _DownloadSessionId_: `u64`
-  - _ContentHasStorage_: [DataObjectStorageRegistry](#dataobjectstorageregistry)
-
-### SRML Modules
-
-These modules are part of the runtime, but are already implemented part of the SRML.
-
-- **System**: The system module provides low-level access to core types and cross-cutting utilities.
-- **Timestamp**: The Timestamp module provides functionality to get and set the on-chain time.
-- **Consensus**: The consensus module manages the authority set for the native code.
-- **Aura**: The Aura module extends Aura consensus by managing offline reporting.
-- **Indices**: An index is a short form of an address. This module handles allocation of indices for a newly created accounts.
-- **Balances**: The balances module provides functionality for handling accounts and balances.
-- **Session**: Is told the validators and allows them to manage their session keys for the consensus module.
-- **Staking**: The staking module is the means by which a set of network maintainers (known as _authorities_ in some contexts and _validators_ in others) are chosen based upon those who voluntarily place funds under deposit.
-- **Sudo**: The sudo module allows for a single account (called the "sudo key") to execute dispatchable functions that require a `Root` call or designate a new account to replace them as the sudo key.
-- **Grandpa**: This manages the GRANDPA authority set ready for the native code.
-
-### Runtime APIs
-
-The runtime implements the following set of APIs.
-
-#### [Core](https://crates.parity.io/substrate_client/runtime_api/trait.Core.html)
-
-- **version**: Return [Runtime Version](#runtime-version)
-- **execute_block**: Executive module `execute_block` routine.
-- **initialize_block**: Executive module `initialize_block` routine.
-- **authorities**: Executive module `apply_extrinsic` routine.
-
-#### [Metadata](https://crates.parity.io/substrate_client/runtime_api/trait.Metadata.html)
-
-- **metadata**: Runtime `metadata` routine.
-
-#### [BlockBuilder](https://crates.parity.io/substrate_client/block_builder/api/trait.BlockBuilder.html)
-
-- **apply_extrinsic**: Executive module `apply_extrinsic` routine.
-- **finalize_block**: Executive module `finalize_block` routine.
-- **inherent_extrinsics**: `create_extrinsics` routine on inherent data.
-- **check_inherents**: Inherent `check_extrinsics` routine on block.
-- **random_seed**: System module `random_seed` routine.
-
-#### [TaggedTransactionQueue](https://crates.parity.io/substrate_client/runtime_api/trait.TaggedTransactionQueue.html)
-
-- **validate_transaction**: Executive module `validate_transaction` routine.
-
-#### [OffchainWorkerApi](https://crates.parity.io/substrate_offchain/trait.OffchainWorkerApi.html)
-
-- **offchain_worker**: Executive module `offchain_worker` routine.
-
-#### [GrandpaApi](https://crates.parity.io/substrate_finality_grandpa_primitives/trait.GrandpaApi.html)
-
-- **grandpa_pending_change**, **grandpa_forced_change**, **grandpa_authorities**: Default.
-
-#### [AuraApi](https://crates.parity.io/substrate_consensus_aura/trait.AuraApi.html)
-
-- **slot_duration**: Aura module `slot_duration` routine.
-
-#### [AuthoritiesApi](#)
-
-- **authorities**: Consensus module `authorities` routine.
-
-<!--
-
-## Communication Protocols
-
-**TBD.**
-
--->

+ 0 - 294
testnets/acropolis/specification/runtime/actors-module.md

@@ -1,294 +0,0 @@
-# Storage Staking Module
-
-## Table Of Contents
-
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Design](#design)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [create_tranche](#create_tranche)
-  - [update_tranche_parameters](#update_tranche_parameters)
-  - [request_entry](#request_entry)
-  - [stake](#stake)
-  - [unstake](#unstake)
-  - [eject_provider](#eject_provider)
-
-## Name
-
-`Actors`
-
-## Dependencies
-
-- `srml::system`
-- `LockableCurrency`
-- `Membership`
-
-## Design
-
-### Motivation
-The storage staking module is the gatekeeper for entry and orderly exit of platform members into and out of the `Storage Provider` role.
-Entry is achieved through staking funds. Storage providers are rewarded periodically with new funds as incentive to maintain operational status. Storage providers can choose to stop offering their services by un-staking. System sudo account can forcefully remove storage providers from active participation, and optionally punish provider by slashing staked funds.
-
-### Tranches
-The module is used to configure the storage tranches available in the storage system, and for updating operational parameters associated with each tranche, such as minimum stake and storage capacity.
-Tranches must always aim to maintain a minimum number of providers `MinSlots`.
-The module will prevent un-staking when it would result in `MinSlots` no longer being filled. Once tranches are created they cannot be destroyed, however their operational parameters can be adjusted. If at anytime the maximum number of slots `MaxSlots` for a tranche is update to be less than the number of active providers `N` in the tranche, no new providers can be allowed to join until the number drops below `MaxSlots` again.
-
-### Role Account
-Members will utilize a separate account, referred to as the role account, which will be associated with their membership, to hold the staked funds. This corresponding key, is referred to as the role key.
-The role key is also used to sign a extrinsics sent by the storage provider software when interacting with the chain.
-A role account may only only be associated with a single member at any given time.
-A role account can only be used to stake into a single tranche at any given time.
-
-### Locking Funds
-Staking is achieved by locking funds in the role account. The amount locked will be equal to the `StakeAmount` parameter for the tranche the storage provider is participating in. The storage provider may transfer funds out of the role account only that are in excess of the locked amount.
-For convenience, the locked funds can still be used to pay for transactions fees. This means the balance may fall below the locked amount.
-
-### Entering Role
-Entering a tranche is a multi-step process:
-  1. A member must generate a new keypair and deposit at least the StakeAmount funds into the corresponding account, plus the request entry fee for the tranche they plus some extra to cover transaction fees.
-  1. Request entry into a specific tranche using the role account, associating it with their membership account.
-  1. Using their member account, approve the request.
-
-There must be an available slot in a tranche to enter. All providers stake the same amount of funds, this means it's not possible for a new storage provider to displace an existing provider.
-
-### Rewards
-At regular intervals defined by tranche parameters, a fixed award is distributed to distributors. The reward amount is a configurable parameter.
-The reward will go to the member account, unless the balance in the role account is below the `StakeAmount`, in which case it
-will go to the role account. This forces storage providers to gradually add funds to their role account in order to maintain their commitment of staking a certain amount.
-
-### Leaving Role
-When a storage provider decides to leave a tranche, they can initiate the process by un-staking. If the platform allows it, the provider goes immediately out of service.
-An un-bonding period follows after which the funds in the role account become transferable.
-
-
-## Concepts
-  - `StorageProviderInfo`: Represents when the provider joined a tranche, the member identifier they are associated with, and their role account identifier.
-  - `EntryRequest`: Represents intent to join a specific tranche, with a certain role account and member identity. Requests have a lifetime `RequestLifeTime`. If not approved before expiry they are cleared from state.
-
-## State
-
-- `TrancheCount`: Number of tranches created.
-- `RoleAccountIds`: List of currently staked role accounts.
-- `StorageProviderInfoByRoleAccount`: Map of RoleAccount to StorageProviderInfo
-- `RoleAccountsByTrancheId`: Map of tranche identifier to list of role accounts
-- `RoleAccountIdsByMemberId`: Map of member identifier to list of role accounts
-- `EntryRequests`: List of pending requests to enter storage provider role
-- `RequestLifeTime`: Duration of time before a role entry request expires
-- `TrancheIdsByDataObjectTypeId`: Mapping of tranches available for a `DataObjectType`
-
-Tranche Operational Parameters
-
-- `StakeAmount`: Map of tranche identifier to Optional Stake Amount
-- `MinSlots`: Map of tranche identifier to Optional Minimum Number of slots
-- `MaxSlots`: Map of tranche identifier to Optional Maximum Number of slots
-- `FixedReward`: Map of tranche identifier to Optional Reward Amount
-- `FixedRewardPeriod`: Map of tranche identifier to Optional BlockNumber
-- `UnbondingPeriod`: Map of tranche identifier to Optional BlockNumber
-- `EntryRequestFee`: Map of tranche identifier to Optional Fee Amount
-- `DataObjectTypeId`: The `DataObjectType` for which this tranche is created.
-
-Tranche identifier starts at 0. So if TrancheCount = 4, the identifiers of the created tranches are 0, 1, 2, and 3.
-
-**Note:** Currently, tranches are not limited in size. When good tooling for
-monitoring and creating tranches is available, the intend is to limit tranches
-in size, and add new ones before storage space runs out.
-
-## Events
-Each event has payload as sublist
-
-  - `TrancheCreated`: A new tranche was created
-    - Tranche identifier
-  - `TrancheUpdated`: Some tranche parameters were changed
-    - Tranche identifier
-  - `EntryRequested`: A new role key
-    - Role account identifier
-    - Member identifier
-    - Tranche Identifier
-  - `ProviderJoined`: A new storage provider joined a tranche
-    - Tranche identifier
-    - Role account identifier
-  - `ProviderLeft`: A storage provider un-staked
-    - Tranche identifier
-    - Role account identifier
-  - `ProviderEjected`: A storage provider was forcefully removed
-    - Tranche Identifier
-    - Role account
-
-
-## Dispatchable Methods
-
-### create_tranche
-
-#### Payload
-- `origin`: call origin
-- `parameters`: List of operational parameters
-  - `stake_amount`
-  - `min_providers`
-  - `max_providers`
-  - `fixed_reward`
-  - `fixed_reward_period`
-  - `unbonding_period`
-  - `entry_request_fee`
-  - `data_object_type_id`
-
-
-#### Description
-Creates a new tranche with provided parameters.
-
-#### Errors
-  - Bad signature
-  - origin is not Root
-  - StakeAmount == 0
-  - MaxSlots == 0
-  - MinSlots == 0 unless we want [temporary tranches](#temporary tranches)
-  - MinSlots > MaxSlots
-  - No matching `DataObjectType`.
-
-#### Side effects
-  - `TrancheCount` increased by one
-  - Tranche operational parameter values set in each corresponding parameter map
-#### Event(s)
-  - TrancheCreated
-    - TrancheCount - 1
-
-### update_tranche_parameters
-#### Payload
-  - `origin`
-  - Tranche Identifier
-  - List of tranche operational parameters
-    - `stake_amount`
-    - `min_providers`
-    - `max_providers`
-    - `fixed_reward`
-    - `fixed_reward_period`
-    - `unbonding_period`
-    - `entry_request_fee`
-
-#### Description
-Change tranche operational parameters
-
-#### Errors
-  - Bad signature
-  - origin is not Root
-  - Tranche Identifier < TrancheCount
-  - StakeAmount == 0
-  - MaxProviders == 0
-  - MinSlots == 0 unless we want [temporary tranches](#temporary tranches)
-  - MinSlots > MaxSlots
-
-#### Side effects
-  - Operational parameter values updated
-
-#### Event(s)
-  - `TrancheUpdated`
-
-### request_entry
-#### Payload
- - `origin`: role account
- - Tranche identifier
- - membership identifier
-
-#### Description
-Member creating request to join a tranche
-
-#### Errors
-  - Bad signature
-  - origin is a member account
-  - origin already in a tranche
-  - origin already made a request
-  - tranche identifier >= TrancheCount (invalid tranche)
-  - not enough balance in role account to pay entry request fee
-  - membership identifier invalid
-  - no available slots in tranche
-  - origin still un-bonding
-
-#### Side effects
-  - Entry request fee burned from role account balance
-  - If no errors
-    - `EntryRequests` List has new request
-
-#### Event(s)
-  - `EntryRequested`
-
-### stake
-#### Payload
-  - origin: member account
-  - tranche identifier
-  - role account
-
-#### Description
-Member approves a pending request to stake and join a tranche using the role account.
-
-#### Errors
-  - Bad signature
-  - No matching request found
-  - no available slot in tranche (availability may have changed since request was made)
-  - not enough balance in role account to stake
-
-#### Side effects
-  - Stake amount locked in role account
-  - Role account added to `RoleAccountIds`
-  - `StorageProviderInfoByRoleAccount` map
-  - Role account added to list for tranche in `RoleAccountsByTrancheId`
-  - Role account added to member mapping in `RoleAccountIdsByMemberId`
-  - Request removed from `EntryRequests`
-
-#### Events
-  - `ProviderJoined`
-    - role account
-
-### unstake
-#### Payload
-  - origin
-  - role account
-
-#### Description
-Member chooses to un-stake and stop providing service.
-
-#### Errors
-  - Bad signature
-  - origin is not a member associated with role account
-  - role account is not staked provider account
-  - too few slots filled if un-staking allowed
-
-#### Side effects
-  - Balance lock updated on role account, so funds become liquid after UnbondingPeriod
-  - Role account removed from `RoleAccountsByTrancheId`, `RoleAccounts`, `RoleAccountIdsByMemberId`, `StorageProviderInfoByRoleAccount`
-
-### eject_provider
-
-#### Payload
-  - origin: call Origin
-  - role_account
-  - punish: bool
-
-#### Description
-Forcefully remove a storage provider from service. And optionally slash staked balance.
-
-#### Errors
-  - Bad signature
-  - origin is not Root
-  - role_account is not an active storage provider
-
-### Side effects
-  - Balance lock updated on role account, so funds become liquid after UnbondingPeriod
-  - Remove role account from `RoleAccountsByTrancheId`, `RoleAccounts`, `RoleAccountIdsByMemberId`, `StorageProviderInfoByRoleAccount`
-  - If `punish` is true, slash stake amount from role account
-
-## On Initialize
-Clear expired entry requests.
-
-## On Finalize
-Make reward payouts.
-
-#### Temporary Tranches
-A tranche that has MinSlots = 0, where content is not guaranteed to persist. Suitable for short lived data?
-
-#### Idea for improvements:
-- The actor account private key is used on a live system, and is considered a 'hot wallet'. We should look at supporting cold wallet similar to the stash/controller model in validator staking module.
-- Limit destination of transfer of funds from actor account to only the member account. This can limit loss of funds in the event of a key compromise.
-- Have a List of banned member id. Members can be optionally banned when ejected.

+ 0 - 212
testnets/acropolis/specification/runtime/content-directory.md

@@ -1,212 +0,0 @@
-# Content Directory
-
-## Table Of Contents
-
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Design](#design)
-- [Future TODOs](#future-todos)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [add_metadata](#add_metadata)
-  - [update_metadata](#update_metadata)
-
-## Name
-
-`ContentDirectory`
-
-## Dependencies
-
-- The [Storage System](storage-system.md).
-
-## Design
-
-### Motivation
-
-Once data is stored on the network, it must be made discoverable. Part of this
-is to assign meaning to any stored data. For these purposes, the Content
-Directory is introduced.
-
-The Content Directory is a list of `ContentMetadata` entries on the runtime.
-Each `ContentMetadata` entry can:
-
-- Contain a JSON payload conforming to a schema identified by a `SchemaId`.
-- Contain a list of `ContentId` as children of the entry.
-
-As `ContentMetadata` is itself identified by a `ContentId`, it is inextricably
-linked to a `DataObject` with the same identifier, and intended to describe
-this object.
-
-Therefore the runtime enforces that for any `ContentMetadata`:
-
-1. A `DataObject` with the same `ContentId` exists.
-1. An active `StorageRelationship` for the `ContentId` exists.
-
-Additionally, `ContentMetadata` may exist in a published or unpublished state.
-Of course, nothing is entirely private on the runtime, but only published
-`ContentMetadata` is intended for inclusion in content listing, searches or
-other user interfaces for the *Content Directory*. Unpublished entries can
-e.g. be used as drafts during the creation process.
-
-#### Hierarchy
-
-`ContentMetadata` may contain child content IDs, which are used to indicate
-a hierarchy of content of sorts. Each child must itself have a meaning;
-therefore, for each child content ID, an appropriate `ContentMetadata` entry
-must also exist, with the above constraints enforced.
-
-This means that when creating a hierarchy of `ContentMetadata`, it must be
-done in a leaf-to-root order.
-
-The purpose of creating such a hierarchy depends on the `SchemaId` used
-in the root entry. Possible uses are:
-
-* For structuring podcast/video episodes in a series.
-* For providing multiple  language tracks, subtitle tracks, commentary,
-  etc. for video content.
-* etc.
-
-**Hierarchy and Publishing**
-
-Note in particular that in hierarchically structured content, the published
-state may be interpreted differently depending on whether the metadata
-describes a root, branch or leaf element, and on the metadata schema.
-
-Largely, it is the published state of *root* entries that determines whether
-content is discoverable at all. For branch or leaf elements, the flag may
-be ignored - but such a decision is outside the scope of this document, and
-belongs in a description of schemata to be used.
-
-For example, in episodic content like a podcast, the root level element may
-describe the podcast series, and contain:
-
-1. Image `DataObjects`, for describing the podcast. These may be considered
-   to be published if the root element itself is published.
-1. Episode `DataObjects`, each of which may stay in a draft state until
-   it is finalized. Here, the published flag should be interpreted.
-
-Using schema identifiers in `ContentMetadata` permits easy decision making
-in rendering or indexing apps as to how the hierarchy should be interpreted.
-
-#### Content Creation
-
-The content creation protocol is as follows:
-
-1. Create one (or several related) `DataObjects` as described in the
-  [Data Directory](./storage-module/data-directory.md) section of the
-  [Storage Module](./storage-module.md).
-1. Create appropriate `ContentMetadata` entries in a leaf-to-root order
-  in the `ContentDirectory`.
-1. Publish the root `ContentMetadata` (see the [Hierarchy](#hierarchy)
-  section) to make content discoverable.
-
-## State
-
-- `MetadataByContentId`: a map of `ContentId` to matching `ContentMetadata`
-  Objects.
-
-- `PublishedRootContent`: a vector of published `ContentIds` that describe
-  root content in a `ContentMetadata` hierarchy - in other words, the
-  discoverable `ContentIds`.
-
-  **Note:** This list should be moved off-chain once an indexing node provides
-  content discovery services; it exists solely for not having to scan the entire
-  `MetadataByContentId` map in the pioneer app.
-
-## Events
-
-- `MetadataAdded`: `ContentMetadata` has been added to `MetadataByContentId`. The
-  event payload is the `ContentId` of the matching metadata.
-
-- `MetadataUpdated`: `ContentMetadata` has been updated. The
-  event payload is the `ContentId` of the matching metadata.
-
-- `RootContentUpdated`: a `ContentMetadata` that represents root content in a
-  metadata hierarchy has been updated. The payload is the `ContentId`, and a
-  flag indicating whether or not this content is published.
-
-  **Note:** This event exists to trigger updates in either pioneer's rendering
-  of the content directory, or an indexing node's internal database. It's
-  a special case of `MetadataUpdated` that can be listened to explicitly.
-
-## Dispatchable Methods
-
-### `add_metadata`
-
-#### Payload
-
-- The publisher origin.
-- `content_id`: the `ContentId` for which the `ContentMetadata` applies.
-- `data`: a `ContentMetadata` struct.
-- `is_root`: a boolean flag indicating whether the metadata represents the
-  root of a metadata hierarchy.
-
-#### Description
-
-Create a new `ContentMetadata` object for the given `ContentId`. All but
-optional fields must be supplied. It is possible to set the published field
-here immediately, but for hierarchical metadata that is discouraged.
-
-#### Errors
-
-- The origin is not an active member.
-- There already exists `ContentMetadata` for this `ContentId`.
-- For the given `ContentId`, the [Storage Module](./storage-module.md) does
-  not have any currently active `StorageRelationship` entries, i.e. the
-  content does not exist on the network.
-  **Note:** it would be possible to limit this error only to situations
-  in which published flag is to be set.
-
-#### Side effect(s)
-
-- The `ContentMetadata` struct is added under the given `ContentId` to the
-  `MetadataByContentId` map.
-- If the `ContentMetadata`'s published flag is set, and `is_root` is set,
-  the `ContentId` is also added to `PublishedRootContent`.
-
-#### Event(s)
-
-- `MetadataAdded`
-- If the `ContentMetadata`'s published flag is set, and `is_root` is set,
-  also `RootContentUpdated` is emitted.
-
-### `update_metadata`
-
-#### Payload
-
-- The publisher origin.
-- `content_id`: the `ContentId` for which the `ContentMetadata` applies.
-- `data`: a `ContentMetadataUpdate` struct.
-- `is_root`: a boolean flag indicating whether the metadata represents the
-  root of a metadata hierarchy.
-
-#### Description
-
-Modify an existing `ContentMetadata` for the given `ContentId`. With the
-`ContentMetadataUpdate` struct, only fields to be updated must be supplied.
-
-#### Errors
-
-- The origin is not an active member.
-- The origin is not the original creator of the `ContentMetadata`.
-- There exists no `ContentMetadata` for this `ContentId`.
-- For the given `ContentId`, the [Storage Module](./storage-module.md) does
-  not have any currently active `StorageRelationship` entries, i.e. the
-  content does not exist on the network.
-  **Note:** it would be possible to limit this error only to situations
-  in which published flag is to be set afterwards (aka explicitly set now,
-  already set).
-
-#### Side effect(s)
-
-- The `ContentMetadata` struct is modified under the given `ContentId` to the
-  `MetadataByContentId` map.
-- If the `ContentMetadataUpdate`'s published flag is set, and `is_root` is set,
-  the `ContentId` may also added to `PublishedRootContent`.
-
-#### Event(s)
-
-- `MetadataUpdated`
-- If the `ContentMetadataUpdate`'s published flag is set, and `is_root` is set,
-  also `RootContentUpdated` is emitted.

+ 0 - 211
testnets/acropolis/specification/runtime/data-directory-module.md

@@ -1,211 +0,0 @@
-# Data Directory Module
-
-## Table Of Contents
-
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Design](#design)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [add_data_object](#add_data_object)
-  - [accept_data_object](#accept_data_object)
-  - [reject_data_object](#reject_data_object)
-
-## Name
-
-`DataDirectory`
-
-## Dependencies
-
-- [Data Object Type Registry](./data-object-type-registry.md): A storage
-  sub-module which holds constraint information on data.
-
-## Design
-
-### Motivation
-
-The Data Directory is used to manage what data exists on the network. As such,
-it contains a complete list of all accessible content; each file uploaded to
-any storage node requires an entry in the data directory, in the form of a
-`DataObject`. These `DataObjects` are identified via a unique `DataObjectId`.
-
-It also links to the [Data Object Type Registry](./data-object-type-registry.md),
-permitting all participating apps (consuming apps or storage node) to negotiate
-whether content may be uploaded.
-
-#### Uploading
-
-The simplified workflow for uploading content is as follows:
-
-1. Choose a `ContentId`. The `ContentId` is a secure random Byte string,
-   and will usually be represented in a [Base58](https://en.wikipedia.org/wiki/Base58)
-   encoded form.
-1. Select an appropriate `DataObjectType` from the *Data Object Type Registry*.
-1. Verify that the file to be uploaded passes the constraints on the
-   `DataObjectType`.
-1. Create a `DataObject` linking to the selected `DataObjectType`. The
-  `DataObject` is not initially active.
-1. The runtime will select a *Liaison*, a storage node that must handle
-   the upload.
-1. Contact the *Liaison* for upload. The *Liaison* will accept or reject
-   the upload depending on whether the uploaded data fulfils the constraints
-   placed on the `DataObjectType`. The *Liaison* will update the `DataObject`
-   according to its decision.
-1. If the upload was accepted, the *Liaison* will also create an entry in
-   the [Data Object Storage Registry](./data-object-storage-registry.md),
-   indicating that the data is stored.
-1. Other storage nodes may replicate the data object, and create their own
-   entries in the *Data Object Storage Registry*.
-
-#### Downloading
-
-Any storage provider listed in the *Data Object Storage Registry* as holding
-a given file can be contacted for downloads.
-
-#### Uploading/Downloading Protocol
-
-While the above describes the abstract protocol for up- and downloads, the
-specific wire protocol are HTTP requests conforming to the most-current
-[OpenAPI](https://swagger.io/specification/) specification of the storage node.
-
-It is generated from code documentation, so not easily linked here. The API
-version is currently not stable, so a `v0` namespace is specified. [The most
-current API specs](https://storage-node-1.joystream.org/swagger.json) live
-on Joystream's first storage node.
-
-#### Storage Backend Metadata
-
-Note that `DataObject` contains a `storage_metadata` and corresponding
-`storage_metadata_version` object. The version determines how to interpret the
-metadata field. They are maintained by the *Liaison* (and potentially other
-storage providers) for managing storage backend specific metadata.
-
-In version `1` of this metadata, it is expected that:
-
-1. It is serialized JSON with an Object at the top level.
-1. It contains an `ipfs_content_id` field specifying a content ID to map
-   to when using [IPFS](https://ipfs.io/) as the backend.
-
-#### Liaison Selection
-
-The runtime is responsible for selecting a *Liaison* for a `DataObject`. The
-*Liaison* is selected from the currently staked pool of storage providers from
-any of the *tranches* configured in the [Staking](./staking.md) part of this
-module, for matching `DataObjectType`.
-
-The implication of this is that between creating a `DataObject` and uploading
-data to the *Liaison*, not too much time should pass. If there is a reason for
-the *Liaison* to un-stake before re-distributing the content, then the
-`DataObject` cannot be uploaded, and a new `DataObject` needs to be created.
-
-
-## State
-
-- `DataObjects` - a map of `ContentId` to `DataObject`.
-
-## Events
-
-- `DataObjectAdded` - a new `DataObject` has been created, with `Pending`
-   liaison judgement. See above for a high-level description of how
-   a *Liaison* will judge whether a `DataObject` is acceptable.
-
-   The event payload consists of the `ContentId` and the uploader's
-   `AccountId`.
-
-- `DataObjectAccepted` - the chosen *Liaison* accepted the data object.
-
-   The event payload consists of the `ContentId` and the *Liaison*
-   `AccountId`.
-
-- `DataObjectRejected` - the chosen *Liaison* rejected the data object.
-
-   The event payload consists of the `ContentId` and the *Liaison*
-   `AccountId`.
-
-## Dispatchable Methods
-
-### `add_data_object`
-
-#### Payload
-
-- The uploader origin.
-- `content_id`: The `ContentId` chosen by the uploader.
-- `type_id`: The `DataObjectTypeId` chosen by the uploader.
-- `size`: The file size, in Bytes.
-
-#### Description
-
-As one of the first steps of the upload process, the uploader will call
-this function to register their intent to upload data. This also registers
-the `ContentId`, making it unavailable for further upload attempts.
-
-As part of this function, the runtime will chose an appropriate *Liaison*,
-and record it in the `DataObject`.
-
-#### Errors
-
-- The uploader is not an active member.
-- The chosen `ContentId` is already in use.
-- The chosen `DataObjectType` is inactive.
-
-#### Side effect(s)
-
-- A `DataObject` with the given size and type is created, and registered
-  under the `ContentId` in `DataObjects`.
-
-#### Event(s)
-
-- `DataObjectAdded`
-
-### `accept_data_object`
-
-#### Payload
-
-- The *Liaison* origin.
-- `content_id`: The `ContentId` of the `DataObject` to accept.
-
-#### Description
-
-The *Liaison* calls this function when its checks indicate that the `DataObject`
-should be accepted.
-
-#### Errors
-
-- The provided `ContentId` was not found.
-- The signing caller is not the designated *Liaison* for the `DataObject`.
-
-#### Side effect(s)
-
-- The `DataObject` identified by `ContentId` has their `liaison_judgement` field
-  set to Accepted.
-
-#### Event(s)
-
-- `DataObjectAccepted`
-
-### `reject_data_object`
-
-#### Payload
-
-- The *Liaison* origin.
-- `content_id`: The `ContentId` of the `DataObject` to reject.
-
-#### Description
-
-The *Liaison* calls this function when its checks indicate that the `DataObject`
-should be rejected.
-
-#### Errors
-
-- The provided `ContentId` was not found.
-- The signing caller is not the designated *Liaison* for the `DataObject`.
-
-#### Side effect(s)
-
-- The `DataObject` identified by `ContentId` has their `liaison_judgement` field
-  set to Rejected.
-
-#### Event(s)
-
-- `DataObjectRejected`

+ 0 - 133
testnets/acropolis/specification/runtime/data-object-storage-registry-module.md

@@ -1,133 +0,0 @@
-# Data Object Storage Registry Module
-
-## Table Of Contents
-
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Design](#design)
-- [Future TODOs](#future-todos)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-
-## Name
-
-`DataObjectStorageRegistry`
-
-## Dependencies
-
-- [Data Directory](./data-directory.md): A storage sub-module which lists
-  all `DataObjects` on the network.
-
-## Design
-
-### Motivation
-
-The Data Object Storage Registry is where storage providers commit to storing
-any given `DataObject`.
-
-When any storage provider has accepted and stored content - whether it is the
-*Liaison* or a mirror - it will create a `StorageRelationship` entry
-in the registry to indicate that it can be contacted to serve the content.
-
-For an *available* `DataObject`, there is thus at least one, possibly many
-`StorageRelationship` entries in the runtime:
-
-- `DataObject` describes content that *should* exist on the network, and
-  links to a *Liaison* which must have it available.
-- `StorageRelationships` indicate that content exists in a
-  particular location.
-
-`StorageRelationship` contains an `available` flag, which shows
-whether the relationship is currently fulfillable by the storage provider.
-This permits indicating an intent to fulfil on the runtime by providing
-an inactive relationship, then synchronizing content, and finally updating
-the relationship when content can be served.
-
-## State
-
-- `StorageRelationships`: a map of `ContentId` to a vector of
-  `StorageRelationship`. An empty vector means there is no
-  relationship, i.e. the content is not stored.
-
-  However, there still need to be `available` relationships in the vector. Merely
-  finding *a* relationship is not sufficient to determine whether the
-  content is stored somewhere on the network.
-
-## Events
-
-- `StorageRelationshipAdded`: a storage provider has committed to serve
-  a particular content.
-
-  The event payload consists of the `ContentId` of the content added, and
-  the `AccountId` of the storage provider adding it. Note that merely
-  adding a storage relationship does not mean that the content is available
-  to be served.
-
-- `StorageRelationshipAvailabilityChanged`: the given storage relationship's
-  availability changed.
-
-  The event payload consists of the `ContentId`, the storage provider's
-  `AccountId`, and the storage relationship's `available` flag value.
-
-## Dispatchable Methods
-
-### `add_storage_relationship`
-
-#### Payload
-
-- The storage provider origin.
-- `content_id`: The `ContentId` to add a storage relationship for.
-
-#### Description
-
-When a storage provider intends to store content, it calls this function
-to register this intent on the chain. The `StorageRelationship` created
-by this function is set to not be `available` initially.
-
-#### Errors
-
-- The origin is not a storage provider.
-- The `ContentId` does not exist in the [Data Directory](./data-directory.md).
-- There is already a `StorageRelationship` for this `ContentId` and storage
-  provider `AccountId`.
-
-#### Side effect(s)
-
-A new, not-`available` `StorageRelationship` for the `ContentId` and storage
-provider `AccountId` is added to the `StorageRelationships` state.
-
-#### Event(s)
-
-- `StorageRelationshipAdded`
-
-### `set_storage_relationship_availability`
-
-#### Payload
-
-- The storage provider origin.
-- `content_id`: The `ContentId` to modify the `StorageRelationship` for.
-- `available`: a boolean flag indicating the new availability.
-
-#### Description
-
-When a storage provider has finished synchronizing content identified
-by the `ContentId`, it can register itself as having the content available for
-download. The function only modifies state if new value of the `available`
-flag differs from the stored value.
-
-#### Errors
-
-- The origin is not a storage provider.
-- The `ContentId` does not exist in the [Data Directory](./data-directory.md).
-- There is no `StorageRelationship` for this `ContentId` and storage
-  provider `AccountId`.
-
-#### Side effect(s)
-
-The `StorageRelationship` identified by the storage provider and `ContentId`
-has its `available` flag set to the passed value.
-
-#### Event(s)
-
-- `StorageRelationshipAvailabilityChanged`

+ 0 - 206
testnets/acropolis/specification/runtime/data-object-type-registry-module.md

@@ -1,206 +0,0 @@
-# Data Object Type Registry Module
-
-## Table Of Contents
-
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Design](#design)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [register_data_object_type](#register_data_object_type)
-  - [update_data_object_type](#update_data_object_type)
-  - [activate_data_object_type](#activate_data_object_type)
-  - [deactivate_data_object_type](#deactivate_data_object_type)
-
-## Name
-
-`DataObjectTypeRegistry`
-
-## Dependencies
-
-None.
-
-## Design
-
-### Motivation
-
-All stored `DataObjects` are associated with a type. This type does not describe
-a file or media type, but rather how `DataObjects` of this type are to be
-handled by the storage network. This information is encapsulated in the
-`DataObjectType` structure, identified by a `DataObjectTypeId`.
-
-Of course, storage nodes should still impose some constraints on how what
-uploads to accept. These constraints are described by the `constraints` field
-of the `DataObjectType`. There is a corresponding `constraints_version` field,
-which indicates the version of the constraints specification, i.e. how to
-interpret the `constraints` field.
-
-## Concepts
-
-See [the module documentation](../storage-module.md#concepts) for an overview.
-
-Each `DataObjectType` contains a `constraints` field to be queried by
-uploading apps, and to be enforced by storage nodes. The current version of
-the `constraints_version` field is 1, and the corresponding `constraints`
-field is expected to be valid JSON with the following structure:
-
-1. The top-level entry of the JSON is an Object, not an Array.
-1. Each property key corresponds to to a [IANA Media Type](https://www.iana.org/assignments/media-types/media-types.xhtml).
-   Wildcard keys such as `image/*` are allowed. The wildcard `*/*` matches any
-   file, and therefore becomes the default entry (see below).
-1. Each property value is itself a JSON Object, specifying further constraints
-   for the matching media type:
-   1. A `maximum_file_size` specifies the maximum size of permitted files, in
-      Bytes.
-
-### Content Creation
-
-For apps attempting to upload data, the choice of `DataObjectType` is a
-hardcoded property. `DataObjectType` represents a *purpose*, i.e. a media cover
-image or some such. The uploading app knows exactly the purpose of each file
-to upload, and chooses the appropriate `DataObjectType` accordingly.
-
-1. Read and parse the `constraints` filed of the `DataObjectType`.
-1. If the file to be uploaded matches a full media type, e.g. `image/jpeg`,
-   apply constraints associated with it.
-1. If the above was not true, and the file to be uploaded matches a partial
-   media type, e.g. `image/*`, apply constraints associated with it.
-1. If the above was not true, and the file to be uploaded matches the wildcard
-   media type `*/*`, apply constraints associated with it.
-1. If none of the above held, the file is not permitted, and upload should not
-   commence.
-
-Applying constraints means verifying that the file to be uploaded passes the
-constraints - if it would not pass, the content is rejected immediately, and none
-of the following steps are executed. This effectively implements OR-chaining
-of conditions from most specific to least specific matches.
-
-Once the app has verified that data may be uploaded, it follows the steps
-outlined in the [Data Directory](./data-directory.md#uploading) section of this
-specification.
-
-### Content Liaison Approval
-
-For storage nodes acting as liaison for a data object, the same process applies.
-An upload is rejected if a constraint is not passed, or no constraints for the
-media type could be found.
-
-## State
-
-- `FirstDataObjectTypeId`/`NextDataObjectTypeId` - handling incrementing numeric
-  `DataObjectTypeIds`.
-
-- `DataObjectTypes` - map of `DataObjectTypeId` to `DataObjectType`.
-
-## Events
-
-Each event has the affected `DataObjectTypeId` as its payload.
-
-- `DataObjectTypeRegistered` - a new `DataObjectType` was added to the registry.
-
-- `DataObjectTypeUpdated` - a `DataObjectType` was modified in the registry.
-
-## Dispatchable Methods
-
-### `register_data_object_type`
-
-#### Payload
-
-- implied root origin
-- `data_object_type`: the `DataObjectType` to write.
-
-#### Description
-
-Add a new `DataObjectType`.
-
-#### Errors
-
-- Origin isn't root.
-
-#### Side effect(s)
-
-- `NextDataObjectTypeId` incremented.
-- `DataObjectTypes` contains the new `DataObjectType` under the previous
-  value of `NextDataObjectTypeId`.
-
-#### Event(s)
-
-- `DataObjectTypeRegistered`
-
-### `update_data_object_type`
-
-#### Payload
-
-- implied root origin
-- `id`: the `DataObjectTypeId` to update.
-- `data_object_type`: the `DataObjectType` to write.
-
-#### Description
-
-Update a `DataObjectType`.
-
-#### Errors
-
-- Origin isn't root.
-- No `DataObjectType` with the given ID is currently registered.
-
-#### Side effect(s)
-
-- `DataObjectTypes` contains the updated `DataObjectType` under the given
-  ID.
-
-#### Event(s)
-
-- `DataObjectTypeUpdated`
-
-### `activate_data_object_type`
-
-#### Payload
-
-- implied root origin
-- `id`: the `DataObjectTypeId` to update.
-
-#### Description
-
-Activate a `DataObjectType`. Only active `DataObjectTypes` can be used for
-uploading new `DataObjects`.
-
-#### Errors
-
-- Origin isn't root.
-- No `DataObjectType` with the given ID is currently registered.
-
-#### Side effect(s)
-
-- The `DataObjectType` for the given ID is activated.
-
-#### Event(s)
-
-- `DataObjectTypeUpdated`
-
-### `deactivate_data_object_type`
-
-#### Payload
-
-- implied root origin
-- `id`: the `DataObjectTypeId` to update.
-
-#### Description
-
-Deactivate a `DataObjectType`. Only active `DataObjectTypes` can be used for
-uploading new `DataObjects`.
-
-#### Errors
-
-- Origin isn't root.
-- No `DataObjectType` with the given ID is currently registered.
-
-#### Side effect(s)
-
-- The `DataObjectType` for the given ID is deactivated.
-
-#### Event(s)
-
-- `DataObjectTypeUpdated`

+ 0 - 189
testnets/acropolis/specification/runtime/discovery-module.md

@@ -1,189 +0,0 @@
-# Discovery Module
-
-## Table of Contents
-
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Name](#name)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [set_account_info_lifetime](#set_account_info_lifetime)
-  - [set_boostrap_endpoints](#set_bootstrap_endpoints)
-  - [set_ipns_peer_id](#set_ipns_peer_id)
-  - [unset_ipns_peer_id](#unset_ipns_peer_id)
-- [Other](#other)
-
-## Design
-
-### Motivation
-
-Accessing most services requires resolving a host corresponding the public key of some service provider. This module describes the on-chain component of making this possible.
-
-### Basic Functionality
-
-The Actors module provides a way for member accounts to stake for becoming an
-actor in the Joystream network, generating a new actor key along the way. This
-actor key then is used to fulfil the role on behalf of the member.
-
-Due to this structure, discovering a service really means discovering which
-service-specific endpoint information is associated with an actor key.
-
-The *discovery workflow*, then, is to retrieve some structured data by providing
-an actor key, and being able to verify the data has been created by the actor
-with the help of a cryptographic signature.
-
-As such, the *discovery workflow* is and should be largely independent on
-how discovery is performed. The *discovery workflow* is almost entirely off-chain,
-but bootstraps from on-chain information.
-
-The *publishing workflow* does require actors to understand how discovery is
-performed. This current version uses [IPNS](https://docs.ipfs.io/guides/concepts/ipns/)
-as a building block for discovery. The *publishing workflow* includes modifying
-on-chain data, albeit relatively rarely.
-
-<!-- This document is concerned only with *on-chain* operations. For the full,
-high-level documentation see [TODO](#TODO). -->
-
-## Name
-
-`Discovery`
-
-## Dependencies
-
-None.
-
-## Concepts
-
-- `BootstrapEndpoints`: Identifies a URL prefix for querying the discovery system.
-
-- `IPNSPeerId`: Identifies a peer on the IPFS network, of which IPNS is part.
-
-## State
-
-- `bootstrapEndpoints`: A vector of bootstrap endpoints maintained by sudo.
-
-- `PeerIdByAccount`: A map of Account IDs to `IPNSPeerId`. The map value also
-  contains lifetime parameters in order to gracefully remove outdated entries.
-
-- `AccountInfoLifetime`: A time-to-live for entries in the `PeerIdByAccount` table.
-  Configured from the genesis block.
-
-## Events
-
-- `AccountInfoUpdated`: A mapping from Account ID to `IPNSPeerId` was created or
-  updated. Receiving this event allows client implementations to discard all data
-  currently cached for the associated Account ID.
-
-## Dispatchable Methods
-
-### `set_account_info_lifetime`
-
-#### Payload
-
-- implied root origin
-- `lifetime`: a new lifetime value.
-
-#### Description
-
-Allow root to set the lifetime for entries in the `PeerIdByAccount` mapping.
-Note that setting this value does not modify
-the lifetime of already existing entries, and is only applied to newly
-created or updated entries.
-
-#### Errors
-
-- Not root origin
-- Zero or negative lifetime.
-
-#### Side effect(s)
-
-`AccountInfoLifetime` is updated.
-
-#### Event(s)
-
-None.
-
-### `set_bootstrap_endpoints`
-
-#### Payload
-
-- implied root origin
-- `bootstrapEndpoints`: a vector of URL prefixes
-
-#### Description
-
-Allow root to set the current bootstrap endpoints. Note that the number of endpoints
-is never expected to grow large, as new nodes are discovered from this set of
-bootstrap endpoints - therefore always setting the entire vector is sufficient.
-
-#### Errors
-
-- Not root origin
-- Empty bootstrap endpoint vector
-- Empty vector entries
-
-#### Side effect(s)
-
-`bootstrapEndpoints` is updated.
-
-#### Event(s)
-
-None.
-
-### `set_ipns_peer_id`
-
-#### Payload
-
-- `origin`: Actor key
-- `peerId`: The IPNS peer ID.
-
-#### Description
-
-Allows actors to set their associated IPNS peer ID for discovery.
-
-#### Errors
-
-- Not actor origin
-- Empty peer ID
-
-#### Side effect(s)
-
-`peerIdByAccount` is updated to contain the actor key as the key, and the peer
-ID as the value.
-
-#### Event(s)
-
-- `AccountInfoUpdated`
-
-### `unset_ipns_peer_id`
-
-#### Payload
-
-- `origin`: Actor key
-
-#### Description
-
-Allows well-behaving actors to clear their IPNS peer ID, e.g. when shutting down.
-
-#### Errors
-
-- Not actor origin
-- No error is raised if the actor is not registered; the function simply does
-  nothing.
-
-#### Side effect(s)
-
-`peerIdByAccount` is updated to remove any value associated with the actor key.
-
-#### Event(s)
-
-- `AccountInfoUpdated`
-
-## Other
-
-<!--  bad format, underspecified , change later to use on_initlize -->
-
-Every block, outdated entries are removed and an `AccountInfoUpdated` event is
-raised for each removed entry.

+ 0 - 373
testnets/acropolis/specification/runtime/forum-module.md

@@ -1,373 +0,0 @@
-# Forum Module
-
-## Table Of Contents
-
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Name](#name)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [create_category](#create_category)
-  - [update_category](#update_category)
-  - [create_thread](#create_thread)
-  - [moderate_thread](#moderate_thread)
-  - [add_post](#add_post)
-  - [edit_post_text](#edit_post_text)
-  - [moderate_post](#moderate_post)
-  - [set_forum_sudo](#set_forum_sudo)
-- [Non-dispatchable Methods](#non-dispatchable-methods)
-
-## Design
-
-### Motivation
-
-This module holds the basic content and structure of a hierarchical topic based forum with trivial sudo moderation. It allows a blockchain to have _direct_ assertible custody of the forum governance and function. Systems which depend critical on reliable and fair asynchronous public discourse will benefit from this functionality.
-
-### Structure
-
-The structure of the forum is a collection of category trees. A category tree has of two types of nodes, a category or a thread. A category node represents a topic category, with a name and associated intended scope of discussion topics. A thread node represents an actual thread of one or more posts.
-
-### Posts and threads
-
-A thread is a sequence of posts, in a given category, which has some initial post from the original author, and title. A post exists in the context of a thread, and has some position in thread post sequence, as well as a body text. Both have a corresponding author and creation date. The text in a post can be edited by any time by the original author, however the history of all texts are available in the state.
-
-### Users
-
-Forum users can create threads in categories, and post to existing threads. This module does not maintain its own set of forum users, but rather depends on some external module for this. The rationale for this is to allow reuse of the module with a diversity of user management systems, without requiring that runtime developer must keep user set synchronised, or waste state space.
-
-### Forum sudo
-
-There will be a single account, called the _forum sudo_ account. This account is set by the Sudo of the runtime, and can
-
-- **Create a category**: Can either be a new root category, or if parent category is referenced, it would be a subcategory.
-
-- **Archive|Delete (Unarchive|Undelete) a category**: Results in category being marked as archived or deleted, while it and all corresponding threads, posts and subcategories remain in the state. It is however no longer possible to delete or mutate anything in the category in any way, such as adding posts, creating threads or subcategories, etc. Well-behaved UIs will not render deleted categories. In what follows a category is said to be _directly_ archived or deleted, if its applying directly to that category, and _indirectly_ if it applies to some ancestor category. The only distinction between archiving and deletion in the runtime is that a directly deleted category cannot be unarchived.
-
-- **Moderate a post in a thread**: Results in post being marked as moderated, with a corresponding rationale for the moderation added, but it remains in the system state. It is not longer possible to edit the post text, and well-behaved UIs will not render such posts.
-
-- **Moderate a thread**: Results in thread being marked as moderated, with a corresponding rationale for the moderation added, but it remains in the system state. It is not longer possible to moderate posts, edit post texts or add posts to the thread. Well-behaved UIs will not render such threads.
-
-### Limits
-
-There is a maximum depth to a category tree. This is because doing any mutation will require traversing the category tree to the root to check for whether there has been any deletion or archiving along the path to the root, and there needs to be a bound on this, herein called `MAX_CATEGORY_DEPTH`.
-
-## Name
-
-`Forum`
-
-## Dependencies
-
-- `ForumUserRegistry`: An external module which holds actual user state, allowing it to be queried based on a corresponding account, and recovering some representation of a user.
-
-## Concepts
-
-- `ForumUser`: Represents an actual forum user, which is provided by `ForumUserRegistry` dependency.
-
-- `ForumSudoId`: Identifies a forum sudo authority.
-
-- `ModerationAction`: Represents a moderation outcome applied to a post or a thread. Includes a moderation date, a text rationale and the `ForumSudoId` of moderator.
-
-- `Post`: Represents a thread post, and includes initial text, identifier for the corresponding `Thread`, a position, an optional `ModerationAction`, a vector of identifiers for `PostTextEdit` instances ordered chronologically by edit time, creation date and identifier of `ForumUser` creator. Is identified with an integer which is unique across all instances in all categories.
-
-- `PostTextEdit`: Represents a revision of the text of a `Post`, includes new text and revision date.
-
-- `Thread`: Represents a thread, and includes a title, identifier for the corresponding `Category`, a position, an optional `ModerationAction`, number of unmoderated posts, number of moderated posts, creation date and identifier of `ForumUser` creator. Is identified with an integer which is unique across all instances in all categories.
-
-- `Category`: Represents a forum category, and includes a title, short topic description text, creation date, deletion status, archival status, number of subcategories, number of unmoderated threads, number of moderated threads, optional `Category` identifier for parent category and `ForumSudoId` of creator. Is identified with an integer which is unique across all instances in all categories.
-
-## State
-
-- `categoryById`: Map `Category` identifier to corresponding instance.
-
-- `nextCategoryId`: Identifier value to be used for the next `Category` created.
-
-- `threadById`: Map `Thread` identifier to corresponding instance.
-
-- `nextThreadId`: Identifier value to be used for next `Thread` in `threadById`
-
-- `postById`: Map `Post` identifier to corresponding instance.
-
-- `nextPostId`: Identifier value to be used for for next `Post` created.
-
-- `forumSudo`: Optional `ForumSudoId` of forum sudo.
-
-## Events
-
-Each event has payload as sublist
-
-- `CategoryCreated`: A category was introduced
-  - category identifier
-
-- `CategoryUpdated`: A category had its direct archival and/or deletion status updated to a new value.
-  - category identifier
-  - whether deletion status was changed, if so to what
-  - whether archival status was changed, if so to what
-
-- `ThreadCreated`: A thread was created with.
-  - thread identifier
-
-- `ThreadModerated`: A thread was moderated.
-  - thread identifier
-
-- `PostAdded`: A post was introduced.
-  - post identifier
-
-- `PostModerated`: A post was moderated.
-  - post identifier
-
-- `PostTextUpdated`: A post had the post text edited.
-  - post identifier
-  - edit number of new text
-
-- `ForumSudoSet`: A new forum sudo was set by root.
-  - optional account for old forum sudo
-  - optional account of new forum sudo
-
-## Dispatchable Methods
-
-### `create_category`
-
-#### Payload
-
-- `origin`: call origin
-- `parent`: not set, or category identifier of parent
-- `title`: text title
-- `description`: description text
-
-#### Description
-
-Add a new category.
-
-#### Errors
-
-- Bad signature
-- `forumSudo` does not match signature
-- `parent` is set, but does not exist
-- `parent` is set, but is (directly or indirectly) archived or deleted category
-- category depth exceeded, see `MAX_CATEGORY_DEPTH`.
-- `title` invalid
-- `description` invalid
-
-#### Side effect(s)
-
-- `categoryById` extended with new `Category` under old value of `nextCategoryId` as identifier
-- `nextCategoryId` incremented
-- if `parent` is not root, then subcategory count
-
-#### Event(s)
-
-- `CategoryCreated`
-
-### `update_category`
-
-#### Payload
-
-- `origin`: call origin
-- `categoryId`: id of category to update
-- `archive`: whether to archive
-- `deleted`: whether it is deleted
-
-#### Description
-
-Update a category.
-
-#### Errors
-
-- Bad signature
-- `forumSudo` does not match signature
-- `categoryId` does not match any category
-- category with `categoryId` is directly deleted, cannot be unarchived
-- category with `categoryId` is indirectly archived or deleted, cannot be updated in any way
-
-_Note: We don't mind directly archived/deleted categories from being re-archived/deleted respectively, we just ignore_
-
-#### Side effect(s)
-
-- category in `categoryById` under key `categoryId` has archival and deletion status equal to `archive` and `delete`, respectively, and if parent is set, then it will have number of subcategories decremented if `delete` is true, but category was perviously not.
-
-#### Event(s)
-
-- `CategoryUpdated` with new status values, as they apply
-
-### `create_thread`
-
-#### Payload
-
-- `origin`: call origin
-- `categoryId`: identifier of category where thread should be created
-- `title`: thread title text
-- `text`: text of initial post
-
-#### Description
-
-Create new thread in category.
-
-#### Errors
-
-- Bad signature
-- Signer is not forum user
-- `categoryId` not a valid category
-- `categoryId` is (directly or indirectly) archived
-- `categoryId` is (directly or indirectly) deleted
-- `title` not valid
-- `text` not valid
-
-#### Side effect(s)
-
-- `threadById` extended with new `Thread` instance under old value of `nextThreadId` as identifier
-- increment unmoderated thread count of category with identifier `categoryId`
-- `nextThreadId` incremented
-
-#### Event(s)
-
-- `ThreadCreated`
-
-### `moderate_thread`
-
-#### Payload
-
-- `origin`: call origin
-- `threadId`: identifier of `Thread` to delete
-- `rationale`:  text rationale
-
-#### Description
-
-Moderate thread.
-
-#### Errors
-
-- Bad signature
-- `forumSudo` does not match signature
-- `threadId` does not match any thread
-- `rationale` invalid
-- thread already moderated
-- thread in (directly or indirectly) archived category
-- thread in (directly or indirectly) deleted category
-
-#### Side effect(s)
-
-- corresponding `Thread` instance in `threadById` has `ModerationAction` set
-- update moderated and unmoderated thread count of corresponding category
-
-#### Event(s)
-
-- `ThreadModerated`
-
-### `add_post`
-
-#### Payload
-
-- `origin`: call origin
-- `threadId`: thread in which to add post
-- `text`: text of post
-
-#### Description
-
-Adding post to thread
-
-#### Errors
-
-- Bad signature
-- Signer is not forum user
-- thread with identifier value `threadId` does not exist
-- thread with identifier value `threadId` is moderated
-- category of thread is (directly or indirectly) archived
-- category is (directly or indirectly) deleted
-
-#### Side effect(s)
-
-- `postById` extended with new `Post` instance with under old value of `nextPostId` as identifier
-- `nextPostId` updated
-- unmoderated posts updated in corresponding thread
-
-#### Event(s)
-
-- `PostAdded`
-
-### `edit_post_text`
-
-#### Payload
-
-- `origin`: call origin
-- `postId`: post to be edited
-- `new_text`: new text
-
-#### Description
-
-Edit post text
-
-#### Errors
-
-- Bad signature
-- `postId` does not correspond to a post
-- Signer does not match creator of post with identifier `postId`
-- post with identifier `postId` is moderated
-- category is (directly or indirectly) archived
-- category is (directly or indirectly) deleted
-
-#### Side effect(s)
-
-- Post with identifier `postId` has its edit vector with new `PostTextEdit` instance at front
-
-#### Event(s)
-
-- `PostTextUpdated`
-
-### `moderate_post`
-
-#### Payload
-
-- `origin`: call origin
-- `postId`: post to be edited
-- `rationale`:  text rationale
-
-#### Description
-
-Moderate post
-
-#### Errors
-
-- Bad signature
-- `forumSudo` does not match signature
-- `postId` does not match any post
-- `rationale` invalid
-- post already moderated
-- thread already moderated
-- thread in (directly or indirectly) archived category
-- thread in (directly or indirectly) deleted category
-
-#### Side effect(s)
-
-- corresponding `Post` instance in `postById` has `ModerationAction` set
-- update moderated and unmoderated post count of corresponding thread
-
-#### Event(s)
-
-- `PostModerated`
-
-### `set_forum_sudo`
-
-Note: I am not sure how to do this one, I am not familiar with Substrate **Sudo** functionality.
-
-#### Payload
-
-- `newForumSudo`: optional account of new proposed forum sudo
-
-#### Description
-
-Set forum sudo.
-
-#### Errors
-
-- Bad signature
-- Not root origin
-
-#### Side effect(s)
-
-- `forumSudo` equals `newForumSudo`
-
-#### Event(s)
-
-- `ForumSudoSet`

+ 0 - 209
testnets/acropolis/specification/runtime/members-module.md

@@ -1,209 +0,0 @@
-# Members Module: is not part of Acropolis spec, only kept for future purposes.
-
-## Table Of Contents
-
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Name](#name)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [buy_membership](#`buy_membership`)
-  - [change_member_about_text](#`change_member_about_text`)
-  - [change_member_avatar](#`change_member_avatar`)
-  - [change_member_handle](#`change_member_handle`)
-  - [update_profile](#`update_profile`)
-  - [add_screened_member](#`add_screened_member`)
-  - [set_screening_authority](#`set_screening_authority`)
-- [Non-dispatchable Methods](#non-dispatchable-methods)
-  - [is_active_member](#`is_active_member`)
-  - [lookup_member_id](#`lookup_member_id`)
-  - [lookup_account_by_member_id](#`lookup_account_by_member_id`)
-
-## Design
-
-### Motivation
-
-The membership module is supposed to represent the current set of members on the platform, and manage corresponding rich profiles, as well as the entry of new members.
-
-### Membership
-
-Each membership corresponds to an account, but not all accounts will have a membership. An account may only be associated with a single membership. A membership has a corresponding rich profile, including practical user facing information, such as a unique immutable handle, an avatar URI and a short descriptive text.
-
-A membership can also be active or inactive.
-
-### Terms
-
-A membership is established in the context of membership terms, which describe the price of admission and human readable conditions being agreed to. At any given time there may be a range of different terms available, and the set may change over time.
-
-### Adding members
-
-A member can be introduced in two ways. Either way depends on the module either being open or closed for accepting new members.
-
-The first way is for a member to simply pay for getting entry, with a reference to a given set of terms. In this case, the membership will have a reference to the terms under which it was established.
-
-The second is for a screening authority, which is a designated account, to simply add the new member. In this case, the membership will have a reference to the screening authority.
-
-## Name
-
-`Membership`
-
-## Dependencies
-
-- `Currency`: An external currency module which supports altering balances and total issuance.
-
-## Concepts
-
-- `Profile`: Describes core properties and status of a membership, like a unique handle and avatar URI. Is identified with unique integer identifier, called _member id_.
-
-- `PaidMembershipTerms`: Terms for becoming a member, like price and terms. Is identified with a unique integer identifier called a _paid terms id_.
-
-- `UserInfo`: Information required to establish a new profile.
-
-## State
-
-- `NextMemberId`: Unique identifier for next member, should equal total number of members ever created.
-
-- `AccountIdByMemberId`: Maps member id to an account id.
-
-- `MemberIdByAccountId`: Maps account id to optional member id.
-
-- `MemberProfile`: Maps member id to `Profile` of member.
-
-- `Handles`: Maps handle to corresponding member id.
-
-- `NextPaidMembershipTermsId`: Next paid membership terms id.
-
-- `PaidMembershipTermsById`: Maps paid terms id to actual terms.
-
-- `ActivePaidMembershipTerms`: Set of active paid term ids.
-
-- `NewMembershipsAllowed`: Whether new memberships can currently be established.
-
-- `ScreeningAuthority`: Optional account of screener.
-
-- `MinHandleLength`, `MaxHandleLength`, `MaxAvatarUriLength`, `MaxAboutTextLength`: Mutable constraint variables
-
-## Events
-
-- `MemberRegistered`: A member was registered with a given id and account.
-- `MemberUpdatedAboutText`: A member, with given id, had text updated.
-- `MemberUpdatedAvatar`: A member, with given id, had avatar URI updated.
-- `MemberUpdatedHandle`: A member, with given id, had handle updated.
-
-## Dispatchable Methods
-
-### `buy_membership`
-
-#### Payload
-
-- `paid_terms_id`: Id of terms
-- `user_info`: UserInfo
-
-#### Description
-
-Establish new membership through payment.
-
-#### Errors
-
-- Bad signature.
-- New members not allowed.
-- Account already associated with a membership.
-- Role key cannot be used for membership.
-- Paid terms id not active.
-- Not enough balance to buy membership.
-- Missing handle.
-- Handle too short.
-- Handle too long.
-- Avatar URI too long.
-- Handle occupied.
-
-#### Side effects
-
-##### Membership established
-
-###### Precondition
-
-`NO_ERROR`
-
-###### Side effect(s)
-
-- `Currency` has decreased primary account balance and total issuance by terms fee.
-- `MemberIdByAccountId` extended.
-- `AccountIdByMemberId` extended.
-- `MemberProfile` extended with new profile created with payload values.
-- `Handles` extended with handle.
-- `NextMemberId` incremented.
-
-###### Event(s)
-
-- `MemberRegistered` for new member
-
-### `change_member_about_text`
-
-#### Payload
-
-- `text`: New about text
-
-#### Description
-
-Change about text on membership.
-
-#### Errors
-
-- Bad signature.
-- No member id found for account id.
-- Not primary account.
-- Member profile not found.
-
-#### Side effects
-
-##### About text updated
-
-###### Precondition
-
-`NO_ERROR`
-
-###### Side effect(s)
-
-- The text of profile of member corresponding to origin account is set to truncated `text`
-
-
-###### Event(s)
-
-- `MemberUpdatedAboutText`
-
-### `change_member_avatar`
-
-_fill in_
-
-### `change_member_handle`
-
-_fill in_
-
-### `update_profile`
-
-_fill in_
-
-### `add_screened_member`
-
-_fill in_
-
-### `set_screening_authority`
-
-_fill in_
-
-## Non-dispatchable Methods
-
-### `is_active_member`
-
-_fill in_
-
-### `lookup_member_id`
-
-_fill in_
-
-### `lookup_account_by_member_id`
-
-_fill in_

+ 0 - 86
testnets/acropolis/specification/runtime/migration-module.md

@@ -1,86 +0,0 @@
-# Migration Module
-
-## Table of Contents
-
-- [Design](#design)
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [on_initialize](#on_initialize)
-
-## Design
-
-### Motivation
-
-The purpose of this module is to run migration routines required in the upgrading from Athens to Acropolis network through an on-chain runtime upgrade.
-
-### Function
-
-Routines run when the `on_initialize` dispatchable is invoked. In the upgrade to Acropolis there are no other modules which have similar code in their own handler of this callback which depend on the migration having being executed. This means it is immaterial in what order the migration module is invoked, however in the future care must be made to guarantee the migration module running first.
-
-## Name
-
-`Migration`
-
-## Dependencies
-
- - [Data Directory Module](./substrate-runtime/data-directory-module.md)
-
- - [Data Object Storage Registry Module](./substrate-runtime/data-object-storage-registry.md)
-
- - [Sudo SRML Module](#)
-
-## Concepts
-
-Standard.
-
-## State
-
-- `SpecVersion`: If set, what runtime spec version the store was initialised, otherwise not set.
-
-## Events
-
-- `Migrated`: Runtime migration code was executed
-  - block number of migration
-  - spec version
-
-## on_initialize
-
-### Description
-
-Pre-block execution code which actually performs migration and initialization under suitable conditions, namely
-
-- `SpecVersion` is not set, which would possibly be the case from genesis
-- `SpecVersion` is less than the runtime [spec version](../README.md#runtime-version)
-
-### Event(s)
-
-- `Migrated`
-
-### Side effect(s)
-
-- `SpecVersion` is set to [spec version](../README.md#runtime-version).
-
-#### Forum
-
-- `NextCategoryId` is `1`
-- `NextThreadId` is `1`
-- `NextPostId` is `1`
-- `ForumSudo` is `key` in `Sudo` module.
-- `CategoryTitleConstraint` is `(10,90)`
-- `CategoryDescriptionConstraint` is `(10, 490)`
-- `ThreadTitleConstraint` is `(10, 90)`
-- `PostTextConstraint` is `(10, 990)`
-- `ThreadModerationRationaleConstraint` is `(10, 290)`
-- `PostModerationRationaleConstraint` is `(10, 290)`
-
-#### DataDirectory
-
-- `PrimaryLiaisonAccountId` is gone.
-- `KnownContentIds`, `DataObjectByContentId` and `MetadataByContentId` are all empty.
-
-#### DataObjectStorageRegirstry
-
-- `RelationshipsByContentId` is empty.

+ 0 - 141
testnets/acropolis/specification/runtime/storage-modules.md

@@ -1,141 +0,0 @@
-# Storage Modules
-
-## Table Of Contents
-
-- [Design](#design)
-- [Concepts](#concepts)
-- [Architecture](#architecture)
-- [Traits](#traits)
-
-## Design
-
-### Motivation
-
-The storage modules contains all runtime functionality pertaining to managing
-the Joystream storage and distribution network. As such it contains information
-on actors participating in the network, as well as data that should be
-retrievable.
-
-### Structure
-
-There are the following modules, with their own detailed specifications.
-
-1. [Data Object Type Registry](data-object-type-registry-module.md):
-   manages how data may be stored on the network.
-2. [Data Directory](data-directory-module.md):
-   manages *what* data exists on the network.
-3. [Data Object Storage Registry](data-object-storage-registry-module.md):
-   manages  *where* data exists on the network.
-4. [Storage Staking](storage-staking-module.md) manages joining and leaving
-   storage *tranches*.
-
-Also related is the [Content Directory](content-directory.md), which provides
-information for users to discover stored content, but it is not a proper module.
-
-## Concepts
-
-- `DataObjectType`: a structure describing the type of data objects that can be
-  stored. This is not to be confused with file types. Instead, data object
-  types will be used to group files that should follow the same storage
-  patterns. See the [Data Object Type Registry](data-object-type-registry-module.md)
-  for details.
-
-- `ContentId`: a unique identifier for `DataObject` and `ContentMetadata`
-  entries.
-
-- `DataObject`: an entry in the [Data Directory](data-directory-module.md)
-  describing a single piece of content in the network.
-
-- `ContentMetadata`: a structure for describing content metadata in a
-  hierarchical fashion. Refers to one or more `DataObject` entries.
-
-- `SchemaId`: an identifier for a metadata schema. Metadata schemas are used to
-  validate `ContentMetadata` entries.
-
-- `Liaison`: the actor account that is responsible for accepting uploads for
-  a `DataObject`, and making the content available to other storage nodes.
-
-- `StorageRelationship`: an entry in the [Data Object Storage Registry](data-object-storage-registry-module.md),
-  describing which actor has stored a particular `DataObject`.
-
-- A storage provider is an `actor` who has staked for a storage tranche.
-
-#### ContentId, DataObject, ContentMetadata
-
-There is a somewhat strange relationship between these three concepts, as
-`ContentId` identifies both `DataObject` and `ContentMetadata`.
-
-Each `ContentId` can be thought of as a file name in a file system: it
-identifies the file contents on disk (i.e. `DataObject` here), as well as some
-metadata, such as file ownership, permissions, etc.
-
-In our system, we do not manage ownership or permissions in quite this manner,
-but in order to have content discoverable by humans, *do* manage descriptive
-information - aka `ContentMetadata`.
-
-The most often used term for such identifiers is a *content identifier*, hence
-the `ContentId` and corresponding `ContentMetadata` names. They best reflect
-the consumer's point of view, that content has a name and some information.
-
-The `DataObject` on the other hand refers to any generic data BLOB. Rather
-than introducing a `DataObjectId` and creating a 1:1 mapping between them
-and `ContentIds`, the latter is simply re-used.
-
-#### Storage Providers
-
-Storage providers, as indicated above, are actor accounts (public keys) which
-have staked for a storage tranche. The specs will treat these and storage nodes
-interchangeably, which may leave the impression that the runtime stores any
-information on where storage machines are to be contacted, such as IP addresses
-or host names. This is not true.
-
-At the level of abstraction of the storage module, *only* actor account IDs are
-managed. It is the purpose of the [Discovery Module](discovery-module.md) to
-resolve actor account IDs further to currently up-to-date contact information.
-
-### Architecture
-
-The basic unit of storage is a `DataObject`, for which a unique `ContentId` is
-entered into the `DataDirectory`. Each `DataObject` is associated with a
-`DataObjectType`, which describes storage parameters such as maximum permissible
-file sizes, etc.
-
-For each `DataObject`, one storage provider acts as the `Liaison`, accepting and
-validating the actual content upload, and making the content available to other
-storage providers. The `Liaison` and any other storage provider that holds the
-content available enters this fact into the runtime as a
-`StorageRelationship`.
-
-For purposes of content discovery, `ContentMetadata` is added to the runtime.
-Each `ContentMetadata` is identified by a `ContentId`; that is, one `ContentId`
-usually maps to a `DataObject` and a `ContentMetadata` entry. The
-`ContentMetadata` has a JSON payload, and a `SchemaId` indicating to clients how
-are to interpret the payload.
-
-`ContentMetadata` *can* be used hierarchically. Each entry can have any number
-of `ContentId` as children. These child IDs can be used to store `DataObject`
-and/or `ContentMetadata` entries of their own, allowing for organizing
-`DataObject` entries into hierarchical structures, e.g. for:
-
-- Podcast episodes in a Podcast
-- Series episodes in a video series
-- Individual language audio files for translated videos, or subtitle texts.
-- etc.
-
-The runtime imposes no restrictions on how `SchemaId` is to be used; however,
-the intent is to eventually add a schema registry that stores e.g.
-[well documented schemas](https://schema.org), or some Joystream specific
-derivates.
-
-## Traits
-
-<!-- This section must be reworked and renamed, we dont ahve this in standard. -->
-
-Most of the storage module's sub-modules only make use of each other, so
-there is not much need for documenting traits as interfaces between them.
-However, one public trait, to be used by the related [Content Directory](content-directory.md)
-does exist:
-
-- `DataObjectHasActiveStorageRelationships`: implements a method
-  `has_active_storage_relationships(content_id)` that returns true if there
-  exist active `StorageRelationship` entries, and false otherwise.

+ 0 - 82
testnets/acropolis/specification/specification-format.md

@@ -1,82 +0,0 @@
-# WIP: Specification Format
-
-This specification consists of two complementary components
-
-1. The Substrate runtime and consensus system.
-
-2. A collection of peer-to-peer and client-server communication protocol.
-
-
-## Substrate Modules
-
-**TBD**
-
-should migration stuff be here?
-
-
-
-### Extrinsics
-
-
-
-**Errors**
-
-All errors have their own precondition. The errors are listed in the order which corresponds to what order they would be invoked if _multiple_ error conditions were satisified simultanously. If this cannot be expressed as a single linear list, the section must reflect this informaiton in some other way in a fully unambigous manner.
-
-Error scenarios, which thus have no side effects, and no events. The section title is used as error message. The full precondition for each case is not only the listed condition in the same row, but also the combined failure of all listed preconditions of prior rows.
-
-**Side effects**
-
-Assume that all error preconditions are simultnaously false, denoted by predicate `NO_ERROR`.
-
-#### Terminiantion
-Important to notice that its very deeply specified, where even the order of error triggering in scenarios with mulitple simultanous errors, is commited to up front, compared to a loser standard of saying that, if you have one of these problems, you will get at least one fo these errors,w hich would drop order.
-
-- **pre-condition:** first order predicate in the runtime state and the transaction paramters which must hold _exactly_ for transaction to be accepted. e.g. that proper person has isgned?
-- **post-condition**: first order predicate in the runtime state and the transaction parameters which must hold _exactly_ when the transaction is accepted. The value of state variable `X` _after_ a transaction is handled, is denoted by `X'`. Hence, as an example, the condition that an integer variable `foo` has been incremented after a transaction is captured by the following predicate: `foo' == foo + 1`. Notice that blockchain state, like event logs ands o on, are not part of this, hence they are not in post-condition. (perhaps change?). It is OK to use separately defined functions to define this predicate, but these cannot have side effects.
-
-Notice that no _iomplementaiton_ is ever provided, only how transaction generate new state constraints. This allows us to avoid any implementation specific types, and also allows all modules to be defiend in terms of what actual types are instantioned in the parametric `T::` trait, rather than introduce lots of trait abstractions.
-
-
-cponditionals are basically valid Rust code.
-
-side ffects are pure, no
-
-functions used can only be pure, i.e. only depend on explicit parameters, and also have 0 side effcts.
-
-
-Always read stroage variables of any module through type, not varible name.
-
-#### Rrsult
-
-Here, all values are either before or after execution, using same tag symbol.
-
-**Events**
-
-Same as result
-
-
-
-## Substrate Runtime
-
-
-- how to find modules toeghet
-- what types are actually used
-- consensus decisions
-- cofngiuration stuff
-
-- migration!
-
-We are speicfying what:
-
--  explain how to intereprt speciciation, so we understand `map`, build et.
-- xxxx
-
-
-## Communication Protocols
-
-<here we write stuff about how to read and understand our protocols>
-
-
-
--->

+ 0 - 540
testnets/athens/README.md

@@ -1,540 +0,0 @@
-<img src="img/athens-cover_new.svg"/>
-
-<div align="center">
-  <h3>
-    <a href="#">
-      Specification
-    </a>
-  </h3>
-</div>
-
-# Table of contents
-
-- [Live Milestones](#live-milestones)
-- [Past Release Meetings](#past-release-meetings)
-- [Specification](#specification)
-- [GitHub Projects](#github-projects)
-- [OKR results](#okr-results)
-- [Release Plan](#release-plan)
-  - [Manager](#manager)
-  - [Release Date](#release-date)
-  - [OKRs](#okrs)
-  - [Constraints](#constraints)
-  - [Risks](#risks)
-  - [Deployment](#deployment)
-  - [Specification Plans](#specification-plans)
-  - [Products](#products)
-    - [Runtime](#runtime)
-    - [Joyful](#joyful)
-    - [Colossus](#colossus)
-    - [Pioneer](#pioneer)
-  - [Events](#events)
-    - [Athens Runtime Testnet](#athens-runtime-testnet)
-    - [Runtime Upgrade](#runtime-upgrade)
-  - [Go-To-Market](#go-to-market)
-    - [Paid Roles](#paid-roles)
-    - [Tutorials](#tutorials)
-    - [Messages](#messages)
-      - [Runtime upgrades vs forks](#runtime-upgrades-vs-forks)
-      - [Announcing Athens Testnet](#announcing-athens-testnet)
-      - [Athens Incentive Structure](#athens-incentive-structure)
-      - [Athens Released](#athens-released)
-  - [Public Infrastructure](#public-infrastructure)
-  - [Internal Infrastructure and Tools](#internal-infrastructure-and-tools)
-  - [Internal Operations](#internal-operations)
-  - [Milestones](#milestones)
-
-# Live Milestones
-
-- **Newsletter, final social media** `24. April 2019`
-#### Actual dates:
-- **Update website:** `18. April 2019`
-- **Release, publish blog, twitter:** `17. April 2019 *`
-- **Soft Release, update Pioneer (telegram):** `15. April 2019`
-- **Final Test run:** `14. April 2019`
-- **Intermediate Test run:** `09. April 2019, 12:00 (GMT+1)`
-
-`*`Denotes syncing between storage providers is outstanding.
-
-# Past Release Meetings
-
-| Date            | Link          |
-| -------------   | ------------- |
-| NA              | x             |
-
-#  Specification
-
-TBD.
-
-# GitHub Projects
-
-The current set of relevant GitHub projects are
-
-- [Athens Release](https://github.com/orgs/Joystream/projects/5)
-
-# OKR results
-
-NA.
-
-# Release Plan
-
-**This plan was made once, but is not kept in synch with ongoing efforts and adjustments.**
-
-## Manager
-
-`Martin`
-
-## Release Date
-
-4 April 2019, 12:00 (GMT+1)
-
-## OKRs
-
-### Objective: `Launch Athens network`
-- **KR Measurement Deadline**: 1 week after Athens launch
-- **Key Results**:
-##### 1. `Get 10 claims per $ for tokens on our faucet`
-##### 2. `Have all episodes of the Staked (4) and Make_World (n) podcast in the content directory`
-##### 3. `Have second council upgrade consensus after reaching quorum`
-##### 4. `20 Uploads (100min) and 100 Downloads not including Jsgenesis`
-##### 5. `75 Memberships created (not including Jsgenesis) at a min 1/2 membership/unique view ratio`
-
-- **Final Score**
-
-| Date     | KR #1 | KR #2 | KR #3 | KR #4 | KR #5 |  Total  |
-|:--------:|:-----:|:-----:|:-----:|:-----:|:-----:|:-------:|
-| 23.04.19 | 0.05  | 0.83  |  0.5  |  0.67 | 0.66  |**0.642**|
-
-Full details of tracking of results can be found in the [archive](../okrs/OKR-archive/athens).
-
-## Constraints
-
-- We will delay doing any serious investment in documentation, audits or specifications in this release, in order to prioritize learning how to do timely and well planned releases, before investing in these longer term assets.
-
-- We will continue to not do any serious work in the UX, in particular in the Pioneer application, in order to move faster using the Polkadot UI framework. We can afford small tweaks here and there based on user input, but a fundamental reworking is delayed until at least after Athens.
-
-## Risks
-
-- **Jens** may not be able to reliably participate, and its not clear when new TT dev will be found and onboarded.
-
-- **Bedeho** will try to contribute on Runtime work, but he also has to get familiar with Rust & Substrate, as well as other unreliable priorities.
-
-## Specification Plans
-
-No.
-
-## Deployment
-
-On-chain upgrade of runtime, no migration.
-
-## Products
-
-The following public products will be part of this release.
-
-### Runtime
----
-- **Description:** Runtime for Validator node
-- **Manager:** Mokhtar
-- **Core Team:**
-  - **Mokhtar:** Developer
-  - **Alex:** Developer
-  - **Jens:** Developer
-  - **Martin:** Testing
-  - **Bedeho:** Developer
-  - **Jaydip:** Devops
-- **Main repo:** [substrate-runtime-joystream](https://github.com/Joystream/substrate-runtime-joystream)
-- **Current version:** 4
-- **New version:** 5
-- **Audit:** NO
-- **Documentation:** NO CHANGE
-- **Legal Review/ToS update:** NO CHANGE
-- **Build/CI system:**
-  - **Jaydip:** Get CI builds for runtime
-- **Target Platforms:** NO CHANGE
-- **New/Altered Functionality:**
-  - **Mokhtar:** Basic membership system:
-    - Pay for membership signup
-    - No working groups for screening or policing
-    - Reusing storage for avatar persistence.
-    - Lets delay BRAQ fee model, since its not an absolute requirement
-    - Do Validators also have to be members. (will require changing staking
-module)
-    - Replace/Update Indices module (account indexing)
-  - **Jens**, **Mokhtar:** Basic storage and distribution:
-    - Roles combined into single staked actor that fully replicates full data
-directory
-    - No working group, anyone can enter so long as they pass requirements.
-    - We can kick out an actor through root by fiat
-    - Basic data directory
-      - no tranches -(all storage nodes do full replication?)
-      - only the object types required in this release
-      - very few data object types (which?)
-  - **Jens:** Basic content directory
-    - controlled by through root, no working group
-    - policed through sudo
-    - basic publisher profile.
-    - Supports two content types
-      - a standalone video clip (podcasts are published)
-      - an audio podcast series and episodes
-    - All static assets live in storage system
-  - **Mokhtar:** do something about spam risk, e.g. falt tx fee
-- **Refactor/Reorganization:**
-  - Split the runtime into its own repo, and include a docker script for doing
-reproducible builds. Will be needed for testing/verifying runtime upgrade
-proposals, and first use will be for this next release
-- **New Key User Stories:** NONE
-- **Deployment/Distribution:**
-    - Will be voted in through an upgrade proposal in council, see Events section for how.
-
-### Joyful
----
-
-- **Description:** Validator node.
-- **Manager:** **Mokhtar**
-- **Team:**
-  - **Mokhtar:** Developer
-  - **Martin:** Testing
-  - **Jaydip:** Devops
-- **Main repo:** [substrate-node-joystream](https://github.com/Joystream/substrate-node-joystream)
-- **Current version:** v0.10.
-- **New version:** v0.10.2 (backward compatible with old nodes/chain (network/p2p/codec
-etc..))
-- **Audit:** NO
-- **Documentation:** NO CHANGE
-- **Legal Review/ToS update:** Yes (**Martin**)
-- **Build/CI system:** NO CHANGE
-- **Target Platforms:**
-  - Mac
-  - Win
-  - Ubuntu
-  - Docker image? / raspberry Pi, ARMv7 build
-- **New/Altered Functionality:**
-  - Prompt to accept TOS before running
-  - Include latest runtime (native)
-  - Built-in (subkey) for working with keys to not have to rely on web app?
-  - Pull bug fixes that don’t break consensus from upstream?
-- **New Key User Stories:** NONE
-- **Deployment/Distribution:**
-  - Will be have to be downloaded from GitHub release page, with links being
-distributed relevant tutorials and communications.
-  - **Jaydip:**
-    - Get docker image based builds working
-    - Docker image hosted on docker.com public repo + instructions?
-    - OSX brew/Ubuntu snap?
-
-### Colossus
----
-- **Description:** Combined storage and distribution node.
-- **Manager:** **>Jens**
-- **Team:**
-  - **Jens:** Developer
-  - **Martin:** Testing
-- **Main repo:** [storage-node-joystream](https://github.com/Joystream/storage-node-joystream)
-- **Current version:** 0.1.
-- **New version:** 0.2.
-- **Audit:** NO
-- **Documentation:** API YES (needed for other devs to understand how to interface with
-it).
-- **Legal Review/ToS update:** Yes (**Martin**)
-- **Build/CI system:** NO CHANGE
-- **Target Platforms:** Linux. Testing required for others.
-- **New/Altered Functionality:** **Jens**
-  - This first version is based on the following:
-  - for now, hyperdrive for storage & synchronizing (tech underlying Dat)
-  - nodejs + expressjs + express-openapi for application facing API.
-  - Exposes all operator and usage functionality through REST API, a standalone new js library should probably also be written for usage by client apps.
- - Synchronizes multiple storage nodes
- - Interfaces with blockchain as authority on members, content providers, etc.
- - API provides basic content discovery as well as upload/download.
-- **New Key User Stories:**
-  - As a new user, I can install via npm by doing npm install joystream-storage-node
-  - As a new user, I can join the storage node pool.
-- **Deployment/Distribution:**
-  - Will be have to be downloaded from GitHub release page, with links being
-distributed relevant tutorials and communications.
-
-### Pioneer
----
- - **Description:** The user interface for interacting with the platform.
- - **Manager:** **Alex**
- - **Team:**
-  - **Alex:** Developer
-  - **Mokhtar:** Developer
-  - **Tomasz:** Designer
-  - **Martin:** Testing
- - **Main repo:** [apps](https://github.com/Joystream/apps)
- - **Current version:** 0.23.29 (inherited from Polkadot Apps)
- - **New version:** 0.2.
- - **Audit:** NO
- - **Documentation:** NO CHANGE
- - **Legal Review/ToS update:** Yes (**Martin**)
- - **Build/CI system:** NO CHANGE
- - **Target Platforms:** Web
- - **New/Altered Functionality**: **Alex**
-  - Update name of application:
-    - GitHub repo name
-    - Browser title bar
-    - HTML meta tags: description, and tags (facebook), twitter tags – this is
-useful when sharing a link to the site on social sites (twitter, facebook) or
-in chats like Telegram or Rocket.
-  - Edit Profile page: avatar, handle, (full name?), links to other social accounts
-(twitter, facebook, linkedin, telegram, etc.), bio/about.
-  - Form validation: validate input values against constraints loaded from a
-runtime such as:
-    - is field required: yes/no?
-    - a max length of text based fields.
-  - View Profile page:
-    - Display the same list of fields as we have on Edit Profile page
-    - Public key of linked account.
-    - Show free token balance + staked validator’s balance.
-    - Registered on (date & time)
-    - Is council member: Yes/No.
-    - Memo.
-  - List of members:
-    - Show preview of each member: avatar, (nick)name, account id.
-    - Search by handle or account id.
-    - Pagination.
-  - Storage providers
-    - See list of storage providers
-    - Join as a storage provider by stake a certain amount of tokens.
-  - Publishing
-    - Turn on publishing, with basic information
-    - Upload and publish content
-    - Input title, description, category (+ tags?)
-    - Edit title, description, category after content uploaded?
-  - Content consumption
-    - See front page view of content directory
-    - Play back video
-    - Search by key words in title and description.
-    - Browse videos and podcasts by categories
-    - Filter by videos (yes/no) and podcasts (yes/no)
-    - Pagination
-  - Report video/podcast for being problematic in some way:
-    - Button “Report” under video/podcast player.
-    - An input field where a reporter can provide a reason why they are
-reporting this particular content.
-    - A separate page with reported content (or a separate site reports.joystream.org). Should this page be visible only to Jsgenesis
-team or it can be open for anyone.
-  - Event log as a list of all txs and actions user performed on the platform. Get
-Substrate events where a current user was an origin of tx.
- - **New User Stories:**
-  - As a new user I can install via?
- - **Deployment/Distribution:**
-  - Will be have to be downloaded from GitHub release page.
-
-## Events
-
-### Athens Runtime Testnet
-
-- **Description:** We conduct an actual testnet with ourselves and key community members as
-participants.
-- **Deadline:** 29. March
-- **Manager:** **Martin**
-- **Team:**
-  - **Mokhtar:** Developer
-  - **Jaydip:** DevOps
-- **Test specification:**
-  - _Please rewrite more clearly_
-
-### Runtime Upgrade
-
-- **Description:** Submit proposal to change to new image, and have council pass that proposal.
-- **Deadline:** 02. April
-- **Manager:** **Martin**
-- **Team:**
-  - **Martin:** Writing
-  - **Mokhtar:** Developer
-  - **Tomasz:** Designer
-- **Time line:**
-  - _Please rewrite more clearly_
-
-## Go-To-Market
-
-### Paid Roles
-
-- **Description:** During the lifetime of the testnet, until next upgrade or network or discretionary
-announcement, the following incentive campaign is in place to achieve key results for service
-providers. Policy would be
-  - Validator: 30$ per week -> 0.03C per block
-  - Council Member: **8$** for seat, **5$** for vote on runtime upgrade(s)
-  - Storage: **$10** per week, with **$0.025/GB** per week
-- **Manager:** **Martin**
-- **Team:**
-  - **Martin:** Manager
-  - **Bedeho:** ElPassion Manager
-  - **Mokhtar:** Developer
-  - **Tomasz:** Designer
-  - **Jaydip:** Community manager/Devops
-- **Tasks:**
-  - **Bedeho**, **Tomasz:** Update Joystream.org with new testnet summary information
-   - New fields about new state
-     - Number of members (perhaps even actual names?)
-     - Number of storage providers
-     - Total amount of storage used
-     - Total amount of content items published
-   - Better representation about election cycle system, more clearly need to represent the multistaged nature, with a countdown to act, and perhaps why, and also a CTA to actually act.
-   - New list of roles, with active ones emphasised
-   - New section for next testnet, with state there <== needs name
-  - **Mokhtar:** Update backend infrastructure to support new life Athens web based summary
-  - **Martin:** Update or write tutorials for how to participate in roles on Github
-    - Validator (systemd setup, fine tuning linux, inspiration: https://kb.certus.one/)
-    - Storage Provider
-  - **Martin:** Write & publish blog posts
-    - [Runtime upgrades vs forks](runtime-upgrades-vs-forks)
-    - [Announcing Athens Testnet](announcing-athens-testnet)
-    - [Athens Incentive Structure](athens-incentive-structure)
-    - [Athens Released](athens-released)
-  - **Jaydip:** Tech support/online presence
-    - Monitor tlgrm, RC, (after trust established, twtr and reddit?)
-
-### Tutorials
-
-#### How to be a Validator
-
-- **Description:** Step by step guide for how to setup and run a validator node, and claim reward
-- **CTA:** Go and setup your node
-- **Author:** **Martin**
-- **Distribution:** Github?
-- **Assets:** NONE
-
-#### How to be a Storage Provider
-
-- **Description:** Step by step guide for how to setup and run a storage provider node, and claim reward
-- **CTA:** Go and setup your node
-- **Author:** **Jens**,**Martin**
-- **Distribution:** Github?
-- **Assets:** NONE
-
-### Messages
-
-#### Runtime upgrades vs forks
-
-- **Description:** Somewhat technical blog about what these are, what they enable, and how we
-are doing them.
-- **CTA:** Educational+hiring credibility
-- **Author:** **Mokhtar**,**Martin**
-- **Distribution:** Twtr, Tlgrm, Reddit, RC + polkadot forum(s)
-- **Assets:** Cover + some new pagebreakers - <Spartan w/sword defeating enemy w/fork>
-
-#### Announcing Athens Testnet
-
-- **Description:** An initial message explaining what will be in Athens, why they should care,
-showings its logo, and a scheduled date (we are not in full control), once features are locked in.
-Telling people what the next sequence of events are, including future messages, future points in
-time they must act.
-- **CTA:** What action can people do, and how
-- **Author:** **Martin**
-- **Distribution:** TTRR
-- **Assets:** Cover + some new pagebreakers - <athenian owlcould be featured unless we want
-to use this as “main” athens logo. >
-
-#### Athens Incentive Structure
-
-- **Description:** Incentive structure and changes made for Athens + lessons learned
-- **CTA:** Roles to take, and why
-- **Author:** **Martin**
-- **Distribution:** TTRR
-- **Assets:** Cover + some new pagebreakers - <something similar to the Spartan one, but with
-new logo and storage provider role>
-
-#### Athens Released
-
-- **Description:** TL;DR of previous posts with links + Full update on howto, with an emphasis on
-new roles
-- **CTA:** Sign up now
-- **Author:** **Martin**
-- **Distribution:** TTRR+newsletter
-- **Assets:** Cover + some new pagebreakers - < Athens logo>
-
-## Public Infrastructure
-
-### Hosted Joystream Pioneer
-
-- **Description:** Host a version of Joystream Pioneer on joystream.org + others?
-- **Manager:** **Jaydip**
-- **DevOps:** **Jaydip**
-- **Repo:** Aim for static build of pioneer repo (similar to polkadot-js apps deploymnet)
-- **Team:**
-  - **Jaydip**
-- **Tasks:**
-  - Reuse existing linode server or deploy to heroku for example (autodeploy o master branch merge)?
-
-### Hosted Joystream Storage Node
-
-- **Description:** A storage node controlled by us, serving as fallback
-- **Manager:** **Jens**
-- **DevOps:** **Jens**
-- **Repo:** [storage-node-joystream](https://github.com/Joystream/storage-node-joystream)
-- **Team:**
-  - **Jens**
-
-### Storage & distribution error endpoint
-
-- **Description:** Reporting endpoint where any user of the data storage and distribution protocol can signal peer failures, will be deployed on error.joystream.org.
-- **Manager:** **Alex**
-- **DevsOps:** **Mokhtar**
-- **Repo:** TBD by **Alex**
-- **Team:**
-  - **Alex**.
-  - **Mokhtar**.
-- **Note:**
-  - Check out Logstash/Kibana/Mixpanel/Splunk
-
-### Faucet service backend
-
-- **Description:** Free token dispenser
-- **Manager:** **Mokhtar**
-- **DevOps:** **Mokhtar**
-- **Repo (private):** [substrate-faucet](https://github.com/Joystream/substrate-faucet)
-- **Team:**
-  - **Mokhtar**
-- **Tasks:**
-  - Shouldn’t need much changes on backend, if using google captcha in pioneer.
-  - Update README with instructions on how to deploy backend.
-  - Host on different domain (currently on sparta.joystream.org)
-
-## Internal Infrastructure and Tools
-
-### Payout Tool
-
-- **Description:** Tool to compute payouts to relevant parties on testnet
-- **Manager:** **Martin**
-- **Repo (private):** [testnet-payout-scripts](https://github.com/Joystream/testnet-payout-scripts)
-- **Team:**
-  - **Martin**
-- **Tasks:**
-  - Update to cover storage providers
-
-## Internal Operations
-
-### Payouts
-
-- **Description:** Conduct regular payouts
-- **Manager:** **Martin**
-- **Team:**
-  - **Martin**
-- **Schedule:**
-  - Storage and Validator get payouts mondays at ~1100GMT
-  - Council gets payouts ~10:00GMT day after election and, if applicable, vote.
-
-### Support
-
-- **Description:** Provide support to users engaging with testnet functionality and campaigns
-- **Manager:** **Jaydip**
-- **Team:**
-  - **Jaydip**
-  - **Martin**
-- **Duration:**
-  - Very high availability in the week following releases
-  - No more than 24 hour lag in response to queries after that
-- **Channels:**
-  - Telegram
-  - Reddit
-  - RocketChat
-
-## Milestones
-
-1. 29 March: Athens Runtime Testnet
-2. 02 April: Runtime Upgrade
-3. Update website?
-4. Send out newsletter + blog

BIN
testnets/athens/branding/logo.png


+ 0 - 232
testnets/athens/img/athens-cover.svg

@@ -1,232 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 23.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 882 300" style="enable-background:new 0 0 882 300;" xml:space="preserve">
-<style type="text/css">
-	.st0{fill:#C4C3C6;}
-	.st1{fill:#FFFFFF;}
-	.st2{fill-rule:evenodd;clip-rule:evenodd;}
-	.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#C4C3C6;}
-	.st4{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
-	.st5{fill:#010101;}
-	.st6{fill:none;}
-	.st7{fill-rule:evenodd;clip-rule:evenodd;fill:#B1B2B7;}
-	.st8{fill-rule:evenodd;clip-rule:evenodd;fill:#FDFDFD;}
-	.st9{fill-rule:evenodd;clip-rule:evenodd;fill:#F9F9F9;}
-</style>
-<g id="Layer_4">
-	<path d="M876,209H6c-3.3,0-6-2.7-6-6V6c0-3.3,2.7-6,6-6h870c3.3,0,6,2.7,6,6v197C882,206.3,879.3,209,876,209z"/>
-	<g>
-		<path class="st1" d="M61.2,100.6l9.1-33.2h8.1l9.1,33.2h-3.6l-2.4-8.5H67.2l-2.4,8.5H61.2z M73.1,70.6l-5,18.2h12.6l-5-18.2H73.1z
-			"/>
-		<path class="st1" d="M103.8,79.7h-7.6v11.5c0,2.8,0.2,4.6,0.6,5.4c0.4,0.9,1.4,1.3,2.9,1.3l4.3-0.3l0.2,3
-			c-2.1,0.4-3.8,0.5-4.9,0.5c-2.5,0-4.2-0.6-5.2-1.8c-1-1.2-1.4-3.5-1.4-7V79.7h-3.4v-3.1h3.4v-7.3h3.6v7.3h7.6V79.7z"/>
-		<path class="st1" d="M111.8,100.6h-3.6V66.1h3.6V78c2.6-1.2,5-1.8,7.4-1.8c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7
-			h-3.6V88c0-3.3-0.3-5.6-1-6.8c-0.7-1.2-2-1.8-4.2-1.8c-2,0-4,0.4-5.9,1.1l-0.9,0.3V100.6z"/>
-		<path class="st1" d="M150.3,97.6l1.4-0.1l0.1,2.8c-3.6,0.5-6.8,0.8-9.4,0.8c-3.5,0-5.9-1-7.3-3c-1.4-2-2.2-5.1-2.2-9.3
-			c0-8.4,3.3-12.6,10-12.6c3.2,0,5.6,0.9,7.2,2.7c1.6,1.8,2.4,4.6,2.4,8.5l-0.2,2.7h-15.8c0,2.7,0.5,4.6,1.4,5.9
-			c1,1.3,2.6,1.9,5,1.9C145.4,97.9,147.8,97.8,150.3,97.6z M149,87.2c0-2.9-0.5-5-1.4-6.2c-0.9-1.2-2.5-1.8-4.6-1.8
-			c-2.1,0-3.7,0.6-4.8,1.9c-1.1,1.3-1.6,3.3-1.7,6.1H149z"/>
-		<path class="st1" d="M161.8,100.6h-3.6v-24h3.6v1.7c2.6-1.4,5.1-2.2,7.4-2.2c3.2,0,5.4,0.9,6.5,2.6c1.1,1.7,1.7,4.8,1.7,9.2v12.7
-			h-3.6V88c0-3.3-0.3-5.6-1-6.8c-0.7-1.2-2.1-1.8-4.2-1.8c-1,0-2.1,0.2-3.2,0.5c-1.1,0.3-2,0.6-2.6,0.9l-0.9,0.4V100.6z"/>
-		<path class="st1" d="M191.5,79.3c-3.5,0-5.2,1.2-5.2,3.6c0,1.1,0.4,1.9,1.2,2.4c0.8,0.5,2.6,0.9,5.5,1.4c2.8,0.5,4.9,1.2,6,2.1
-			c1.2,0.9,1.8,2.6,1.8,5c0,2.5-0.8,4.3-2.4,5.4s-3.9,1.7-6.9,1.7c-2,0-4.3-0.2-7-0.7l-1.4-0.2l0.2-3.1c3.6,0.5,6.4,0.8,8.3,0.8
-			s3.3-0.3,4.2-0.9c1-0.6,1.5-1.6,1.5-3c0-1.4-0.4-2.3-1.2-2.8c-0.8-0.5-2.7-1-5.5-1.4c-2.8-0.4-4.8-1.1-6-2
-			c-1.2-0.9-1.8-2.5-1.8-4.8c0-2.3,0.8-4.1,2.5-5.2c1.6-1.1,3.7-1.7,6.2-1.7c2,0,4.4,0.2,7.3,0.7L200,77l-0.1,3.1
-			C196.4,79.6,193.6,79.3,191.5,79.3z"/>
-	</g>
-</g>
-<g id="Layer_2">
-</g>
-<g id="Layer_3">
-</g>
-<g id="Layer_1">
-	<g>
-		<g>
-			<path class="st5" d="M672.4,244.1c0,0-4.9-0.2-7.3,1.7c0,0-5.7-3.6-16.7-1l-4.2-16.7c0,0-4-17.9,1.5-26
-				c3.7-5.5,11.4-12.7,20.4-23.1c4-4.7,9.2-8.3,13.6-12.1c5.8-5,6.8-13.8,6.6-21.1c-0.3-10.2-6.6-19.7-6.6-19.7s-59.7-6.9-68.8-1.4
-				c0,0-33.5,22.7-65.1,63c0,0,0.3,0,2.1,1c0,0-8.8,11.7-8.7,20.3c0,0-0.5,2.3,0.4,4.8c0,0,0.9,4.9,0.8,5.9c-0.1,1,0.2,5.4,0.2,5.4
-				s-1.2,5.4-1.4,6.3c-0.3,0.9,0,6.6,0,6.6s26.6-12.5,30.4-14.7c0,0,15.8,1.3,21.6,0.3c0,0,5.3,6.7,5.8,8l2.5,13.8
-				c0,0-5.2,0.9-7,2.8c-0.8,0-9.4-1.2-12.3,2.1c0,0-1.5,6.1-0.8,7.1s4,0.7,5-0.3c0,0,5.3,5.8,10.7,5.2c5.4-0.6,12.8-4.1,18.6-2.8
-				c5.8,1.3,14.6,3.9,19.9,2.4c5.4-1.5,11.1-4.8,11.1-4.8l1.6,1.3c0,0,0.6-0.6,0.4-1c0,0,16.5,1.6,21,3.9c6.3,3.2,13.4-4.8,13.4-4.8
-				s0.6,0.2,2,0.4C682.8,256.8,685.7,243.7,672.4,244.1z M630,244.3c-2.8,0.1-3.6,1-3.6,1l-7.6-0.9c-0.6-1.2-3.6-15-3.6-15
-				c-0.1-2,2-7.4,2-7.4c2.6-0.2,3.5-0.7,3.5-0.7c1.4,1.7,8.4,10,8.4,10C630.2,234.6,630,244.3,630,244.3z"/>
-			<path class="st0" d="M634.5,244.8c0,0,5.6,0.5,8.3,3.1l0.8-0.3l-3.5-16.4c0,0-4.1,1.1-6.1,2.8L634.5,244.8z"/>
-			<path class="st0" d="M646.5,250.5c0,0,7.2-4.4,17.6-1.4l0.8,3c0,0,14.4-0.5,13.3,2.4c-1.2,2.9-7,3.9-9.9,3.1s-10.9-4.6-20-3.4
-				C648.2,254.1,647.3,251.8,646.5,250.5z"/>
-			<path class="st0" d="M604.2,234.6l-0.5,14.9c0,0-4.7-0.3-8.9,1.4c0,0,0.8,2.6-0.5,2.9c-1.3,0.3-6.4,1.1-6.4,1.1l0.4,0.5
-				c0,0,6.1,3.3,9.4,1.7c2.7-1.3,6.3-3,14-2.9s11.8,4.2,16.7,3.9c4.9-0.4,11.1-1.9,12.4-3.5c0,0-1.4-2.2-7-2.5
-				c-5.5-0.3-6.6-0.3-7.4-3.6c0,0-7-0.2-10.9,1c0,0-4-18-4.4-18S605.5,232.5,604.2,234.6z"/>
-			<path class="st0" d="M573.3,218c2.2-0.8,26.7-19.3,26.7-19.3c-1.4,2.1-16.8,14-16.8,14s0.8,0.2,3-0.7c2.3-1,16.6-9.8,16.9-10.2
-				l-5.4,5.9l7.2-4.8c1.8,0.6,5.1,0.5,5.1,0.5c-1.3,1.1-4.2,4.9-4.2,4.9c3-2.3,6.9-5.2,6.9-5.2l2.9,0c-0.6,1.5-2.9,4.4-2.9,4.4
-				l5.8-1.9l-1.6,2.2c2.6-1.9,8.1-3.8,8.1-3.8c-1.1,0.7-7.3,6.8-7.3,6.8c1.5-1.6,15.1-9.7,15.1-9.7l1.3-0.2
-				c-0.8,0.9-3.9,5.3-3.9,5.3l5.3-5.2c0,0,1.8-0.9,4.3-1.2c0,0-2.1,7-3,12c-0.9,5.2,1.6,13.5,1.6,13.5c-2.9,1.7-5.5,2.2-5.5,2.2
-				c-2.2-3.4-9.1-10.2-9.1-10.2l2.7-6c-4.8,4.8-11.1,6.4-11.1,6.4c-0.6,0-1.2-5-1.2-5c-2,2-4.8,14.1-4.8,14.1
-				c-0.4,1-3.5,1.6-4.8,1.5c-1.3-0.1-2.5-2.1-2.5-2.1l2.9-1.2l-4.2-0.9c-1.3-0.5-5.1-5.7-5.1-5.7c0.2-0.6,10.5-6.8,10.5-6.8
-				l-11.6,5.4L573.3,218z"/>
-			<path class="st1" d="M667.6,248.5l0.8,1.3c0,0,6.1-1.2,11.9,2.2c0,0-1.4-4.2-6.7-4.5C667.3,247.2,667.6,248.5,667.6,248.5z"/>
-			<path class="st1" d="M618.9,163.5c-10.9,9.7-41.2,27.8-41.2,27.8s8.8,4.5,24.1-3.2s29.7-22.3,31.2-24.4l-7.7,4.8l5.1-5.1
-				c0,0-2.1,0.3-3.4,0.3l-13.3,8c3.6-1.9,10.9-8,10.9-8L618.9,163.5z"/>
-			<path class="st5" d="M600,182.2c0,0,15.3-8.2,18-10.2c0,0-8,7.9-14.9,10.7s-11.5,3.2-11.5,3.2L600,182.2z"/>
-			<path class="st0" d="M543.1,230.5c0,0,1.7-4.2,2.6-6.8c0.2-0.7,18.7-20.3,27.8-25h1.3c-9.4,8.1-8.2,7.3-10.6,9.6
-				c0,0,16.2-11.6,18.3-12.4c0,0-4.8,5.3-6,6.4c0,0,11.8-5.4,13.4-6.3c0,0-1.5,2.2-2.7,3.2c0,0,16.2-7.7,17.6-8.2
-				C604.8,191,551.4,230,543.1,230.5z"/>
-			<path class="st5" d="M558.8,214.6c0,0,5.6-3.5,7.1-5c1.4-1.4,3.3-1,0,1.9c-3.3,2.9-4.2,3.8-7.1,4
-				C555.9,215.7,558.8,214.6,558.8,214.6z"/>
-			<path class="st1" d="M630.4,248.1c0,0-0.1,1.3,0.8,1.4c1.4,0.3,6.1-0.6,12.1,3c0,0,0.6-0.9-2-3.1
-				C638.6,247.3,632.3,247.3,630.4,248.1z"/>
-			<path class="st1" d="M582,255.1c0,0,0.5-3,1.4-3.5c0.9-0.5,6.8-0.8,7.8-0.6c0,0,0.8,0.9,0.5,1.2c-0.3,0.3-5.9,0.8-6.8,1.7
-				C584,254.8,582.8,255.3,582,255.1z"/>
-			<path class="st5" d="M603.7,249.5c0,0,3.1,0.1,4.9,0.7c0,0-3.8-3-5.7-2.8L603.7,249.5z"/>
-			<path class="st0" d="M571.1,195.5c0,0-1.8-0.5-1.7-2l-4.9,3.1l5.6-5l-1-0.5c-0.9,0.5-9.6,7.2-9.6,7.2l7.4-7.3c-0.4,0.1-2,0-2,0
-				c-1.8,1.2-17.1,15.6-19.5,19.8s-0.7,10-0.7,10S558.5,205.6,571.1,195.5z"/>
-			<path class="st0" d="M562.6,190.3c0,0-13,10.2-17.9,18.6c0,0-1.4-1.3-0.5-4.6s9.5-12.4,11.2-13.5l-2.1,4.3l5.1-4.6
-				C558.3,190.3,561.2,190.7,562.6,190.3z"/>
-			<path class="st5" d="M603.4,84.6c0,0-4.6-7.4-4.9-9.8c0,0,5.7-2.6,13.1-2.3c0,0-0.9-8.2,1.1-10.4c0,0,9.2,3.4,12,5.4
-				c0,0-0.5-9.3,3-10.8c0,0,8,4.4,8.5,7.7c0,0,1.4-7.4,5.1-8.6c0,0,3.3,3.7,5.4,6.8c0,0,3.5-9,6.5-10.1c0,0,5.7,5.9,6.2,8.6
-				c0,0,0.3-3.1,6.1-5.3c0,0,6,5.9,5.7,9.3c0,0,3-6.6,6.9-7.4c0,0,5.1,1.5,5.2,8c0,0,4.4-3.6,7.5-4.8c0,0,4.9,5.3,4.1,8.4
-				c0,0,4.9-2.2,8.1-1.5c0,0,2.6,4,0.3,10.3c0,0,8.5-0.8,10.2,1.1c0,0-2.4,8-3.7,8.5c0,0,6.7,2.6,7.9,4.5c0,0-5.5,6.1-6.8,6.8
-				l5.6,7.3c0,0-3.3,4.6-6.1,4.6c0,0,1.6,6.2,1.5,10.3c0,0-6.4,0.5-8.6-1.2c0,0,0.9,4.9,0.5,7.8c0,0-6.9-0.6-8-2.5
-				c0,0-1.9,7.4-3.8,8.9c0,0-5.4-3.5-5.8-5.4c0,0-0.9,4.5-3.2,5.7c0,0-6.5-4.9-6.2-6.5c0,0-1.4,5.8-4.1,6.1c0,0-4.1-3.9-4.1-6
-				c0,0-1.3,3.8-3.3,3.9c0,0-3.5-3.1-4.3-5c0,0-3.9,6.5-5.7,7.1c0,0-6.6-7.2-7.4-9.1c0,0-1.3,4.6-3,5.8c0,0-1.9-1.2-2.8-3.1
-				c0,0-2.5,5.4-4.1,5.7c0,0-3.1-1-4.1-2.6c0,0-1.4,1.9-4.9,3.3c0,0-2.2-1.9-3.6-4.4c0,0-3.8,3.6-6.5,3.6c0,0-2.8-4.4-2.4-6.6
-				c0,0-6.1,3.6-10,3.5c0,0-1.8-4.9-1.1-6.9c0,0-4.8-0.3-6.2-1.1c0,0-1.9-6.1,1.1-9.6c0,0-8.1-5.2-9.1-7.4c0,0,4.2-4,9.6-7.1l-9-7.8
-				C591.8,89.9,596.8,85.7,603.4,84.6z"/>
-			<g>
-				<path class="st0" d="M646.8,117.4c0,0,6.5,13.5,8.3,14.8c0,0,5.5-11.6,6.5-15.7c0,0-4.6-6.3-6.6-9.2
-					C654.9,107.2,649.8,115,646.8,117.4z"/>
-			</g>
-			<g>
-				<path class="st1" d="M678.7,116.5c0,0,16.5-1.3,20.5-16.9s-13.4-24.2-20.5-24.1s-21.8,7.6-20.9,21.2S669.8,116,678.7,116.5z"/>
-				<path class="st0" d="M678.7,114.1c0,0,14.5-1.2,18.1-14.9c3.5-13.8-11.8-21.3-18.1-21.3c-6.3,0-19.3,6.7-18.5,18.7
-					C661,108.6,670.8,113.7,678.7,114.1z"/>
-				<path class="st1" d="M678.7,111.6c0,0,12.6-1,15.7-12.9s-10.2-18.5-15.7-18.4c-5.4,0-16.7,5.8-16,16.2
-					C663.4,106.9,671.9,111.3,678.7,111.6z"/>
-				<path class="st5" d="M677.2,108.5c0,0,7.2-0.8,8.8-2.6c0,0,8.2-7,5.5-12.6c0,0-4.2-8-8.2-8.9c-3.9-0.9-12.4-0.5-14.4,5.8
-					C666.9,96.4,665,104.3,677.2,108.5z"/>
-				<path class="st1" d="M688.3,103.6c0,0-6.5,2.8-11.3,0.6c-4.8-2.2-6-6.6-6.3-7.2c0,0-1.1,5.8,4.1,8c5.2,2.2,11.1,2.1,12.7,0
-					C688.9,103.2,688.3,103.6,688.3,103.6z"/>
-			</g>
-			<g>
-				<path class="st1" d="M630.4,117.2c0,0,16.6-1.3,20.7-17.1s-13.5-24.4-20.7-24.3s-22,7.7-21.1,21.4
-					C610.1,110.9,621.4,116.7,630.4,117.2z"/>
-				<path class="st0" d="M630.4,114.7c0,0,14.7-1.2,18.3-15.1c3.6-13.9-11.9-21.5-18.3-21.5c-6.3,0-19.4,6.8-18.7,18.9
-					S622.4,114.3,630.4,114.7z"/>
-				<path class="st1" d="M630.4,112.4c0,0,12.8-1,15.9-13.2c3.1-12.1-10.4-18.8-15.9-18.7c-5.5,0-17,5.9-16.3,16.5
-					S623.5,112.1,630.4,112.4z"/>
-				<path class="st5" d="M628.9,109.1c0,0,7.3-0.8,8.9-2.6c0,0,8.2-7,5.5-12.7c0,0-4.3-8.1-8.2-9s-12.5-0.5-14.6,5.9
-					C618.4,96.9,616.5,104.9,628.9,109.1z"/>
-				<path class="st1" d="M640.1,104.1c0,0-6.6,2.9-11.4,0.6c-4.9-2.3-6.1-6.7-6.4-7.3c0,0-1.1,5.9,4.2,8.1c5.2,2.2,11.2,2.1,12.8,0
-					C640.7,103.8,640.1,104.1,640.1,104.1z"/>
-			</g>
-			<path class="st0" d="M655.7,77.2c0,0-5.6,0.2-5.2,4c0.4,3.8,3.9,4.2,5.2,3.8c0,0,2.6-0.2,3-3.8C659.1,77.6,655.7,77.2,655.7,77.2
-				z"/>
-			<path class="st1" d="M615.7,160.4c0,0-39.6,24.9-41,25.1c-4,0.7-9.3-0.3-9.3-0.3c3.3-1.7,24.4-20.7,24.4-20.7l2.2-0.3
-				c-0.4,0.8-8.9,8.9-8.9,8.9c1.4-1.2,11.4-8.9,11.4-8.9l2.1-0.6c-0.8,1-6.4,5.8-6.4,5.8l7.1-5.1l1.5-1.1c0.8-0.3,2.6-0.3,2.6-0.3
-				l-5,4.3l6.4-4.2L615.7,160.4z"/>
-			<path class="st1" d="M617.4,130.8c0.6,0.8-0.4,1.8-0.4,1.8c1.3-1.1,2.4-1.8,2.4-1.8c0.1,1.1,1.6,6.7,2.7,6.3s4-3.8,4-3.8
-				l-0.1,3.6l1.5-4.2l0.9-0.5c0,0,1.7,5.8,2.8,5.8c1.2,0,4.3-3.5,4.3-3.5l0.3,3.8c0.3-1.1,1.7-4.8,1.7-4.8c0.3,1.3,3.6,3,3.6,3
-				s0.5,5,0.9,3.8c0.3-0.9,2.1-4.2,2.1-4.2c3.8,6.5-3.1,16.5-3.1,16.5c-4.4,0-3.3-8.4-3.3-8.4c-0.1,0.7-6.1,4.9-8.9,5.3
-				c-1.9,0.3-1.1-7.8-1.1-7.8c-0.7,1.5-9.6,4.6-12.4,4.3c-2.8-0.3,1.5-7.2,1.5-7.2s-18.6,4.4-12.5-2
-				C607.8,132.5,616.7,129.9,617.4,130.8z"/>
-			<path class="st1" d="M578.5,162.6c0.3-0.2-6.8,8.3-6.8,8.3l8.2-8.2l0.8,1.5c0.9,0.9,2.2,1.4,2.2,1.4
-				c-1.8,2.3-26.7,20.4-26.7,20.4c0.8,0.6,3,1.8,3,1.8c-0.6,0.5-0.6,0.5-0.6,0.5c-2.8-0.3-4.9-1.9-4.9-1.9S564.9,172.1,578.5,162.6z
-				"/>
-			<path class="st1" d="M609.4,153.4c0,0-2.5,2.9-4.7,4.2c0,0,2.9-4.8,2.2-4.3c0,0-1.9,0.6-3.6,0.7c0,0-3.8,4.1-7.8,4.9
-				c0,0,0.3-0.3-1.2,1.7c0,0,10.2,0.3,14.8-2.9C609.2,157.7,609,155,609.4,153.4z"/>
-			<path class="st0" d="M630.1,175.1l2.1-2.8c0,0-2,0.1-3.3,0c0,0-2.6,4.3,0,5.5c0,0,3.7,0.4,5.5-1.2c0,0-1.5-2.1-1.6-3.5
-				c0,0-1.7,1.9-2.1,2.4L630.1,175.1z"/>
-			<path class="st0" d="M608.9,196.1l2.1-3.9c0,0-2.5,0.5-4.2,0.7c0,0-2.5,5.9,1.1,6.9c0,0,5.8-0.6,7.7-3c0,0-3.4-2-3.8-3.6
-				c0,0-1.8,2.8-2.2,3.5L608.9,196.1z"/>
-			<path class="st0" d="M621.8,194.8c0,0-1,4.8,2.4,5.7c0,0,4.4-0.2,6.3-2.5c0,0-2.2-3.2-2.6-4.8L621.8,194.8z"/>
-			<path class="st1" d="M613.8,150.8c0,0-0.1,7,3.2,7.2c3.3,0.2,6.7-3.4,6.7-3.4s-1.2-3.1-1.6-5.5
-				C622.1,149.1,614.8,150.8,613.8,150.8z"/>
-			<path class="st0" d="M682.7,121.4c1.7,3.6-1.4,7.1-1.4,7.1c-2.7-0.5-4.8-6.2-4.8-6.2L682.7,121.4z"/>
-			<path class="st0" d="M664.2,119.7l1.3,0.8c0.2,1.9-0.7,3.5-0.7,3.5c-1.1-0.3-1.4-1.9-1.4-1.9L664.2,119.7z"/>
-			<path class="st0" d="M685.8,120.9c0,0,2.3,4.7,4.8,5c0,0,2.1-4.6,0.4-6.8C691,119.1,687.8,120.7,685.8,120.9z"/>
-			<path class="st1" d="M663.6,251c0,0.5-5.3-0.3-8.5,0.9c-3.3,1.2-2.8-2.8,0.4-2.8S663.7,249,663.6,251z"/>
-			<path class="st1" d="M626.3,250.9c0.1,0.6-5.6-0.6-8.6,1.5s-2.8-1.7,0.3-2.3S626.1,248.4,626.3,250.9z"/>
-			<path class="st0" d="M648.5,150.8c-0.2,0,1.3-4.1,1.3-4.7c0-0.6,1.7,0.5,3.3,1C653.5,147.2,651.5,151.2,648.5,150.8z"/>
-			<path class="st0" d="M641.4,187l-7.7,2.5c0,0,0.9,5.4,2.5,7.5c0,0,3.5-0.1,8.9-5.8C645.1,191.2,641.5,188,641.4,187"/>
-			<path class="st0" d="M623.1,178.2l-6,4.4c0,0,0.4,1.3,4.4,0S623.6,180.6,623.1,178.2z"/>
-			<path class="st0" d="M646.3,154.6l-2.2,3.3c0,0,0.8,0.5,2.4-0.7S646.9,155.7,646.3,154.6z"/>
-			<path class="st1" d="M635.4,222.7c0,0-3.4,1.6-4.3-5.2c-0.9-6.8,1-9,3.1-12.1c2.1-3.2,4.5-2.7,2.4,1.3
-				C634.6,210.7,633.2,216.3,635.4,222.7z"/>
-			<path class="st1" d="M608.8,225.4c0,0-3.3,0.2-2.6-4.8s1.7-6.8,4.2-8.5c2.5-1.6,3-1.3,1.7,1.8
-				C610.7,217.2,609.4,219.9,608.8,225.4z"/>
-			<path class="st0" d="M605.3,88.5c-1.2-0.2-5,3-5,3c0.7,1.4,3.7,4,3.7,4L605.3,88.5z"/>
-			<path class="st0" d="M652.1,72.2c0,0,0-3-1.4-5.7c0,0,1.4-3.8,3.1-4.1c0,0,2.5,3.2,3.3,6.2c0,0-0.2,1.5-0.1,2.9
-				C657.1,71.4,654.4,71.1,652.1,72.2z"/>
-			<path class="st1" d="M655,122.6c0,0,2.7-6.1,4.2-9.2l-4.4-6.2L655,122.6z"/>
-			<path class="st0" d="M668.9,168.9c1-0.4,5.6-5,5.6-5c-1.9,0.5-3.7-1.8-3.7-1.8C670,163,667.9,169.4,668.9,168.9z"/>
-			<path class="st0" d="M659.4,176.8c0.6-0.2,4.6-4,4.6-4c-1.7,0.4-3.9,0-3.9,0C659.6,173.3,658.8,177.1,659.4,176.8z"/>
-			<path class="st0" d="M649.9,186.6c0.8,0.3,4.9-5.9,4.9-5.9c-2.9,2.3-6.4,3.5-6.4,3.5C648.5,185.4,648.8,186.1,649.9,186.6z"/>
-			<path class="st1" d="M655.7,81.4c0,0-0.1,1.6,0.7,1.8c0.8,0.2,1.2-2.1,1.1-2.8c-0.1-1-1-2.8-3.5-1.9s-2.6,1.2-2.1,1.9
-				C652.6,81.1,654.9,78.6,655.7,81.4z"/>
-			<path class="st1" d="M597.2,194.6l7.2-3.3c0,0-53.4,39.1-61,39.1L597.2,194.6z"/>
-			<g>
-				<g>
-					<path class="st1" d="M558,215.1c1.9-0.4,3.5-1.7,5-2.8c1.4-1.1,3.5-2.2,4.4-3.8c0.1-0.2-0.1-0.5-0.3-0.4
-						c-1.7,0.4-3.3,2.1-4.7,3.2c-1.5,1.1-3.1,2.2-4.7,3.2C557.4,214.7,557.6,215.2,558,215.1L558,215.1z"/>
-				</g>
-			</g>
-			<path class="st1" d="M544.7,220.7c0,0,23.9-24.3,26.1-25c0,0-0.7-0.3-1.1-0.7c0,0-13.2,10.9-25.4,23.2L544.7,220.7z"/>
-			<path class="st1" d="M683.4,87.5c0,0-3.7,0.2-3.4,2.6c0.3,2.5,2.6,2.7,3.4,2.5c0,0,1.7-0.1,1.9-2.5
-				C685.6,87.8,683.4,87.5,683.4,87.5z"/>
-			<path class="st1" d="M635,88.4c0,0-3.5,0.1-3.2,2.5c0.3,2.3,2.4,2.6,3.2,2.3c0,0,1.6-0.1,1.8-2.3C637,88.6,635,88.4,635,88.4z"/>
-			<path class="st1" d="M678.1,92.8c0,0-2,0.1-1.9,1.4s1.4,1.5,1.9,1.3c0,0,0.9-0.1,1.1-1.3C679.3,93,678.1,92.8,678.1,92.8z"/>
-			<path class="st1" d="M629.8,93.3c0,0-2,0.1-1.9,1.4s1.4,1.5,1.9,1.3c0,0,0.9-0.1,1.1-1.3C631,93.5,629.8,93.3,629.8,93.3z"/>
-			<path class="st0" d="M689.3,72.2c0,0-2.8-1.2-4.4-1.2c0,0,2.3-3.1,3.7-3.8C688.6,67.2,689.5,71.1,689.3,72.2z"/>
-			<path class="st0" d="M641.8,121.6c0,0,0.2,3.8,2,5.7c0,0,2.2-2.9,1.9-4.3l-1.2-2.7C644.5,120.3,642.3,121.4,641.8,121.6z"/>
-			<path class="st1" d="M588.3,152.5c-0.1,2.3,3.4,5.2,3.4,5.2c0.6,2.5-4.5,4.5-6.4,3.8c-1.9-0.7-1.2-5.3-1.2-5.3L588.3,152.5z"/>
-			<path class="st1" d="M592.3,149.8c0,0,1,3,2.5,3.1c1.5,0.1,4.2-2.6,4.2-3.1c0,0-1.4-2.5-1.2-4.8
-				C597.9,145,593.8,147.1,592.3,149.8z"/>
-			<path class="st0" d="M675.9,137.1c0,0,2.4-1.2,2.4-2.9c0,0,5.8,4.2,2.8,6C678.7,141.6,676.9,139.6,675.9,137.1z"/>
-			<path class="st0" d="M635.3,180.7c0,0,0.3,3.9,1.1,4.8c0,0,7.5-2.1,10.1-3.6c0,0-2.5-4.2-2.3-5.9
-				C644.1,176,636.4,180.9,635.3,180.7z"/>
-			<path class="st0" d="M618.9,183.2c0,0-0.8,5.4,0.8,7.2c0,0,9-1.4,11.4-2.9c0,0-1.6-2.9-1.9-5.7
-				C629.2,181.8,621.6,182,618.9,183.2z"/>
-			<path class="st0" d="M647.6,173c0,0,1.5,4.4,2.5,6.2c0,0,2.9-1.2,5.9-4.6c0,0-2.3-5.2-2.3-6.6C653.7,168.1,648.7,172.7,647.6,173
-				z"/>
-			<path class="st0" d="M613.4,118.2c0,0,3,2.2,4,2.6c0,0-2.1,3-4.7,3.2C612.6,124.1,611.6,120.7,613.4,118.2z"/>
-			<path class="st1" d="M602.8,143.8c0,0-0.1,5.7,1.6,6.4c0,0,2.6-0.1,4.8-1.2c0,0-1.3-3.1,0-5.5
-				C609.2,143.4,603.6,144.5,602.8,143.8z"/>
-			<path class="st1" d="M628.4,155.1c0,0,4.3-1.5,5.5-2.3c0,0,1.8,4.6,2.5,5.2c0,0-7,2.2-10.8,1.5
-				C625.5,159.6,628.3,156.6,628.4,155.1z"/>
-			<path class="st0" d="M656.8,164.1c0,0,1.2,5.7,4.3,5.9c3.1,0.2,4.5-5.9,4.5-5.9s-3.8-2.4-3.9-3.9
-				C661.6,160.2,658.3,164.2,656.8,164.1"/>
-			<path class="st0" d="M667.4,150.2c0,0-2.4,2.9-4,3.4c0,0,1.3,5,3.9,5.8c2.6,0.8,4.2-6.9,4.2-6.9S668.6,151.7,667.4,150.2z"/>
-			<path class="st0" d="M661.5,142.9c0,0,2.1,3,4,3.4c0,0-2.7,4.2-5.4,3.9c0,0-2.9-1.8-2.9-4.6C657.2,145.6,660.4,144.2,661.5,142.9
-				z"/>
-			<path class="st0" d="M648,160c0,0,2.6,3.4,4.6,3.3c0,0-3,3.6-5.8,3.2c0,0-3.6-1.1-2.6-4.8C644.1,161.7,647.3,160.6,648,160z"/>
-			<path class="st0" d="M640.8,165.6c0,0,3.3,3.9,4.4,4.4c0,0-3.9,4.6-7.6,3.7c0,0-2.4-4.2-0.6-7.4C637,166.4,640,166,640.8,165.6z"
-				/>
-			<path class="st0" d="M654.9,151.6c0-0.1,3.2,2.3,4.3,2.4c0,0-1.5,6.3-5.1,5.4c0,0-3.3-0.5-3.3-5.5
-				C650.9,153.9,653.4,153.6,654.9,151.6z"/>
-			<path class="st0" d="M676,142.9c0,0,3,3.9,5.8,3.7c0,0-1.9,4.3-5.3,3.7c0,0-3.8-0.2-4.5-3.4C672,146.8,675.6,144.1,676,142.9z"/>
-			<path class="st0" d="M667.9,134.1c0,0,3.2,3.5,5.4,3.9c0,0-2.5,6.1-5.3,5.4s-3.5-4.4-3.5-4.4S666.9,136.8,667.9,134.1z"/>
-			<path class="st0" d="M655.2,136.7c0,0,3.7,1.1,5,1.4c0,0-3.3,4.5-6.1,4c-2.7-0.5-2.8-4-2.8-4S654.1,137.5,655.2,136.7z"/>
-			<path class="st0" d="M630.7,123.5c0,0,5.6-0.5,7.1-1.3c0,0-0.5,6.5-3.5,8.1C634.3,130.3,630.7,128.3,630.7,123.5z"/>
-			<path class="st0" d="M668.5,120.9l5.3,1.3c0,0,1.1,4.6-1.8,7.2C672,129.4,668.6,126.6,668.5,120.9z"/>
-			<path class="st0" d="M621.2,121.8c0,0,3.4,1.8,6,1.6c0,0-0.2,3.6-3.2,5.5C624,128.9,621.7,126.1,621.2,121.8z"/>
-			<path class="st0" d="M673.9,158.5c0,0,2.5,1.7,3.8,1.7c0,0,3.4-4.2,3.6-5.6c0,0-4.5,1-5.5,0.2
-				C675.9,154.8,675.4,157.6,673.9,158.5z"/>
-			<path class="st0" d="M693.5,118.2c0,0,3-1.5,4.5-3c0,0,2.7,3.2,1.7,6.2C699.7,121.4,696.2,121.7,693.5,118.2z"/>
-			<path class="st0" d="M610.7,115.5c0,0-2.8-3-3.4-4.7c0,0-1.8,2.5-2,6.1C605.3,116.9,609.5,116.5,610.7,115.5z"/>
-			<path class="st5" d="M587.9,220.8c0,0,50.5-48.8,56.6-64.7c0,0-52.2,53-75.1,62.5L587.9,220.8z"/>
-		</g>
-		<path class="st0" d="M628.7,70.7c0,0,4.1,0.2,5.6,0.7c0,0-1.9-5.1-3.9-6.3C630.4,65.1,628.4,68.1,628.7,70.7z"/>
-		<path class="st0" d="M607.5,83.2c0,0,3.3-5.5,5.1-6.2c0,0-5.5,0.4-6.4,0.5C606.2,77.5,606.5,82.7,607.5,83.2z"/>
-		<path class="st0" d="M616.9,74.5c0,0,1.3-1.6,6.2-3.1c0,0-3.5-2.2-5.2-3.1C617.9,68.4,616.8,72.4,616.9,74.5z"/>
-		<path class="st0" d="M694.1,74.6c0,0,4.6,2.8,5.2,4.2c0,0,0.7-5.3,0.6-6.6C699.9,72.2,696.7,72.5,694.1,74.6z"/>
-		<path class="st0" d="M702.7,108.3c0,0-1.8,3.8-3,4.3c0,0,1.8,3.5,5.9,1.4C705.6,114.1,706.2,110.4,702.7,108.3z"/>
-		<path class="st0" d="M703.9,105.3c0,0,3.4-0.1,5.8-0.8c0,0-1.9-4-3.9-5.3C705.8,99.2,704.9,103.1,703.9,105.3z"/>
-		<path class="st0" d="M704.6,90.1c0,0,1.5,4,1,6.4c0,0,3.8-1.5,5.3-3.6C710.9,92.8,707.8,90.2,704.6,90.1z"/>
-		<path class="st0" d="M701.6,82c0,0,1.9,2.7,2.6,4.6c0,0,2.6-3,3.5-4.7C707.7,82,704.1,81.4,701.6,82z"/>
-		<path class="st0" d="M662.4,75.7c0,0,4.1-2.9,6.9-4.5c0,0-1.3-3.9-4.9-6.5C664.5,64.7,661.1,68,662.4,75.7z"/>
-		<path class="st0" d="M673.3,70.3c0,0,2.9-0.2,6.1,0c0,0,0.4-3.7-2.1-6.3C677.4,64,674.7,66,673.3,70.3z"/>
-		<path class="st0" d="M605.8,106.6c0,0-1.8-5.1-1.6-6.5c0,0-3.1,3.1-4.3,5C599.9,105.1,603.3,107,605.8,106.6"/>
-		<path class="st0" d="M639.5,72.5c0,0,5.4,1.3,7.8,2.3c0,0-2.2-7.1-5.1-10.1C642.2,64.7,639.1,69,639.5,72.5z"/>
-	</g>
-</g>
-</svg>

File diff suppressed because it is too large
+ 0 - 72
testnets/athens/img/athens-cover_new.svg


+ 0 - 337
testnets/constantinople/README.md

@@ -1,337 +0,0 @@
-<img src="img/constantinople-cover.svg"/>
-
-<div align="center">
-  <h3>
-    <a href="specification/README.md">
-      Specification
-    </a>
-  </h3>
-</div>
-
-Table of Contents
-=================
-<!-- TOC START min:1 max:3 link:true asterisk:false update:true -->
-- [Overview](#overview)
-- [Specification](#specification)
-- [Goals](#goals)
-- [Resources](#resources)
-- [Release Plan](#release-plan)
-  - [Name](#name)
-  - [Team & Responsibilities](#team--responsibilities)
-  - [Project Management](#project-management)
-  - [Manager](#manager)
-    - [Github Projects](#github-projects)
-  - [Release Date](#release-date)
-    - [Approach](#approach)
-- [Tasks](#tasks)
-  - [Runtime Development](#runtime-development)
-  - [Pioneer](#pioneer)
-  - [Operations](#operations)
-    - [Fiat backed token model](#fiat-backed-token-model)
-    - [Gated faucets](#gated-faucets)
-    - [KPIs](#kpis)
-    - [Release](#release)
-    - [Communication](#communication)
-  - [Total](#total)
-  - [Milestones](#milestones)
-<!-- TOC END -->
-
-# Overview
-
-During the planning stages of a new testnet, we produce a new release plan.
-
-As with previous releases, the managing and tracking progress towards the end of [Rome](/testnets/rome) became an issue. This lead to the conclusion of targeting smaller, incrimental releases, and the return of the github kanban boards.
-
-# Specification
-
-TBD
-
-# Goals
-1. Launch new proposal system.
-2. Launch new fiat backed token model.
-3. Launch in less than 6? weeks from start.
-4. Low overhead progress & prioritisation management using Github projects.
-
-# Resources
-- Early proposal system spec: https://github.com/Joystream/joystream/issues/161
-- Token Model: https://github.com/Joystream/joystream/issues/171
-- Preliminary Pioneer user stories: https://github.com/Joystream/joystream/issues/180
-
-# Release Plan
-
-This Release Plan is considered "final" once merged to master, and anything below this will *not* be changed despite changing circumstances.
-
-## Name
-
-`Rome`
-
-## Team & Responsibilities
-
-- Shamil: runtime
-
-- Alex: front-end + tooling
-
-- Mokhtar: runtime + tooling
-
-- Ben: communication + testing + support
-
-- Martin: release management + tokenomics + KPIs + tooling + testing
-
-- Bedeho: tokenomics + review
-
-## Project Management
-
-The main goal of the management style outlined here is to allow us to better detect whether we in total are on track to hit our required milestones, and if not, where we need to change priorities with regards to features or manpower. All with minimal person to person coordination effort.
-
-## Manager
-
-`Martin`
-
-### Github Projects
-
-- [Runtime](https://github.com/orgs/Joystream/projects/10)
-- [Pioneer](https://github.com/orgs/Joystream/projects/12)
-- [Operations](https://github.com/orgs/Joystream/projects/13)
-
-## Release Date
-
-`11.05.20`
-
-### Approach
-
-The basic approach will be to have a set of Kanban board style Github project, where all work lives as an issue. After a process where each high level, initial task below is inspected by the assigned person, that task is broken down to one or more issues, and each issue is given a time estimate. After this, the assigned person, the `release manager`, and any other people involved, ensures that we are left with a complete set of issues that combined covers what is needed to reach the goals above. This should ensure that all tasks are addressed from all angles, namely the `runtime`, `pioneer` and `operations`.
-
-Each issue must be narrow and precise enough that:
-
-- There is exactly one assigned person.
-
-- It is expected to take no more than **12 hours** of focused work to complete.
-
-If the assigned person finds him or herself spending more than this amount of time an issue, then decompose the issue into a set of smaller more precise issues, possibly partially assigned to other people, and close the initial issue with a comment about what was done.
-
-
-#### In-flight
-
-- When writing in daily standup, each entry that has to do with Constantinople _must_ link to an issue.
-
-- Before starting work on an issue, move it into `In Progress`.
-
-- Any PR opened must reference the relevant issue(s) being addressed.
-
-- When PR is completed, close both underlying issue and PR.
-
-#### Detecting overruns (release manager)
-
-Every week, the `release manager` will do as follows for each project above.
-
-- Compute the total number of hours completed.
-
-- Compute the total number of hours remaining.
-
-- Roughly divide the hours remaining among the assigned individuals.
-
-- Compare the largest workload to the remaining time to the most immediate milestone affecting this project.
-
-- If we are overrunning badly (>30%), alert relevant parties, and reevaluate priorities. If we are only mildly reevaluating (<10%), then make a note of this for next week, and if this is the second week in a row there is a mild overrun, then again alert relevant parties for reevaluation.
-
-# Tasks
-
-## Runtime Development
-**Issues created: 37**
-**Estimated hours: 300**
-
-- Complete proposal engine (shamil)
-
-- Proposal discussion system (shamil)
-
-- Update storage module to make these adjustable by SUDO: count & staking limit & reward (shamil)
-
-- Update content working group to make these adjustable by SUDO: update reward & staking limit & hiring constraint fields (shamil)
-
-- Add explicit reward for council members: https://github.com/Joystream/substrate-runtime-joystream/issues/148 8 (shamil)
-
-- Implement proposal logic for changing runtime parameters (shamil)
-
-  - Validator count.
-
-  - Validator base reward.
-
-  - Storage provider count.
-
-  - Storage provider reward.
-
-  - Storage provider staking limit.
-
-  - Content Curator reward.
-
-  - Content Curator staking limit.
-
-- Implement proposal logic for updating runtime: only a hard coded member can submit! (shamil)
-
-- Implement proposal logic for evicting a storage provider (shamil)
-
-- Implement proposal logic for spending proposal, also fix this: https://github.com/Joystream/substrate-runtime-joystream/issues/158 (shamil)
-
-- Define proposal type parameters. (martin)
-
-- Migration logic from Rome: We need to reset all, or some balances, however, this will disrupt all the stakes of people involved in various roles (council, validation, storage, curators, etc.) and also stakes of voters currently staking. A strategy is needed. One approach is to kick everyone out of all roles, except a single validator and storage provider that we run? More thinking is needed. (mokhtar)
-
-## Pioneer
-**Issues created: 25**
-**Estimated hours: 86**
-
-- User stories (bedeho)
-
-- Task flows (alex)
-
-- Wireframes (alex)
-
-- Implement components in Storybook (alex)
-
-- Introduce in UI in Pioneer (alex)
-
-- Integrate with runtime (alex)
-
-## Operations
-**Issues created: 32**
-**Estimated hours: 282**
-
-### Fiat backed token model
-
-**Estimated hours: 63**
-
-- An integrated model, e.g. in Excel, for how to set nominal (tJOY) runtime variables, given policy  and runtime variables. Is meant to be used by Jsgenesis to actually set initial policy and runtime variables, but also by council to set runtime variables over time. Not sure if tool should include dynamics, or just static t=0 state. Should also give insight into how attractive different positions will be under a given scenario, in order to aid calibration in-flight. (martin, ben)
-
-- Actual initial policy variable values. (martin, ben)
-
-- Actual runtime variable values. (martin, ben)
-
-- A public tokenomics page that covers (ben)
-
-  - Current exchange rate / price.
-
-  - All current policy variable values, and a history of past values.
-
-  - Record of all adjustments to reward pool, with date and rationale, and links to full reviews of KPI performance payouts.
-
-
-### Gated faucets
-
-**Estimated hours: 39**
-
-- Bounties:
-
-  - How to make list?
-
-  - How to price?
-
-  - How to give users awareness of current bounties?
-
-- Mailing List: How much?
-
-- Existing Memberships: How much?
-
-- Spend to charity:
-
-  - What charities to accept?
-
-  - How is spending proven?
-
-  - How to avoid abuse?
-
-  - What is reward policy?
-
-- Any other sort of faucet? (martin, ben)
-
-### KPIs
-
-**Estimated hours: 114**
-
-#### Funding proposal KPI
-
-- KPI parameter values. (martin, ben)
-
-- A format in which funding proposals must be written in for council to accept and Jsgenesis to finance. (martin, ben)
-
-- A format for summarising evaluation of performance of KPIs. (martin, ben)
-
-- A policy guideline on what must absolutely NOT be funded. (martin, ben)
-
-#### Content publication KPI
-
-- KPI parameter values. (martin, ben)
-
-- Define acceptable licenses. (martin, ben)
-
-- Provide example links. (martin, ben)
-
-#### Content curation KPI
-
-
-- KPI parameter values. (martin, ben)
-
-#### Storage benchmark KPI
-
-
-- KPI parameter values. (martin, ben)
-
-- Storage benchmarking tool finalisation. (alex)
-
-- Run tests in test environment (ben, martin)
-
-- Create benchmarking KPI and run tests in test environment (ben, martin)
-
-#### Block production KPI
-
-- KPI parameter values. (martin, ben)
-
-- Validator load/DoS script finalisation. (mokhtar)
-
-- Run tests in test environment. (ben, martin)
-
-- Create validator benchmark. (martin, ben)
-
-### Release
-
-**Estimated hours: 27**
-
-- Make test protocol, including actual upgrade step. (martin)
-
-- Conduct test protocol. (martin, ben)
-
-### Communication
-
-**Estimated hours: 39**
-
-- Communication strategy: We need to draw the attention of a lot of different actors, both to the initial announcement and launch, but also to important events like new KPIs or other critical policy changes. How and when is this done? (ben, martin)
-
-- New branding creation (ben)
-
-- New network website: what metrics should be tracked? perhaps more targeting the new stuff? (ben)
-
-- Announcements on blog & newsletter(s)
-
- - Network announcement: explains new incentive model etc.
-
- - Network release
-
-
-## Total
-
-Per 26.03.20, this comes to a total of:
-**Issues created: 37+25+32=94**
-**Estimated hours: 300+86+282=668**
-
-## Milestones
-The table below includes the initial milestone dates only. Go [here](https://github.com/Joystream/joystream/issues/205) for live milestones, and more details.
-
-| Date   |   Event                        |  Involved                    |
-|:------:|:------------------------------:|:----------------------------:|
-|03.04.20|Constantinople Announced        | Ben, Martin                  |
-|14.04.20|Implement "Key" Proposals       | Alex, Francesco, Shamil      |
-|21.04.20|Implement "Important" Proposals | Alex, Francesco, Shamil      |
-|24.04.20|All Paramaters Set              | Bedeho, Ben, Martin          |
-|29.04.20|Complete Sub-system Test        | All                          |
-|05.05.20|Complete Final Test             | All                          |
-|08.05.20|Launch Ready                    | All                          |
-|11.05.20|Release                         | All                          |

+ 0 - 17
testnets/constantinople/branding/README.md

@@ -1,17 +0,0 @@
-# Table of contents
-
-<!-- TOC START min:1 max:3 link:true asterisk:false update:true -->
-- [Table of contents](#table-of-contents)
-  - [Name](#name)
-  - [Naming Rational](#naming-rational)
-  - [Logomark](#logomark)
-<!-- TOC END -->
-
-## Name
-`Rome`
-
-## Naming Rational
-
-## Logomark
-
-<p align="center"><img src="img/constantinople-logomark.png"></p>

BIN
testnets/constantinople/branding/img/constantinople-logomark.png


File diff suppressed because it is too large
+ 0 - 17
testnets/constantinople/img/constantinople-cover.svg


+ 0 - 2
testnets/constantinople/specification/README.md

@@ -1,2 +0,0 @@
-Constantinople Testnet Specification
-==

File diff suppressed because it is too large
+ 0 - 0
testnets/img/testnets.svg


File diff suppressed because it is too large
+ 0 - 120
testnets/img/testnets_new.svg


+ 0 - 176
testnets/rome/README.md

@@ -1,176 +0,0 @@
-<img src="img/rome-cover_new.svg"/>
-
-<div align="center">
-  <h3>
-    <a href="specification/README.md">
-      Specification
-    </a>
-  </h3>
-</div>
-
-Table of Contents
-=================
-<!-- TOC START min:1 max:3 link:true asterisk:false update:true -->
-- [Overview](#overview)
-- [Specification](#specification)
-- [OKR results](#okr-results)
-- [Release Plan](#release-plan)
-  - [Name](#name)
-  - [Manager](#manager)
-  - [Release Date](#release-date)
-  - [Release OKRs](#release-okrs)
-    - [Objective: `Introduce a Better Content System`](#objective-introduce-a-better-content-system)
-    - [Objective: `Engage community to understand Rome and join us in the future`](#objective-engage-community-to-understand-rome-and-join-us-in-the-future)
-  - [Tracking Issues](#tracking-issues)
-  - [Milestones](#milestones)
-  - [Deployment](#deployment)
-<!-- TOC END -->
-
-# Overview
-
-During the planning stages of a new testnet, we produce a new release plan.
-
-While working on [Acropolis](/testnets/acropolis), we decided to abandon the approach of creating a single `Release Project` kanban board on GitHub. These quickly became bloated, and created more confusion than value. We instead created [Tracking Issues](#tracking-issues) for the two major component of the release - the [forum](https://github.com/Joystream/joystream/issues/47) and the [storage node](https://github.com/Joystream/joystream/issues/57). These made it far simpler to get a good grasp of completed and outstanding items at a high level.
-
-After the [Acropolis Lessons Learned Meeting](/meetings/acropolis#lessons-learned), and thinking about our approach to project management and progress tracking, we have decided to expand on this concept. The release plan will no longer contain a "todo" list, but instead link to "live" [Tracking Issues](#tracking-issues) covering all aspects and actions of the release. Each of these will be as contained as they can, to avoid the need for all team members to be present and listening to in-depth technical and organizational conversations outside of their scope.
-
-#  Specification
-
-TBD
-
-# OKR results
-
-This section will only include the final grading after network release. The release OKRs can be found [here](#release-okrs), and you can track our progress [here](/okrs#release-okrs).
-
-# Release Plan
-
-This Release Plan is considered "final" once merged to master, and anything below this will *not* be changed despite changing circumstances.
-
-## Name
-
-`Rome`
-
-## Manager
-
-`Martin`
-
-## Release Date
-
-04.11.19, 11:00 (GMT+2)
-
-## Release OKRs
-
-### Objective: `Introduce a Better Content System`
-- **Active from:** 20.08.19
-- **KR Measurement Deadline**: 7 days after Rome launch
-- **Tracked**: Every Tuesday
-- **Tracking Manager**: Martin
-- **Key Results**:
-  1. `Members can make a Content Creator profile and publish content under this profile.`
-
-  2. `Introduce the role of staked Content Curators, policed by sudo.`
-
-  3. `Launch with 3 content types.`
-
-  4. `Add 1 new content type after release.`
-
-  5. `Add a new schema for a content type, and migrate only some instances to the new schema.`
-
-<br />
-
-
-### Objective: `Engage the community to understand Rome and join us in the future`
-- **Active from:** 20.08.19
-- **KR Measurement Deadline**: 7 days after Rome launch
-- **Tracked**: Every Tuesday
-- **Tracking Manager**: Martin
-- **Key Results**:
-
-  1. `20 Content Creator profiles which add at least one content item.`
-
-  2. `Get 5 active Content Curators.`
-
-  3. `At least 20 items for each content type enabled at launch.`
-
-  4. `At least 500 items in total across all content types.`
-
-<br />
-
-#### OKR Notes
-
-##### Specific
-* [Technical OKR](#objective-introduce-a-better-content-system)
-  * `1.` A member can create multiple "Content Creator" profiles associated with their membership ID.
-  * `3. - 5.` The content types and schemas must be understood by both the runtime and pioneer.
-
-* [Community OKR](#objective-engage-community-to-understand-rome-and-join-us-in-the-future)
-  * `2.` "Active" means Content Curators that are not fired as a result of not following their responsibilities.
-  * `3. & 4.`: Content "items" means the number of entries in the content directory, not the data objects associated with the entry.
-
-##### General
-* For the previous testnet, we have tried making each KR be a mix of pure technical implementation, and community engagement in one single release OKR. This lead to:
-  * confusion during tracking
-  * unclear responsibilities and primary focus (ie. make it work, or make it user friendly)
-  * ambiguity around time and deadlines
-  * disappointment when the technical work has been completed, but "marketing" failed due to time or unrealistic numbers
-  * subjective/changing final grading to counter above point
-* For these reasons, we have decided on a new approach:
-  * separate the technical and community in two Release OKRs
-  * make all KRs as clear, unambiguous and objective as possible (for grading)
-  * make the tracking less subjective (as we have numbers from Tracking Issues as guides, not just the assigned individuals guesstimate)
-
-<br />
-
-Go [here](/okrs#release-okrs) for tracking.
-
-## Tracking Issues
-
-The purpose and workflow of Tracking Issues can be found [here](/README.md#tracking-issues)
-
-  - [1. New Infrastructure Runtime Modules](https://github.com/Joystream/joystream/issues/95)
-  - [2. Media System (Static Parts)](https://github.com/Joystream/joystream/issues/96)
-  - [3. Media System (Dynamic Parts)](https://github.com/Joystream/joystream/issues/97)
-  - [4. Post-Release Media System Changes](https://github.com/Joystream/joystream/issues/98)
-  - [5. Launch New Substrate Chain](https://github.com/Joystream/joystream/issues/99)
-  - [6. Community Engagement Marketing](https://github.com/Joystream/joystream/issues/100)
-  - [7. Operations and Standalone Tasks](https://github.com/Joystream/joystream/issues/101)
-  - [8. Release/Launch Operations](https://github.com/Joystream/joystream/issues/102)
-
----
-
-## Milestones
-
-The purpose and workflow of Milestones can be found [here](/README.md#milestones)
-
-|    Date   |   Event                           |     Involved                   |
-|:---------:|-----------------------------------|:------------------------------:|
-| 22.08.19  | Rome Announced                    |  Martin, Bedeho, Elpassion     |
-| 26.08.19  | Working Specs                     |  Alex, Bedeho, Mokhtar         |
-| 14.10.19  | Produce Sub-System Test Checklist | All                            |
-| 18.10.19  | Perform Sub-system Test           | All + 2x testers               |
-| 21.10.19  | Produce Final Test Checklist      | All                            |
-| 25.10.19  | Perform Final Test                | Martin, Mokhtar + 3x testers   |
-| 28.10.19  | Produce Release Checklist         | All                            |
-| 28.10.19  | Snapshot and kill Acropolis       | All                            |
-| 01.11.19  | Launch Ready                      | All                            |
-| 04.11.19  | Release                           | All                            |
-
-Go [here](https://github.com/Joystream/joystream/issues/103) for status and updated dates.
-
----
-
-## Deployment
-
-Start a fresh chain, with a new genesis block and joystream-node binary.
-
-Built from a more recent version of the [substrate](https://github.com/paritytech/substrate) node template.
-
-**Transferring of the following:**
-- Memberships
-- Forum Posts
-
-All `keys` stored locally in the browser of each user will still work (though the balance will not be transferred).
-In practice, this means all `keys` associated with a `member` will still have the following qualities:
-
-- Posts on the `forum` can still be edited by the `member` that made the post.
-- All `members` will be allocated a small balance in the genesis block to allow them to post on the `forum` and upload `content`.

+ 0 - 20
testnets/rome/branding/README.md

@@ -1,20 +0,0 @@
-# Table of contents
-
-<!-- TOC START min:1 max:3 link:true asterisk:false update:true -->
-- [Table of contents](#table-of-contents)
-  - [Name](#name)
-  - [Naming Rational](#naming-rational)
-  - [Logomark](#logomark)
-<!-- TOC END -->
-
-## Name
-`Rome`
-
-## Naming Rational
-With `Sparta`, `Athens` and `Acropolis`, we have built a basic, but functional governance and media/content distribution system.
-
-Rome was initially intended to be a broad release, with a wide scope and with a longer release cycle. Thus it makes sense to "leave" ancient Greece, and move to another important location in the evolution of democratic principles and the rule of law. After the process outlined in the [Release Plan](/testnets/rome/README.md#overview), the scope was narrowed, but it will still be substantial step for Joystream.
-
-## Logomark
-
-<p align="center"><img src="img/rome-logomark.png"></p>

BIN
testnets/rome/branding/img/rome-logomark.png


File diff suppressed because it is too large
+ 0 - 0
testnets/rome/img/rome-cover.svg


File diff suppressed because it is too large
+ 0 - 6
testnets/rome/img/rome-cover_new.svg


+ 0 - 337
testnets/rome/specification/README.md

@@ -1,337 +0,0 @@
-Rome Testnet Specification
-==========================
-
-## Document
-
-The purpose of this document is to serve as a starting point for the implementation phase of the given testnet. It is only a starting point in the sense that the implementation effort will always depart from the up front specification to some, possibly substantial, extent, but no effort is made to synchronise the specification at any time. Instead, the any such synchronisation would be done in the specification of a future network. The value of such a specification is primarily to establish a relatively precise shared understanding among all contributors to a testnet release.
-
-## Caveat
-
-Parts of the specification are not well harmonised with the rest, in particular the storage system, due to time constraints. Read graciously, this will be resolved later. Also, a substantial number of modules are not yet specced, as already implemented modules from prior testnets are being reused. Full specs will eventually be available as future networks are released where changes are made to these modules. Lastly, a number off communication protocols are not captured in this spec due to time constraints, they will be introduced for later networks.
-
-## Glossary
-
-- **Substrate:** A blockchain SDK, used for this testnet, that abstracts away concerns about consensus and p2p communication.
-
-- **Runtime:** Application specific consensus code written for the Substrate SDK. Includes state and transaction rules specific to the application, but excludes consensus algorithm and p2p networking.
-
-- **Substrate Module:** A substrate runtime is partitioned into functionality integrated units, called modules, which have their own local state, transaction types and events.
-
-- **SRML:** Substrate standard runtime library (SRML), is a set of highly reusable Substrate modules.
-
-- **AURA:** Component of consensus responsible for block authoring.
-
-- **GRANDPA:** Component of consensus responsible for block finality.
-
-<!--
-## Format
-
-[Read here to understand the format of this specification.](specification-format.md)
-
--->
-
-## Overview
-
-### Roles
-
-This testnet includes the following roles
-
-1. **Curator (NEW)**: A worker role, which is open, staked and rewarded, which gives administrative access to the new content directory being launched.
-2. **Curator Lead (NEW)**: A worker role which gives responsibility to hire, fire and administrate the current set of curators. Currently set to be occupied by Core team trusted actor in this release, hence not staked or rewarded.
-3. **Validator**: Block producer and validator.
-4. **Council Member:** Council participant, currently only involved in voting on runtime upgrades.
-5. **Storage Provider**: Does storage and distribution of content, peer provider synchronisation, as well as upload liaison.
-6. **Forum Moderator**: A single actor role for managing the new on-chain forum.
-
-### Functionality
-
-#### Content Directory
-
-A new model for the organisation and operation of the content directory is introduced. The underlying representation is made into a type safe, versioned, linked structured data object store. A new permission system is introduced to model basic write control that mirrors the sort of objects and relationships we expect to capture. Lastly, the first working group is introduced, for organising the collaboration of the curators for the content directory.
-
-Read the relevant module specifications for more information.
-
-### Working Group Runtime Modules
-
-A set of new modules, as well as some changes to the existing membership module, are introduced, and these lay the foundations for how we see us organising the runtime side of our working groups in the future. A first working group is also deployed, namely the curation working group. These modules are written to be very general purpose, hopefully useful in other runtimes in the future. They are
-
-1. **Minting:** Transferrable capacity constrained token minting.
-2. **Recurring Rewards:** Recurring periodic minting of rewards for recipients.
-3. **Staking:** Managed staking, unstaking and slashing.
-4. **Hiring:** Hiring lifecycle management.
-
-We hope that experience will show us how to factor out a reusable working group module itself in the future.
-
-### Blockchain
-
-A new chain is launched, where we will use a genesis state that transfers memberships, accounts and the forum, from the Acropolis testnet at some announced block height.
-
-We also move to use the Substrate 2.0 framework.
-
-## Substrate Runtime
-
-### Runtime Version
-
-- **spec_name:** `joystream-node`
-- **impl_name:** `joystream-node`
-- **authoring_version:** `6`
-- **spec_version:** `5`
-- **impl_version:** `0`
-- **apis:** `RUNTIME_API_VERSIONS`
-
-### Native Version
-
-- **runtime_version:** [Runtime Version](#runtime-version)
-<!-- - **can_author_with:** Default::default() -->
-
-### Substrate Version
-
-`2.0`
-
-### Modules
-
-These are the Joystream specific modules, for each module, there is either a link to a module specification document, or no link, for already implemented modules (see [caveat](#caveat)). Standard configurations, for example based on values from the System module, are omitted.
-
-An integrated explanation of the modules constituting the storage system is found [here](runtime/storage-modules.md).
-
-#### TokenMint
-
-- **Description**: Transferrable capacity constrained token minting.
-- **Specification**: [**READ HERE**](runtime/token-mint-module.md)
-- **Status:** New.
-- **Configuration:**
-  - _TokenMintId_: `u64`
-
-#### RecurringReward
-
-- **Description**: Recurring periodic minting of rewards for recipients.
-- **Specification**: [**READ HERE**](runtime/recurring-reward-module.md)
-- **Status:** New.
-- **Configuration:**
-  - _RecipientId_: `u64`
-  - _RewardRelationshipId_: `u64`
-  - _PayoutStatusHandler_: `()`
-
-#### Staking
-
-- **Description**: Managed staking, unstaking and slashing.
-- **Specification**: [**READ HERE**](runtime/staking-module.md)
-- **Status:** New.
-- **Configuration:**
-  - _StakeId_: `u64`
-  - _SlashId_: `u64`
-
-#### Hiring
-
-- **Description**: Hiring lifecycle management.
-- **Specification**: [**READ HERE**](runtime/hiring-module.md)
-- **Status:** New.
-- **Configuration:**
-  - _OpeningId_: `u64`
-  - _ApplicationId_: `u64`
-
-#### VersionedStore
-
-- **Description**: A versioned linked data store.
-- **Specification**: [**READ HERE**](runtime/versioned-store.md)
-- **Status:** New.
-- **Configuration:**
-  - _ClassId_: `u64`
-  - _EntityId_: `u64`
-
-#### VersionedStorePermissions
-
-- **Description**: A flexible permission system for writing to the versioned store.
-- **Specification**: [**READ HERE**](runtime/versioned-store-permissions.md)
-- **Status:** New.
-- **Configuration:**
-  - _GroupMembershipChecker_: Implemented by `ContentDirectoryWorkingGroup`
-
-#### ContentDirectoryWorkingGroup
-
-- **Description**: A working group for the content directory.
-- **Specification**: [**READ HERE**](runtime/content-directory-working-group.md)
-- **Status:** New.
-- **Configuration:**
-  - _PermissionGroupId_: `u64`
-
-#### Forum
-
-- **Description**: An on-chain discussion forum for members.
-- **Specification**: [**READ HERE**](runtime/forum-module.md)
-- **Status:** Unchanged from Acropolis.
-- **Configuration:**
-  - _ForumUserRegistry_: Proxy call to `get_profile` on [Membership](#membership) module.
-
-#### Proposals
-
-- **Description**: Proposal system, currently only supports runtime upgrades.
-- **Specification**: [**NA**](#)
-- **Status:** Unchanged from Acropolis.
-- **Configuration:**
-  - _Members_ : [Membership](#membership) module.
-
-#### CouncilElection
-
-- **Description**: Council election manager for council system.
-- **Specification**: [**NA**](#)
-- **Status:** Unchanged from Acropolis.
-- **Configuration:**
-  - _CouncilElected_: [Council](#council) module
-  - _Members_: [Membership](#membership) module.
-
-#### Council
-
-- **Description**: Council system.
-- **Specification**: [**NA**](#)
-- **Status:** Unchanged from Acropolis.
-- **Configuration:**
-  - _CouncilTermEnded_: [CouncilElection](#councilelection) module.
-
-#### Memo
-
-- **Description**: Account based public message field.
-- **Specification**: [**NA**](#)
-- **Status:** Unchanged from Acropolis.
-- **Configuration:** Standard only.
-
-#### Membership
-
-- **Description**: Membership registry.
-- **Specification**: [**NA**](#)
-- **Status:** Updated
-- **Configuration:**
-  - _RoleActorId_: `u64`
-  - _MemberId_: `u64`
-  - _PaidTermId_: `u64`
-  - _SubscriptionId_: `u64`
-
-#### Discovery
-
-- **Description**: Host resolution system for public keys.
-- **Specification**: [**READ-HERE**](runtime/discovery-module.md)
-- **Status:** Unchanged from Acropolis.
-- **Configuration:**
-  - _Roles_: Shim trait which enables account lookup and by proxying to [Actors](#actors) module. Keeping this brief, since it will change.
-
-#### Migration
-
-- **Description**: Runs migration & initialisation routines after on-chain upgrade from past testnet (Acropolis).
-- **Specification**: [**NA**](#)
-- **Status:** Missing.
-- **Configuration:** Standard only.
-
-#### Actors
-
-- **Description**: Staking manager for storage system.
-- **Specification**: [**READ HERE**](runtime/actors-module.md)
-- **Status:** Unchanged from Acropolis.
-- **Configuration:**
-  - _Members_: [Membership](#membership) module.
-  - _OnActorRemoved_: Proxy call to `remove_account_info` on [Discovery](#discovery).
-
-#### DataObjectTypeRegistry
-
-- **Description**:
-- **Specification**: [**READ HERE**](runtime/data-object-type-registry-module.md)
-- **Status:** Unchanged from Acropolis.
-- **Configuration:**
-  - _DataObjectTypeId_: `u64`
-
-#### DataDirectory
-
-- **Description**:
-- **Specification**: [**READ HERE**](runtime/data-directory-module.md)
-- **Status:** Unchanged from Acropolis.
-- **Configuration:**
-  - _ContentId_: `primitives::H256`
-  - _SchemaId_: `u64`
-  - _Members_: [Membership](#membership) module.
-  - _Roles_: same as `Roles` configuration of [Discovery](#discovery) module.
-  - _IsActiveDataObjectType_: [DataObjectTypeRegistry](#dataobjecttyperegistry)
-
-#### DataObjectStorageRegistry
-
-- **Description**:
-- **Specification**: [**READ HERE**](runtime/data-object-storage-registry-module.md)
-- **Status:** Unchanged from Acropolis.
-- **Configuration:**
-  - _DataObjectStorageRelationshipId_: `u64`
-  - _Members_: [Membership](#membership) module.
-  - _Roles_: same as `Roles` configuration of [Discovery](#discovery) module.
-  - _ContentIdExists_: [DataDirectory](#datadirectory)
-
-#### DownloadSessions
-
-- **Description**: Manages download sessions in storage system.
-- **Specification**: [**NA**](#)
-- **Status:** Not used.
-- **Configuration:**
-  - _DownloadSessionId_: `u64`
-  - _ContentHasStorage_: [DataObjectStorageRegistry](#dataobjectstorageregistry)
-
-### SRML Modules
-
-These modules are part of the runtime, but are already implemented part of the SRML.
-
-- **System**: The system module provides low-level access to core types and cross-cutting utilities.
-- **Timestamp**: The Timestamp module provides functionality to get and set the on-chain time.
-- **Consensus**: The consensus module manages the authority set for the native code.
-- **Aura**: The Aura module extends Aura consensus by managing offline reporting.
-- **Indices**: An index is a short form of an address. This module handles allocation of indices for a newly created accounts.
-- **Balances**: The balances module provides functionality for handling accounts and balances.
-- **Session**: Is told the validators and allows them to manage their session keys for the consensus module.
-- **Staking**: The staking module is the means by which a set of network maintainers (known as _authorities_ in some contexts and _validators_ in others) are chosen based upon those who voluntarily place funds under deposit.
-- **Sudo**: The sudo module allows for a single account (called the "sudo key") to execute dispatchable functions that require a `Root` call or designate a new account to replace them as the sudo key.
-- **Grandpa**: This manages the GRANDPA authority set ready for the native code.
-
-### Runtime APIs
-
-The runtime implements the following set of APIs.
-
-#### [Core](https://crates.parity.io/substrate_client/runtime_api/trait.Core.html)
-
-- **version**: Return [Runtime Version](#runtime-version)
-- **execute_block**: Executive module `execute_block` routine.
-- **initialize_block**: Executive module `initialize_block` routine.
-- **authorities**: Executive module `apply_extrinsic` routine.
-
-#### [Metadata](https://crates.parity.io/substrate_client/runtime_api/trait.Metadata.html)
-
-- **metadata**: Runtime `metadata` routine.
-
-#### [BlockBuilder](https://crates.parity.io/substrate_client/block_builder/api/trait.BlockBuilder.html)
-
-- **apply_extrinsic**: Executive module `apply_extrinsic` routine.
-- **finalize_block**: Executive module `finalize_block` routine.
-- **inherent_extrinsics**: `create_extrinsics` routine on inherent data.
-- **check_inherents**: Inherent `check_extrinsics` routine on block.
-- **random_seed**: System module `random_seed` routine.
-
-#### [TaggedTransactionQueue](https://crates.parity.io/substrate_client/runtime_api/trait.TaggedTransactionQueue.html)
-
-- **validate_transaction**: Executive module `validate_transaction` routine.
-
-#### [OffchainWorkerApi](https://crates.parity.io/substrate_offchain/trait.OffchainWorkerApi.html)
-
-- **offchain_worker**: Executive module `offchain_worker` routine.
-
-#### [GrandpaApi](https://crates.parity.io/substrate_finality_grandpa_primitives/trait.GrandpaApi.html)
-
-- **grandpa_pending_change**, **grandpa_forced_change**, **grandpa_authorities**: Default.
-
-#### [AuraApi](https://crates.parity.io/substrate_consensus_aura/trait.AuraApi.html)
-
-- **slot_duration**: Aura module `slot_duration` routine.
-
-#### [AuthoritiesApi](#)
-
-- **authorities**: Consensus module `authorities` routine.
-
-<!--
-
-## Communication Protocols
-
-**TBD.**
-
--->

+ 0 - 294
testnets/rome/specification/runtime/actors-module.md

@@ -1,294 +0,0 @@
-# Storage Staking Module
-
-## Table Of Contents
-
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Design](#design)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [create_tranche](#create_tranche)
-  - [update_tranche_parameters](#update_tranche_parameters)
-  - [request_entry](#request_entry)
-  - [stake](#stake)
-  - [unstake](#unstake)
-  - [eject_provider](#eject_provider)
-
-## Name
-
-`Actors`
-
-## Dependencies
-
-- `srml::system`
-- `LockableCurrency`
-- `Membership`
-
-## Design
-
-### Motivation
-The storage staking module is the gatekeeper for entry and orderly exit of platform members into and out of the `Storage Provider` role.
-Entry is achieved through staking funds. Storage providers are rewarded periodically with new funds as incentive to maintain operational status. Storage providers can choose to stop offering their services by un-staking. System sudo account can forcefully remove storage providers from active participation, and optionally punish provider by slashing staked funds.
-
-### Tranches
-The module is used to configure the storage tranches available in the storage system, and for updating operational parameters associated with each tranche, such as minimum stake and storage capacity.
-Tranches must always aim to maintain a minimum number of providers `MinSlots`.
-The module will prevent un-staking when it would result in `MinSlots` no longer being filled. Once tranches are created they cannot be destroyed, however their operational parameters can be adjusted. If at anytime the maximum number of slots `MaxSlots` for a tranche is update to be less than the number of active providers `N` in the tranche, no new providers can be allowed to join until the number drops below `MaxSlots` again.
-
-### Role Account
-Members will utilize a separate account, referred to as the role account, which will be associated with their membership, to hold the staked funds. This corresponding key, is referred to as the role key.
-The role key is also used to sign a extrinsics sent by the storage provider software when interacting with the chain.
-A role account may only only be associated with a single member at any given time.
-A role account can only be used to stake into a single tranche at any given time.
-
-### Locking Funds
-Staking is achieved by locking funds in the role account. The amount locked will be equal to the `StakeAmount` parameter for the tranche the storage provider is participating in. The storage provider may transfer funds out of the role account only that are in excess of the locked amount.
-For convenience, the locked funds can still be used to pay for transactions fees. This means the balance may fall below the locked amount.
-
-### Entering Role
-Entering a tranche is a multi-step process:
-  1. A member must generate a new keypair and deposit at least the StakeAmount funds into the corresponding account, plus the request entry fee for the tranche they plus some extra to cover transaction fees.
-  1. Request entry into a specific tranche using the role account, associating it with their membership account.
-  1. Using their member account, approve the request.
-
-There must be an available slot in a tranche to enter. All providers stake the same amount of funds, this means it's not possible for a new storage provider to displace an existing provider.
-
-### Rewards
-At regular intervals defined by tranche parameters, a fixed award is distributed to distributors. The reward amount is a configurable parameter.
-The reward will go to the member account, unless the balance in the role account is below the `StakeAmount`, in which case it
-will go to the role account. This forces storage providers to gradually add funds to their role account in order to maintain their commitment of staking a certain amount.
-
-### Leaving Role
-When a storage provider decides to leave a tranche, they can initiate the process by un-staking. If the platform allows it, the provider goes immediately out of service.
-An un-bonding period follows after which the funds in the role account become transferable.
-
-
-## Concepts
-  - `StorageProviderInfo`: Represents when the provider joined a tranche, the member identifier they are associated with, and their role account identifier.
-  - `EntryRequest`: Represents intent to join a specific tranche, with a certain role account and member identity. Requests have a lifetime `RequestLifeTime`. If not approved before expiry they are cleared from state.
-
-## State
-
-- `TrancheCount`: Number of tranches created.
-- `RoleAccountIds`: List of currently staked role accounts.
-- `StorageProviderInfoByRoleAccount`: Map of RoleAccount to StorageProviderInfo
-- `RoleAccountsByTrancheId`: Map of tranche identifier to list of role accounts
-- `RoleAccountIdsByMemberId`: Map of member identifier to list of role accounts
-- `EntryRequests`: List of pending requests to enter storage provider role
-- `RequestLifeTime`: Duration of time before a role entry request expires
-- `TrancheIdsByDataObjectTypeId`: Mapping of tranches available for a `DataObjectType`
-
-Tranche Operational Parameters
-
-- `StakeAmount`: Map of tranche identifier to Optional Stake Amount
-- `MinSlots`: Map of tranche identifier to Optional Minimum Number of slots
-- `MaxSlots`: Map of tranche identifier to Optional Maximum Number of slots
-- `FixedReward`: Map of tranche identifier to Optional Reward Amount
-- `FixedRewardPeriod`: Map of tranche identifier to Optional BlockNumber
-- `UnbondingPeriod`: Map of tranche identifier to Optional BlockNumber
-- `EntryRequestFee`: Map of tranche identifier to Optional Fee Amount
-- `DataObjectTypeId`: The `DataObjectType` for which this tranche is created.
-
-Tranche identifier starts at 0. So if TrancheCount = 4, the identifiers of the created tranches are 0, 1, 2, and 3.
-
-**Note:** Currently, tranches are not limited in size. When good tooling for
-monitoring and creating tranches is available, the intend is to limit tranches
-in size, and add new ones before storage space runs out.
-
-## Events
-Each event has payload as sublist
-
-  - `TrancheCreated`: A new tranche was created
-    - Tranche identifier
-  - `TrancheUpdated`: Some tranche parameters were changed
-    - Tranche identifier
-  - `EntryRequested`: A new role key
-    - Role account identifier
-    - Member identifier
-    - Tranche Identifier
-  - `ProviderJoined`: A new storage provider joined a tranche
-    - Tranche identifier
-    - Role account identifier
-  - `ProviderLeft`: A storage provider un-staked
-    - Tranche identifier
-    - Role account identifier
-  - `ProviderEjected`: A storage provider was forcefully removed
-    - Tranche Identifier
-    - Role account
-
-
-## Dispatchable Methods
-
-### create_tranche
-
-#### Payload
-- `origin`: call origin
-- `parameters`: List of operational parameters
-  - `stake_amount`
-  - `min_providers`
-  - `max_providers`
-  - `fixed_reward`
-  - `fixed_reward_period`
-  - `unbonding_period`
-  - `entry_request_fee`
-  - `data_object_type_id`
-
-
-#### Description
-Creates a new tranche with provided parameters.
-
-#### Errors
-  - Bad signature
-  - origin is not Root
-  - StakeAmount == 0
-  - MaxSlots == 0
-  - MinSlots == 0 unless we want [temporary tranches](#temporary tranches)
-  - MinSlots > MaxSlots
-  - No matching `DataObjectType`.
-
-#### Side effects
-  - `TrancheCount` increased by one
-  - Tranche operational parameter values set in each corresponding parameter map
-#### Event(s)
-  - TrancheCreated
-    - TrancheCount - 1
-
-### update_tranche_parameters
-#### Payload
-  - `origin`
-  - Tranche Identifier
-  - List of tranche operational parameters
-    - `stake_amount`
-    - `min_providers`
-    - `max_providers`
-    - `fixed_reward`
-    - `fixed_reward_period`
-    - `unbonding_period`
-    - `entry_request_fee`
-
-#### Description
-Change tranche operational parameters
-
-#### Errors
-  - Bad signature
-  - origin is not Root
-  - Tranche Identifier < TrancheCount
-  - StakeAmount == 0
-  - MaxProviders == 0
-  - MinSlots == 0 unless we want [temporary tranches](#temporary tranches)
-  - MinSlots > MaxSlots
-
-#### Side effects
-  - Operational parameter values updated
-
-#### Event(s)
-  - `TrancheUpdated`
-
-### request_entry
-#### Payload
- - `origin`: role account
- - Tranche identifier
- - membership identifier
-
-#### Description
-Member creating request to join a tranche
-
-#### Errors
-  - Bad signature
-  - origin is a member account
-  - origin already in a tranche
-  - origin already made a request
-  - tranche identifier >= TrancheCount (invalid tranche)
-  - not enough balance in role account to pay entry request fee
-  - membership identifier invalid
-  - no available slots in tranche
-  - origin still un-bonding
-
-#### Side effects
-  - Entry request fee burned from role account balance
-  - If no errors
-    - `EntryRequests` List has new request
-
-#### Event(s)
-  - `EntryRequested`
-
-### stake
-#### Payload
-  - origin: member account
-  - tranche identifier
-  - role account
-
-#### Description
-Member approves a pending request to stake and join a tranche using the role account.
-
-#### Errors
-  - Bad signature
-  - No matching request found
-  - no available slot in tranche (availability may have changed since request was made)
-  - not enough balance in role account to stake
-
-#### Side effects
-  - Stake amount locked in role account
-  - Role account added to `RoleAccountIds`
-  - `StorageProviderInfoByRoleAccount` map
-  - Role account added to list for tranche in `RoleAccountsByTrancheId`
-  - Role account added to member mapping in `RoleAccountIdsByMemberId`
-  - Request removed from `EntryRequests`
-
-#### Events
-  - `ProviderJoined`
-    - role account
-
-### unstake
-#### Payload
-  - origin
-  - role account
-
-#### Description
-Member chooses to un-stake and stop providing service.
-
-#### Errors
-  - Bad signature
-  - origin is not a member associated with role account
-  - role account is not staked provider account
-  - too few slots filled if un-staking allowed
-
-#### Side effects
-  - Balance lock updated on role account, so funds become liquid after UnbondingPeriod
-  - Role account removed from `RoleAccountsByTrancheId`, `RoleAccounts`, `RoleAccountIdsByMemberId`, `StorageProviderInfoByRoleAccount`
-
-### eject_provider
-
-#### Payload
-  - origin: call Origin
-  - role_account
-  - punish: bool
-
-#### Description
-Forcefully remove a storage provider from service. And optionally slash staked balance.
-
-#### Errors
-  - Bad signature
-  - origin is not Root
-  - role_account is not an active storage provider
-
-### Side effects
-  - Balance lock updated on role account, so funds become liquid after UnbondingPeriod
-  - Remove role account from `RoleAccountsByTrancheId`, `RoleAccounts`, `RoleAccountIdsByMemberId`, `StorageProviderInfoByRoleAccount`
-  - If `punish` is true, slash stake amount from role account
-
-## On Initialize
-Clear expired entry requests.
-
-## On Finalize
-Make reward payouts.
-
-#### Temporary Tranches
-A tranche that has MinSlots = 0, where content is not guaranteed to persist. Suitable for short lived data?
-
-#### Idea for improvements:
-- The actor account private key is used on a live system, and is considered a 'hot wallet'. We should look at supporting cold wallet similar to the stash/controller model in validator staking module.
-- Limit destination of transfer of funds from actor account to only the member account. This can limit loss of funds in the event of a key compromise.
-- Have a List of banned member id. Members can be optionally banned when ejected.

+ 0 - 411
testnets/rome/specification/runtime/content-directory-working-group.md

@@ -1,411 +0,0 @@
-# Content Directory Working Group Module
-
-## Table of Contents
-
-- [Name](#name)
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [update_lead_role_account](#update_lead_role_account)
-  - [update_lead_reward_account](#update_lead_reward_account)
-  - [add_permission_group](#add_permission_group)
-  - [update_permission_group](#update_permission_group)
-  - [add_curator_opening](#add_curator_opening)
-  - [accept_curator_applications](#accept_curator_applications)
-  - [begin_curator_applicant_review](#begin_curator_applicant_review)
-  - [fill_curator_opening](#fill_curator_opening)
-  - [update_curator_reward](#update_curator_reward)
-  - [slash_curator](#slash_curator)
-  - [terminate_curator](#terminate_curator)
-  - [apply_on_curator_opening](#apply_on_curator_opening)
-  - [update_curator_role_account](#update_curator_role_account)
-  - [update_curator_reward_account](#update_curator_reward_account)
-  - [exit_curator_role](#exit_curator_role)  
-- [Non-dispatchable Methods](#non-dispatchable-methods)
-  - [set_lead](#set_lead)
-  - [unset_lead](#unset_lead)
-  - [set_opening_policy](#set_opening_policy)
-  - [update_lead_reward](#update_lead_reward)
-  - [account_is_in_group](#account_is_in_group)
-
-## Name
-
-`ContentDirectoryWorkingGroup`
-
-## Motivation
-
-The working groups solves the problems of how to administrate the write access permissions to the content directory state.
-
-## Design
-
-The working group has two types of participants. A _lead_, which is inducted by root. The lead is involved in two activities. First, hiring and managing the second participant type, namely _curators_. Second, creating and managing the actor groups, called _permission groups_, for the content directory. These groups are defined by some criteria for what accounts belong to them at any given time, and in particular they may defined to include the account(s) of one of the following
-
-- the led,
-- a specific curator
-- a specific member
-- a specific publisher
-- any curator
-- any member
-- any publisher.
-
-These permission groups are presumed to be used with the [permission module](#) and the [version store module](#). Both leads and curators are possibly staked and rewarded. The staking is managed by the [staking module](#), and the rewards are managed by the [recurring rewards module](#). All rewards in the group flow from a single group mint.
-
-## Usage
-
-I used in concert with a range of other modules described in the next section.
-
-## Dependencies
-
- - `RecurringReward` module
- - `Hiring` module
- - `Membership` module
- - `VersionedStorePermissions` module
-
-## Concepts
-
-```Rust
-
-trait Trait : RecurringReward::Trait + Hiring::Trait + Membership::Trait VersionedStorePermissions::Trait {
-
-  // Type of identifier for permissions groups.
-  type PermissionGroupId : INTEGER_TRAIT_CONSTRAINTS;
-
-}
-
-// Type of identifier for lead.
-type LeadId = Trait::RoleActorId;
-
-// Type of identifier for curators.
-type CuratorId = Trait::RoleActorId;
-
-// Type of identifier for publishers.
-type PublisherId = Trait::MemberId;
-
-enum LeadRoleState {
-  Active,
-  Exited {
-    initiated_at_block_number: T::BlockNumber,
-  }
-}
-
-// Working group lead: curator lead
-// For now this role is not staked or inducted through an structured process, like the hiring module,
-// hence information about this is missing. Recurring rewards is included, somewhat arbitrarily!
-struct Lead<T: Trait> {
-
-  // Account used to authenticate in this role,
-  role_account: T::AccountId,
-
-  // Whether the role has recurring reward, and if so an identifier for this.
-  reward_relationship: Option<T::RewardRelationshipId>,
-
-  // When was inducted
-  // TODO: Add richer information about circumstances of induction
-  inducted: T::BlockNumber,
-
-  //
-  stage: LeadRoleState
-
-}
-
-enum CuratorExitInitiationOrigin {
-  Lead,
-  Curator
-}
-
-enum CuratorRoleStage<T: Trait> {
-
-  Active,
-
-  Exited {
-
-    origin: CuratorExitInitiationOrigin,
-
-    initiated_at_block_number: T::BlockNumber,
-
-    rationale_text: Vec<u8>
-
-  }
-
-}
-
-struct CuratorInduction<T: Trait> {
-
-  // Lead responsible
-  lead: LeadId,
-
-  // Application through which curator was inducted
-  application: T::ApplicationId,
-
-  // When induction occurred
-  at_block: T::BlockNumber
-}
-
-// Working group participant: curator
-// This role can be staked, have reward and be inducted through the hiring module.
-struct Curator<T: Trait> {
-
-  // Account used to authenticate in this role,
-  role_account: T::AccountId,
-
-  // Whether the role has recurring reward, and if so an identifier for this.
-  reward_relationship: Option<T::RewardRelationshipId>,
-
-  // Whether participant is staked, and if so, the identifier for this staking in the staking module.
-  stake: Option<T::StakeId>,
-
-  //
-  stage: CuratorRoleStage<T>,
-
-  //
-  induction: CuratorInduction<T>
-}
-
-// The type of permission groups supported
-enum PermissionGroupType<T: Trait> {
-
-  CurrentLead,
-
-  Curator(T::CuratorId),
-
-  Member(T::MemberId),
-
-  Publisher(T::PublisherId),
-
-  AnyCurator,
-
-  AnyMember,
-
-  AnyPublisher
-}
-
-// Represents a group as understood by the VersionedStorePermissions module
-struct PermissionGroup<T: Trait> {
-
-  // ..
-  type: PermissionGroupType<T>,
-
-  // ..
-  is_active: bool,
-
-  // ..
-  created: T::BlockNumber,
-
-  // ..
-  description: Vec<u8>
-}
-
-// Policy governing any curator opening which can be made by lead.
-struct OpeningPolicy<T: Trait> {
-
- /**
-  * // Whether there should be a number of active curators which would block the
-  * // creation of new openings, and if so what value.
-  * active_curator_count_blocking_new_openings: Option<u16>,
-  */
-
-  // Maximum length of review period of applications
-  max_review_period_length: BlockNumber,
-
-  // Staking policy for application
-  application_staking_policy: Option<T::StakingPolicy>,
-
-  // Staking policy for role itself
-  role_staking_policy: Option<T::StakingPolicy>
-}
-
-```
-
-## State
-
-- `mint: T::TokenMintId`: The mint currently funding the rewards for this module.
-- `current_lead: Option<T::LeadId>`: The current lead.
-- `leadById: linked_map T::LeadId => Lead<T>`: Maps identifier to corresponding lead.
-- `nextLeadId: T::LeadId`: Next identifier for new current lead.
-- `openings_policy: Option<OpeningPolicy<T>>`: The constraints lead must respect when creating a new curator opening. Lack of policy is interpreted as blocking any new openings at all.
-- `openings: linked_map T::OpeningId => ()`: set of identifiers for all openings originated from this group.
-- `curatorById: linked_map T::CuratorId => Curator<T>`: Maps identifier to corresponding curator.
-- `nextCuratorId: T::CuratorId`: Next identifier for new curator.
-- `permissionGroupById: linked_map T::PermissionGroupId => PermissionGroup<T>`: Maps identifier to corresponding permission group.
-- `nextPermissionGroupId: T::PermissionGroupId`: Next identifier for new permission group.
-- `maxPermissionGroupDescriptionLength: u16`: Upper bound for character length of `description` field of any new or updated `PermissionGroup`
-- `maxCuratorExitRationaleTextLength: u16`: Upper bound for character length of the `rationale_text` field of any new `CuratorRoleStage`.
-
-## Events
-
-- `LeadSet`
-- `LeadUnset`
-- `OpeningPolicySet`
-- `LeadRewardUpdated`
-- `LeadRoleAccountUpdated`
-- `LeadRewardAccountUpdated`
-- `PermissionGroupAdded`
-- `PermissionGroupUpdated`
-- `CuratorOpeningAdded`
-- `AcceptedCuratorApplications`
-- `BeganCuratorApplicationReview`
-- `CuratorOpeningFilled`
-- `CuratorSlashed`
-- `TerminatedCurator`
-- `AppliedOnCuratorOpening`
-- `CuratorRewardUpdated`
-- `CuratorRoleAccountUpdated`
-- `CuratorRewardAccountUpdated`
-- `CuratorExited`
-
-
-## Implemented Traits
-
-Module implements `VersionedStorePermissions::GroupMembershipChecker`, and sets `GroupMembershipChecker::GroupdId` to `T::PermissionGroupId`.
-
-## Dispatchables
-
-### `update_lead_role_account`
-
-Can only be called by **Signed** origin, and caller must pass test on membership module of `key_can_sign_for_role` for the `current_lead`.
-
-Updates `role_account` of `current_lead` to given new value.
-
-Emits `LeadRoleAccountUpdated`.
-
-### `update_lead_reward_account`
-
-Can only be called by **Signed** origin, and caller must match `role_account` of set `current_lead`. Also, `reward_relationship` must be set on `current_lead`.
-
-Updates `account` on `reward_relationship` to given new value.
-
-Emits `LeadRewardAccountUpdated`.
-
-### `add_permission_group`
-
-Can only be called by **Signed** origin, and caller must match `role_account` of set `current_lead`.
-
-Creates and adds new permission group.
-
-Emits `PermissionGroupAdded`.
-
-### `update_permission_group`
-
-Can only be called by **Signed** origin, and caller must match `role_account` of set `current_lead`.
-
-Updates a given permission group, based on its identifier. Field `created` is not mutable.
-
-Emits `PermissionGroupUpdated`.
-
-### `add_curator_opening`
-
-Can only be called by **Signed** origin, and caller must match `role_account` of set `current_lead`.
-Also requires that `openings_policy` is set, and if so, a new application is added to the `Hiring` module using relevant parameter values from this policy. The new opening identifier is added to `openings`.
-
-Emits `CuratorOpeningAdded`.
-
-### `accept_curator_applications`
-
-Can only be called by **Signed** origin, and caller must match `role_account` of set `current_lead`.
-Given opening identifier must be in `openings`. If so, `begin_accepting_applications` is called on the corresponding opening the `Opening` module.
-
-Emits `AcceptedCuratorApplications`
-
-### `begin_curator_applicant_review`
-
-Can only be called by **Signed** origin, and caller must match `role_account` of set `current_lead`. Given opening identifier must be in `openings`. If so, `begin_review` is called on the corresponding opening the `Opening` module.
-
-Emits `BeganCuratorApplicationReview`
-
-### `fill_curator_opening`
-
-Can only be called by **Signed** origin, and caller must match `role_account` of set `current_lead`. Given opening identifier must be in `openings`. Checks with the `Membership` module that all hires still can step into the role as curator at this time. If so, `fill_opening` is called on the corresponding opening the `Opening` module.
-All hired curators are turned into new `Curator` instances, with identifiers based on `nextCuratorId`, and added to `curatorsById`.
-
-Emits `CuratorOpeningFilled` and `CuratorAdded` for each curator hired.
-
-### `update_curator_reward`
-
-Can only be called by **Signed** origin, and caller must match `role_account` of set `current_lead`. Updates `reward_relationship` on given curator.
-
-Emits `CuratorRewardUpdated`.
-
-### `slash_curator`
-
-Can only be called by **Signed** origin, and caller must match `role_account` of set `current_lead`.
-Also requires that `stake` is set on given curator, if so, `initiate_slashing` is called on the `Stake` module on the stake for this curator.
-
-Emits `CuratorSlashed`.
-
-### `terminate_curator`
-
-Can only be called by **Signed** origin, and caller must match `role_account` of set `current_lead`.
-Also requires that given curator is found in `curatorsById` in the `Active` stage. If so, the stage is updated `Exited`, with suitable other parameters, and any `reward_relationship` set is disabled. Lastly, unstaking is initiated if present.
-
-Emits `TerminatedCurator`.
-
-### `apply_on_curator_opening`
-
-Can only be called by **Signed** origin, and caller must pass test on `Membership` module of whether they can occupy a curator role at this time. Next, provided parameters must match staking and other requirements of opening. If so, `add_application` is on `Hiring` module. Return value is returned.
-
-Emits `AppliedOnCuratorOpening`.
-
-### `update_curator_role_account`
-
-Can only be called by **Signed** origin, and account must match `role_account` of provided curator identifier. Also requires that given curator is found in `curatorsById` in the `Active` stage.
-
-Updates `role_account` on given curator.
-
-Emits `CuratorRoleAccountUpdated`.
-
-### `update_curator_reward_account`
-
-Can only be called by **Signed** origin, and account must match `role_account` of provided curator identifier. Also requires that given curator is found in `curatorsById` in the `Active` stage. Also, given curator must also have `reward_relationship` set.
-
-Updates `account` on given curator `reward_relationship`.
-
-Emits `CuratorRewardAccountUpdated`.
-
-### `exit_curator_role`
-
-Can only be called by **Signed** origin, and account must match `role_account` of provided curator identifier. Also requires that given curator is found in `curatorsById` in the `Active` stage. If so, the stage is updated `Exited`, with suitable other parameters, and any `reward_relationship` set is disabled. Lastly, unstaking is initiated if present.
-
-Emits `CuratorExited`.
-
-## Non-dispatchable Methods
-
-### `set_lead`
-
-Can only be called by **Root** origin, and requires that `current_lead` is not set. Membership module is consulted as to whether the given signing account can be setup as the curator lead with id `nextLeadId`, if no, then method terminates. Otherwise continues as follows.
-
-A new recipient and reward relationship is added to the reward module, and a new `current_lead` instance is created with corresponding values and id `nextLeadId`, added to `leadById` undert this id, and `current_lead` i also set to this key. Lastly, `nextLeadId` is incremented.
-
-Emits event `LeadSet`. Returns nothing.
-
-### `unset_lead`
-
-Can only be called by **Root** origin, and requires that `current_lead` is set. Membership module is informed to unregister the lead as playing the role of a curator lead. If `reward_relationship` is set on lead, then disable it to any further rewards. Lastly set `exited` to the current block number.
-
-Emits event `LeadUnset`. Returns nothing.
-
-### `set_opening_policy`
-
-Can only be called by **Root** origin. Updates `opening_policy`.
-
-Emits event `OpeningPolicySet`. Returns nothing.
-
-### `update_lead_reward`
-
-Can only be called by **Root** origin, and requires that `current_lead` is set. The lead must also have `reward_relationship` set. If so, then `amount_per_payout`, `next_payment_in_block` and `payout_interval` of the reward relationship can be updated.
-
-Emits event `LeadRewardUpdated`. Returns nothing.
-
-### `account_is_in_group`
-
-Takes group id and looks up `permissionGroupById`, lack of match results in `false` being returned. A match is then used to evaluate the given account as follows
-
-- `CurrentLead`: Account matches `role_account` of `current_lead` which is set.
-- `Curator(id)`: ..
-- `Member(id)`: ..
-- `Publisher(id)`: .
-- `AnyCurator`: ..
-- `AnyMember`: ..
-- `AnyPublisher`: ..

+ 0 - 212
testnets/rome/specification/runtime/content-directory.md

@@ -1,212 +0,0 @@
-# Content Directory
-
-## Table Of Contents
-
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Design](#design)
-- [Future TODOs](#future-todos)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [add_metadata](#add_metadata)
-  - [update_metadata](#update_metadata)
-
-## Name
-
-`ContentDirectory`
-
-## Dependencies
-
-- The [Storage System](storage-system.md).
-
-## Design
-
-### Motivation
-
-Once data is stored on the network, it must be made discoverable. Part of this
-is to assign meaning to any stored data. For these purposes, the Content
-Directory is introduced.
-
-The Content Directory is a list of `ContentMetadata` entries on the runtime.
-Each `ContentMetadata` entry can:
-
-- Contain a JSON payload conforming to a schema identified by a `SchemaId`.
-- Contain a list of `ContentId` as children of the entry.
-
-As `ContentMetadata` is itself identified by a `ContentId`, it is inextricably
-linked to a `DataObject` with the same identifier, and intended to describe
-this object.
-
-Therefore the runtime enforces that for any `ContentMetadata`:
-
-1. A `DataObject` with the same `ContentId` exists.
-1. An active `StorageRelationship` for the `ContentId` exists.
-
-Additionally, `ContentMetadata` may exist in a published or unpublished state.
-Of course, nothing is entirely private on the runtime, but only published
-`ContentMetadata` is intended for inclusion in content listing, searches or
-other user interfaces for the *Content Directory*. Unpublished entries can
-e.g. be used as drafts during the creation process.
-
-#### Hierarchy
-
-`ContentMetadata` may contain child content IDs, which are used to indicate
-a hierarchy of content of sorts. Each child must itself have a meaning;
-therefore, for each child content ID, an appropriate `ContentMetadata` entry
-must also exist, with the above constraints enforced.
-
-This means that when creating a hierarchy of `ContentMetadata`, it must be
-done in a leaf-to-root order.
-
-The purpose of creating such a hierarchy depends on the `SchemaId` used
-in the root entry. Possible uses are:
-
-* For structuring podcast/video episodes in a series.
-* For providing multiple  language tracks, subtitle tracks, commentary,
-  etc. for video content.
-* etc.
-
-**Hierarchy and Publishing**
-
-Note in particular that in hierarchically structured content, the published
-state may be interpreted differently depending on whether the metadata
-describes a root, branch or leaf element, and on the metadata schema.
-
-Largely, it is the published state of *root* entries that determines whether
-content is discoverable at all. For branch or leaf elements, the flag may
-be ignored - but such a decision is outside the scope of this document, and
-belongs in a description of schemata to be used.
-
-For example, in episodic content like a podcast, the root level element may
-describe the podcast series, and contain:
-
-1. Image `DataObjects`, for describing the podcast. These may be considered
-   to be published if the root element itself is published.
-1. Episode `DataObjects`, each of which may stay in a draft state until
-   it is finalized. Here, the published flag should be interpreted.
-
-Using schema identifiers in `ContentMetadata` permits easy decision making
-in rendering or indexing apps as to how the hierarchy should be interpreted.
-
-#### Content Creation
-
-The content creation protocol is as follows:
-
-1. Create one (or several related) `DataObjects` as described in the
-  [Data Directory](./storage-module/data-directory.md) section of the
-  [Storage Module](./storage-module.md).
-1. Create appropriate `ContentMetadata` entries in a leaf-to-root order
-  in the `ContentDirectory`.
-1. Publish the root `ContentMetadata` (see the [Hierarchy](#hierarchy)
-  section) to make content discoverable.
-
-## State
-
-- `MetadataByContentId`: a map of `ContentId` to matching `ContentMetadata`
-  Objects.
-
-- `PublishedRootContent`: a vector of published `ContentIds` that describe
-  root content in a `ContentMetadata` hierarchy - in other words, the
-  discoverable `ContentIds`.
-
-  **Note:** This list should be moved off-chain once an indexing node provides
-  content discovery services; it exists solely for not having to scan the entire
-  `MetadataByContentId` map in the pioneer app.
-
-## Events
-
-- `MetadataAdded`: `ContentMetadata` has been added to `MetadataByContentId`. The
-  event payload is the `ContentId` of the matching metadata.
-
-- `MetadataUpdated`: `ContentMetadata` has been updated. The
-  event payload is the `ContentId` of the matching metadata.
-
-- `RootContentUpdated`: a `ContentMetadata` that represents root content in a
-  metadata hierarchy has been updated. The payload is the `ContentId`, and a
-  flag indicating whether or not this content is published.
-
-  **Note:** This event exists to trigger updates in either pioneer's rendering
-  of the content directory, or an indexing node's internal database. It's
-  a special case of `MetadataUpdated` that can be listened to explicitly.
-
-## Dispatchable Methods
-
-### `add_metadata`
-
-#### Payload
-
-- The publisher origin.
-- `content_id`: the `ContentId` for which the `ContentMetadata` applies.
-- `data`: a `ContentMetadata` struct.
-- `is_root`: a boolean flag indicating whether the metadata represents the
-  root of a metadata hierarchy.
-
-#### Description
-
-Create a new `ContentMetadata` object for the given `ContentId`. All but
-optional fields must be supplied. It is possible to set the published field
-here immediately, but for hierarchical metadata that is discouraged.
-
-#### Errors
-
-- The origin is not an active member.
-- There already exists `ContentMetadata` for this `ContentId`.
-- For the given `ContentId`, the [Storage Module](./storage-module.md) does
-  not have any currently active `StorageRelationship` entries, i.e. the
-  content does not exist on the network.
-  **Note:** it would be possible to limit this error only to situations
-  in which published flag is to be set.
-
-#### Side effect(s)
-
-- The `ContentMetadata` struct is added under the given `ContentId` to the
-  `MetadataByContentId` map.
-- If the `ContentMetadata`'s published flag is set, and `is_root` is set,
-  the `ContentId` is also added to `PublishedRootContent`.
-
-#### Event(s)
-
-- `MetadataAdded`
-- If the `ContentMetadata`'s published flag is set, and `is_root` is set,
-  also `RootContentUpdated` is emitted.
-
-### `update_metadata`
-
-#### Payload
-
-- The publisher origin.
-- `content_id`: the `ContentId` for which the `ContentMetadata` applies.
-- `data`: a `ContentMetadataUpdate` struct.
-- `is_root`: a boolean flag indicating whether the metadata represents the
-  root of a metadata hierarchy.
-
-#### Description
-
-Modify an existing `ContentMetadata` for the given `ContentId`. With the
-`ContentMetadataUpdate` struct, only fields to be updated must be supplied.
-
-#### Errors
-
-- The origin is not an active member.
-- The origin is not the original creator of the `ContentMetadata`.
-- There exists no `ContentMetadata` for this `ContentId`.
-- For the given `ContentId`, the [Storage Module](./storage-module.md) does
-  not have any currently active `StorageRelationship` entries, i.e. the
-  content does not exist on the network.
-  **Note:** it would be possible to limit this error only to situations
-  in which published flag is to be set afterwards (aka explicitly set now,
-  already set).
-
-#### Side effect(s)
-
-- The `ContentMetadata` struct is modified under the given `ContentId` to the
-  `MetadataByContentId` map.
-- If the `ContentMetadataUpdate`'s published flag is set, and `is_root` is set,
-  the `ContentId` may also added to `PublishedRootContent`.
-
-#### Event(s)
-
-- `MetadataUpdated`
-- If the `ContentMetadataUpdate`'s published flag is set, and `is_root` is set,
-  also `RootContentUpdated` is emitted.

+ 0 - 211
testnets/rome/specification/runtime/data-directory-module.md

@@ -1,211 +0,0 @@
-# Data Directory Module
-
-## Table Of Contents
-
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Design](#design)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [add_data_object](#add_data_object)
-  - [accept_data_object](#accept_data_object)
-  - [reject_data_object](#reject_data_object)
-
-## Name
-
-`DataDirectory`
-
-## Dependencies
-
-- [Data Object Type Registry](./data-object-type-registry.md): A storage
-  sub-module which holds constraint information on data.
-
-## Design
-
-### Motivation
-
-The Data Directory is used to manage what data exists on the network. As such,
-it contains a complete list of all accessible content; each file uploaded to
-any storage node requires an entry in the data directory, in the form of a
-`DataObject`. These `DataObjects` are identified via a unique `DataObjectId`.
-
-It also links to the [Data Object Type Registry](./data-object-type-registry.md),
-permitting all participating apps (consuming apps or storage node) to negotiate
-whether content may be uploaded.
-
-#### Uploading
-
-The simplified workflow for uploading content is as follows:
-
-1. Choose a `ContentId`. The `ContentId` is a secure random Byte string,
-   and will usually be represented in a [Base58](https://en.wikipedia.org/wiki/Base58)
-   encoded form.
-1. Select an appropriate `DataObjectType` from the *Data Object Type Registry*.
-1. Verify that the file to be uploaded passes the constraints on the
-   `DataObjectType`.
-1. Create a `DataObject` linking to the selected `DataObjectType`. The
-  `DataObject` is not initially active.
-1. The runtime will select a *Liaison*, a storage node that must handle
-   the upload.
-1. Contact the *Liaison* for upload. The *Liaison* will accept or reject
-   the upload depending on whether the uploaded data fulfils the constraints
-   placed on the `DataObjectType`. The *Liaison* will update the `DataObject`
-   according to its decision.
-1. If the upload was accepted, the *Liaison* will also create an entry in
-   the [Data Object Storage Registry](./data-object-storage-registry.md),
-   indicating that the data is stored.
-1. Other storage nodes may replicate the data object, and create their own
-   entries in the *Data Object Storage Registry*.
-
-#### Downloading
-
-Any storage provider listed in the *Data Object Storage Registry* as holding
-a given file can be contacted for downloads.
-
-#### Uploading/Downloading Protocol
-
-While the above describes the abstract protocol for up- and downloads, the
-specific wire protocol are HTTP requests conforming to the most-current
-[OpenAPI](https://swagger.io/specification/) specification of the storage node.
-
-It is generated from code documentation, so not easily linked here. The API
-version is currently not stable, so a `v0` namespace is specified. [The most
-current API specs](https://storage-node-1.joystream.org/swagger.json) live
-on Joystream's first storage node.
-
-#### Storage Backend Metadata
-
-Note that `DataObject` contains a `storage_metadata` and corresponding
-`storage_metadata_version` object. The version determines how to interpret the
-metadata field. They are maintained by the *Liaison* (and potentially other
-storage providers) for managing storage backend specific metadata.
-
-In version `1` of this metadata, it is expected that:
-
-1. It is serialized JSON with an Object at the top level.
-1. It contains an `ipfs_content_id` field specifying a content ID to map
-   to when using [IPFS](https://ipfs.io/) as the backend.
-
-#### Liaison Selection
-
-The runtime is responsible for selecting a *Liaison* for a `DataObject`. The
-*Liaison* is selected from the currently staked pool of storage providers from
-any of the *tranches* configured in the [Staking](./staking.md) part of this
-module, for matching `DataObjectType`.
-
-The implication of this is that between creating a `DataObject` and uploading
-data to the *Liaison*, not too much time should pass. If there is a reason for
-the *Liaison* to un-stake before re-distributing the content, then the
-`DataObject` cannot be uploaded, and a new `DataObject` needs to be created.
-
-
-## State
-
-- `DataObjects` - a map of `ContentId` to `DataObject`.
-
-## Events
-
-- `DataObjectAdded` - a new `DataObject` has been created, with `Pending`
-   liaison judgement. See above for a high-level description of how
-   a *Liaison* will judge whether a `DataObject` is acceptable.
-
-   The event payload consists of the `ContentId` and the uploader's
-   `AccountId`.
-
-- `DataObjectAccepted` - the chosen *Liaison* accepted the data object.
-
-   The event payload consists of the `ContentId` and the *Liaison*
-   `AccountId`.
-
-- `DataObjectRejected` - the chosen *Liaison* rejected the data object.
-
-   The event payload consists of the `ContentId` and the *Liaison*
-   `AccountId`.
-
-## Dispatchable Methods
-
-### `add_data_object`
-
-#### Payload
-
-- The uploader origin.
-- `content_id`: The `ContentId` chosen by the uploader.
-- `type_id`: The `DataObjectTypeId` chosen by the uploader.
-- `size`: The file size, in Bytes.
-
-#### Description
-
-As one of the first steps of the upload process, the uploader will call
-this function to register their intent to upload data. This also registers
-the `ContentId`, making it unavailable for further upload attempts.
-
-As part of this function, the runtime will chose an appropriate *Liaison*,
-and record it in the `DataObject`.
-
-#### Errors
-
-- The uploader is not an active member.
-- The chosen `ContentId` is already in use.
-- The chosen `DataObjectType` is inactive.
-
-#### Side effect(s)
-
-- A `DataObject` with the given size and type is created, and registered
-  under the `ContentId` in `DataObjects`.
-
-#### Event(s)
-
-- `DataObjectAdded`
-
-### `accept_data_object`
-
-#### Payload
-
-- The *Liaison* origin.
-- `content_id`: The `ContentId` of the `DataObject` to accept.
-
-#### Description
-
-The *Liaison* calls this function when its checks indicate that the `DataObject`
-should be accepted.
-
-#### Errors
-
-- The provided `ContentId` was not found.
-- The signing caller is not the designated *Liaison* for the `DataObject`.
-
-#### Side effect(s)
-
-- The `DataObject` identified by `ContentId` has their `liaison_judgement` field
-  set to Accepted.
-
-#### Event(s)
-
-- `DataObjectAccepted`
-
-### `reject_data_object`
-
-#### Payload
-
-- The *Liaison* origin.
-- `content_id`: The `ContentId` of the `DataObject` to reject.
-
-#### Description
-
-The *Liaison* calls this function when its checks indicate that the `DataObject`
-should be rejected.
-
-#### Errors
-
-- The provided `ContentId` was not found.
-- The signing caller is not the designated *Liaison* for the `DataObject`.
-
-#### Side effect(s)
-
-- The `DataObject` identified by `ContentId` has their `liaison_judgement` field
-  set to Rejected.
-
-#### Event(s)
-
-- `DataObjectRejected`

+ 0 - 133
testnets/rome/specification/runtime/data-object-storage-registry-module.md

@@ -1,133 +0,0 @@
-# Data Object Storage Registry Module
-
-## Table Of Contents
-
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Design](#design)
-- [Future TODOs](#future-todos)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-
-## Name
-
-`DataObjectStorageRegistry`
-
-## Dependencies
-
-- [Data Directory](./data-directory.md): A storage sub-module which lists
-  all `DataObjects` on the network.
-
-## Design
-
-### Motivation
-
-The Data Object Storage Registry is where storage providers commit to storing
-any given `DataObject`.
-
-When any storage provider has accepted and stored content - whether it is the
-*Liaison* or a mirror - it will create a `StorageRelationship` entry
-in the registry to indicate that it can be contacted to serve the content.
-
-For an *available* `DataObject`, there is thus at least one, possibly many
-`StorageRelationship` entries in the runtime:
-
-- `DataObject` describes content that *should* exist on the network, and
-  links to a *Liaison* which must have it available.
-- `StorageRelationships` indicate that content exists in a
-  particular location.
-
-`StorageRelationship` contains an `available` flag, which shows
-whether the relationship is currently fulfillable by the storage provider.
-This permits indicating an intent to fulfil on the runtime by providing
-an inactive relationship, then synchronizing content, and finally updating
-the relationship when content can be served.
-
-## State
-
-- `StorageRelationships`: a map of `ContentId` to a vector of
-  `StorageRelationship`. An empty vector means there is no
-  relationship, i.e. the content is not stored.
-
-  However, there still need to be `available` relationships in the vector. Merely
-  finding *a* relationship is not sufficient to determine whether the
-  content is stored somewhere on the network.
-
-## Events
-
-- `StorageRelationshipAdded`: a storage provider has committed to serve
-  a particular content.
-
-  The event payload consists of the `ContentId` of the content added, and
-  the `AccountId` of the storage provider adding it. Note that merely
-  adding a storage relationship does not mean that the content is available
-  to be served.
-
-- `StorageRelationshipAvailabilityChanged`: the given storage relationship's
-  availability changed.
-
-  The event payload consists of the `ContentId`, the storage provider's
-  `AccountId`, and the storage relationship's `available` flag value.
-
-## Dispatchable Methods
-
-### `add_storage_relationship`
-
-#### Payload
-
-- The storage provider origin.
-- `content_id`: The `ContentId` to add a storage relationship for.
-
-#### Description
-
-When a storage provider intends to store content, it calls this function
-to register this intent on the chain. The `StorageRelationship` created
-by this function is set to not be `available` initially.
-
-#### Errors
-
-- The origin is not a storage provider.
-- The `ContentId` does not exist in the [Data Directory](./data-directory.md).
-- There is already a `StorageRelationship` for this `ContentId` and storage
-  provider `AccountId`.
-
-#### Side effect(s)
-
-A new, not-`available` `StorageRelationship` for the `ContentId` and storage
-provider `AccountId` is added to the `StorageRelationships` state.
-
-#### Event(s)
-
-- `StorageRelationshipAdded`
-
-### `set_storage_relationship_availability`
-
-#### Payload
-
-- The storage provider origin.
-- `content_id`: The `ContentId` to modify the `StorageRelationship` for.
-- `available`: a boolean flag indicating the new availability.
-
-#### Description
-
-When a storage provider has finished synchronizing content identified
-by the `ContentId`, it can register itself as having the content available for
-download. The function only modifies state if new value of the `available`
-flag differs from the stored value.
-
-#### Errors
-
-- The origin is not a storage provider.
-- The `ContentId` does not exist in the [Data Directory](./data-directory.md).
-- There is no `StorageRelationship` for this `ContentId` and storage
-  provider `AccountId`.
-
-#### Side effect(s)
-
-The `StorageRelationship` identified by the storage provider and `ContentId`
-has its `available` flag set to the passed value.
-
-#### Event(s)
-
-- `StorageRelationshipAvailabilityChanged`

+ 0 - 206
testnets/rome/specification/runtime/data-object-type-registry-module.md

@@ -1,206 +0,0 @@
-# Data Object Type Registry Module
-
-## Table Of Contents
-
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Design](#design)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [register_data_object_type](#register_data_object_type)
-  - [update_data_object_type](#update_data_object_type)
-  - [activate_data_object_type](#activate_data_object_type)
-  - [deactivate_data_object_type](#deactivate_data_object_type)
-
-## Name
-
-`DataObjectTypeRegistry`
-
-## Dependencies
-
-None.
-
-## Design
-
-### Motivation
-
-All stored `DataObjects` are associated with a type. This type does not describe
-a file or media type, but rather how `DataObjects` of this type are to be
-handled by the storage network. This information is encapsulated in the
-`DataObjectType` structure, identified by a `DataObjectTypeId`.
-
-Of course, storage nodes should still impose some constraints on how what
-uploads to accept. These constraints are described by the `constraints` field
-of the `DataObjectType`. There is a corresponding `constraints_version` field,
-which indicates the version of the constraints specification, i.e. how to
-interpret the `constraints` field.
-
-## Concepts
-
-See [the module documentation](../storage-module.md#concepts) for an overview.
-
-Each `DataObjectType` contains a `constraints` field to be queried by
-uploading apps, and to be enforced by storage nodes. The current version of
-the `constraints_version` field is 1, and the corresponding `constraints`
-field is expected to be valid JSON with the following structure:
-
-1. The top-level entry of the JSON is an Object, not an Array.
-1. Each property key corresponds to a [IANA Media Type](https://www.iana.org/assignments/media-types/media-types.xhtml).
-   Wildcard keys such as `image/*` are allowed. The wildcard `*/*` matches any
-   file, and therefore becomes the default entry (see below).
-1. Each property value is itself a JSON Object, specifying further constraints
-   for the matching media type:
-   1. A `maximum_file_size` specifies the maximum size of permitted files, in
-      Bytes.
-
-### Content Creation
-
-For apps attempting to upload data, the choice of `DataObjectType` is a
-hardcoded property. `DataObjectType` represents a *purpose*, i.e. a media cover
-image or some such. The uploading app knows exactly the purpose of each file
-to upload, and chooses the appropriate `DataObjectType` accordingly.
-
-1. Read and parse the `constraints` filed of the `DataObjectType`.
-1. If the file to be uploaded matches a full media type, e.g. `image/jpeg`,
-   apply constraints associated with it.
-1. If the above was not true, and the file to be uploaded matches a partial
-   media type, e.g. `image/*`, apply constraints associated with it.
-1. If the above was not true, and the file to be uploaded matches the wildcard
-   media type `*/*`, apply constraints associated with it.
-1. If none of the above held, the file is not permitted, and upload should not
-   commence.
-
-Applying constraints means verifying that the file to be uploaded passes the
-constraints - if it would not pass, the content is rejected immediately, and none
-of the following steps are executed. This effectively implements OR-chaining
-of conditions from most specific to least specific matches.
-
-Once the app has verified that data may be uploaded, it follows the steps
-outlined in the [Data Directory](./data-directory.md#uploading) section of this
-specification.
-
-### Content Liaison Approval
-
-For storage nodes acting as liaison for a data object, the same process applies.
-An upload is rejected if a constraint is not passed, or no constraints for the
-media type could be found.
-
-## State
-
-- `FirstDataObjectTypeId`/`NextDataObjectTypeId` - handling incrementing numeric
-  `DataObjectTypeIds`.
-
-- `DataObjectTypes` - map of `DataObjectTypeId` to `DataObjectType`.
-
-## Events
-
-Each event has the affected `DataObjectTypeId` as its payload.
-
-- `DataObjectTypeRegistered` - a new `DataObjectType` was added to the registry.
-
-- `DataObjectTypeUpdated` - a `DataObjectType` was modified in the registry.
-
-## Dispatchable Methods
-
-### `register_data_object_type`
-
-#### Payload
-
-- implied root origin
-- `data_object_type`: the `DataObjectType` to write.
-
-#### Description
-
-Add a new `DataObjectType`.
-
-#### Errors
-
-- Origin isn't root.
-
-#### Side effect(s)
-
-- `NextDataObjectTypeId` incremented.
-- `DataObjectTypes` contains the new `DataObjectType` under the previous
-  value of `NextDataObjectTypeId`.
-
-#### Event(s)
-
-- `DataObjectTypeRegistered`
-
-### `update_data_object_type`
-
-#### Payload
-
-- implied root origin
-- `id`: the `DataObjectTypeId` to update.
-- `data_object_type`: the `DataObjectType` to write.
-
-#### Description
-
-Update a `DataObjectType`.
-
-#### Errors
-
-- Origin isn't root.
-- No `DataObjectType` with the given ID is currently registered.
-
-#### Side effect(s)
-
-- `DataObjectTypes` contains the updated `DataObjectType` under the given
-  ID.
-
-#### Event(s)
-
-- `DataObjectTypeUpdated`
-
-### `activate_data_object_type`
-
-#### Payload
-
-- implied root origin
-- `id`: the `DataObjectTypeId` to update.
-
-#### Description
-
-Activate a `DataObjectType`. Only active `DataObjectTypes` can be used for
-uploading new `DataObjects`.
-
-#### Errors
-
-- Origin isn't root.
-- No `DataObjectType` with the given ID is currently registered.
-
-#### Side effect(s)
-
-- The `DataObjectType` for the given ID is activated.
-
-#### Event(s)
-
-- `DataObjectTypeUpdated`
-
-### `deactivate_data_object_type`
-
-#### Payload
-
-- implied root origin
-- `id`: the `DataObjectTypeId` to update.
-
-#### Description
-
-Deactivate a `DataObjectType`. Only active `DataObjectTypes` can be used for
-uploading new `DataObjects`.
-
-#### Errors
-
-- Origin isn't root.
-- No `DataObjectType` with the given ID is currently registered.
-
-#### Side effect(s)
-
-- The `DataObjectType` for the given ID is deactivated.
-
-#### Event(s)
-
-- `DataObjectTypeUpdated`

+ 0 - 189
testnets/rome/specification/runtime/discovery-module.md

@@ -1,189 +0,0 @@
-# Discovery Module
-
-## Table of Contents
-
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Name](#name)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [set_account_info_lifetime](#set_account_info_lifetime)
-  - [set_boostrap_endpoints](#set_bootstrap_endpoints)
-  - [set_ipns_peer_id](#set_ipns_peer_id)
-  - [unset_ipns_peer_id](#unset_ipns_peer_id)
-- [Other](#other)
-
-## Design
-
-### Motivation
-
-Accessing most services requires resolving a host corresponding the public key of some service provider. This module describes the on-chain component of making this possible.
-
-### Basic Functionality
-
-The Actors module provides a way for member accounts to stake for becoming an
-actor in the Joystream network, generating a new actor key along the way. This
-actor key then is used to fulfil the role on behalf of the member.
-
-Due to this structure, discovering a service really means discovering which
-service-specific endpoint information is associated with an actor key.
-
-The *discovery workflow*, then, is to retrieve some structured data by providing
-an actor key, and being able to verify the data has been created by the actor
-with the help of a cryptographic signature.
-
-As such, the *discovery workflow* is and should be largely independent on
-how discovery is performed. The *discovery workflow* is almost entirely off-chain,
-but bootstraps from on-chain information.
-
-The *publishing workflow* does require actors to understand how discovery is
-performed. This current version uses [IPNS](https://docs.ipfs.io/guides/concepts/ipns/)
-as a building block for discovery. The *publishing workflow* includes modifying
-on-chain data, albeit relatively rarely.
-
-<!-- This document is concerned only with *on-chain* operations. For the full,
-high-level documentation see [TODO](#TODO). -->
-
-## Name
-
-`Discovery`
-
-## Dependencies
-
-None.
-
-## Concepts
-
-- `BootstrapEndpoints`: Identifies a URL prefix for querying the discovery system.
-
-- `IPNSPeerId`: Identifies a peer on the IPFS network, of which IPNS is part.
-
-## State
-
-- `bootstrapEndpoints`: A vector of bootstrap endpoints maintained by sudo.
-
-- `PeerIdByAccount`: A map of Account IDs to `IPNSPeerId`. The map value also
-  contains lifetime parameters in order to gracefully remove outdated entries.
-
-- `AccountInfoLifetime`: A time-to-live for entries in the `PeerIdByAccount` table.
-  Configured from the genesis block.
-
-## Events
-
-- `AccountInfoUpdated`: A mapping from Account ID to `IPNSPeerId` was created or
-  updated. Receiving this event allows client implementations to discard all data
-  currently cached for the associated Account ID.
-
-## Dispatchable Methods
-
-### `set_account_info_lifetime`
-
-#### Payload
-
-- implied root origin
-- `lifetime`: a new lifetime value.
-
-#### Description
-
-Allow root to set the lifetime for entries in the `PeerIdByAccount` mapping.
-Note that setting this value does not modify
-the lifetime of already existing entries, and is only applied to newly
-created or updated entries.
-
-#### Errors
-
-- Not root origin
-- Zero or negative lifetime.
-
-#### Side effect(s)
-
-`AccountInfoLifetime` is updated.
-
-#### Event(s)
-
-None.
-
-### `set_bootstrap_endpoints`
-
-#### Payload
-
-- implied root origin
-- `bootstrapEndpoints`: a vector of URL prefixes
-
-#### Description
-
-Allow root to set the current bootstrap endpoints. Note that the number of endpoints
-is never expected to grow large, as new nodes are discovered from this set of
-bootstrap endpoints - therefore always setting the entire vector is sufficient.
-
-#### Errors
-
-- Not root origin
-- Empty bootstrap endpoint vector
-- Empty vector entries
-
-#### Side effect(s)
-
-`bootstrapEndpoints` is updated.
-
-#### Event(s)
-
-None.
-
-### `set_ipns_peer_id`
-
-#### Payload
-
-- `origin`: Actor key
-- `peerId`: The IPNS peer ID.
-
-#### Description
-
-Allows actors to set their associated IPNS peer ID for discovery.
-
-#### Errors
-
-- Not actor origin
-- Empty peer ID
-
-#### Side effect(s)
-
-`peerIdByAccount` is updated to contain the actor key as the key, and the peer
-ID as the value.
-
-#### Event(s)
-
-- `AccountInfoUpdated`
-
-### `unset_ipns_peer_id`
-
-#### Payload
-
-- `origin`: Actor key
-
-#### Description
-
-Allows well-behaving actors to clear their IPNS peer ID, e.g. when shutting down.
-
-#### Errors
-
-- Not actor origin
-- No error is raised if the actor is not registered; the function simply does
-  nothing.
-
-#### Side effect(s)
-
-`peerIdByAccount` is updated to remove any value associated with the actor key.
-
-#### Event(s)
-
-- `AccountInfoUpdated`
-
-## Other
-
-<!--  bad format, underspecified , change later to use on_initlize -->
-
-Every block, outdated entries are removed and an `AccountInfoUpdated` event is
-raised for each removed entry.

+ 0 - 373
testnets/rome/specification/runtime/forum-module.md

@@ -1,373 +0,0 @@
-# Forum Module
-
-## Table Of Contents
-
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Name](#name)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [create_category](#create_category)
-  - [update_category](#update_category)
-  - [create_thread](#create_thread)
-  - [moderate_thread](#moderate_thread)
-  - [add_post](#add_post)
-  - [edit_post_text](#edit_post_text)
-  - [moderate_post](#moderate_post)
-  - [set_forum_sudo](#set_forum_sudo)
-- [Non-dispatchable Methods](#non-dispatchable-methods)
-
-## Design
-
-### Motivation
-
-This module holds the basic content and structure of a hierarchical topic based forum with trivial sudo moderation. It allows a blockchain to have _direct_ assertible custody of the forum governance and function. Systems which depend critical on reliable and fair asynchronous public discourse will benefit from this functionality.
-
-### Structure
-
-The structure of the forum is a collection of category trees. A category tree has of two types of nodes, a category or a thread. A category node represents a topic category, with a name and associated intended scope of discussion topics. A thread node represents an actual thread of one or more posts.
-
-### Posts and threads
-
-A thread is a sequence of posts, in a given category, which has some initial post from the original author, and title. A post exists in the context of a thread, and has some position in thread post sequence, as well as a body text. Both have a corresponding author and creation date. The text in a post can be edited by any time by the original author, however the history of all texts are available in the state.
-
-### Users
-
-Forum users can create threads in categories, and post to existing threads. This module does not maintain its own set of forum users, but rather depends on some external module for this. The rationale for this is to allow reuse of the module with a diversity of user management systems, without requiring that runtime developer must keep user set synchronised, or waste state space.
-
-### Forum sudo
-
-There will be a single account, called the _forum sudo_ account. This account is set by the Sudo of the runtime, and can
-
-- **Create a category**: Can either be a new root category, or if parent category is referenced, it would be a subcategory.
-
-- **Archive|Delete (Unarchive|Undelete) a category**: Results in category being marked as archived or deleted, while it and all corresponding threads, posts and subcategories remain in the state. It is however no longer possible to delete or mutate anything in the category in any way, such as adding posts, creating threads or subcategories, etc. Well-behaved UIs will not render deleted categories. In what follows a category is said to be _directly_ archived or deleted, if its applying directly to that category, and _indirectly_ if it applies to some ancestor category. The only distinction between archiving and deletion in the runtime is that a directly deleted category cannot be unarchived.
-
-- **Moderate a post in a thread**: Results in post being marked as moderated, with a corresponding rationale for the moderation added, but it remains in the system state. It is not longer possible to edit the post text, and well-behaved UIs will not render such posts.
-
-- **Moderate a thread**: Results in thread being marked as moderated, with a corresponding rationale for the moderation added, but it remains in the system state. It is not longer possible to moderate posts, edit post texts or add posts to the thread. Well-behaved UIs will not render such threads.
-
-### Limits
-
-There is a maximum depth to a category tree. This is because doing any mutation will require traversing the category tree to the root to check for whether there has been any deletion or archiving along the path to the root, and there needs to be a bound on this, herein called `MAX_CATEGORY_DEPTH`.
-
-## Name
-
-`Forum`
-
-## Dependencies
-
-- `ForumUserRegistry`: An external module which holds actual user state, allowing it to be queried based on a corresponding account, and recovering some representation of a user.
-
-## Concepts
-
-- `ForumUser`: Represents an actual forum user, which is provided by `ForumUserRegistry` dependency.
-
-- `ForumSudoId`: Identifies a forum sudo authority.
-
-- `ModerationAction`: Represents a moderation outcome applied to a post or a thread. Includes a moderation date, a text rationale and the `ForumSudoId` of moderator.
-
-- `Post`: Represents a thread post, and includes initial text, identifier for the corresponding `Thread`, a position, an optional `ModerationAction`, a vector of identifiers for `PostTextEdit` instances ordered chronologically by edit time, creation date and identifier of `ForumUser` creator. Is identified with an integer which is unique across all instances in all categories.
-
-- `PostTextEdit`: Represents a revision of the text of a `Post`, includes new text and revision date.
-
-- `Thread`: Represents a thread, and includes a title, identifier for the corresponding `Category`, a position, an optional `ModerationAction`, number of unmoderated posts, number of moderated posts, creation date and identifier of `ForumUser` creator. Is identified with an integer which is unique across all instances in all categories.
-
-- `Category`: Represents a forum category, and includes a title, short topic description text, creation date, deletion status, archival status, number of subcategories, number of unmoderated threads, number of moderated threads, optional `Category` identifier for parent category and `ForumSudoId` of creator. Is identified with an integer which is unique across all instances in all categories.
-
-## State
-
-- `categoryById`: Map `Category` identifier to corresponding instance.
-
-- `nextCategoryId`: Identifier value to be used for the next `Category` created.
-
-- `threadById`: Map `Thread` identifier to corresponding instance.
-
-- `nextThreadId`: Identifier value to be used for next `Thread` in `threadById`
-
-- `postById`: Map `Post` identifier to corresponding instance.
-
-- `nextPostId`: Identifier value to be used for next `Post` created.
-
-- `forumSudo`: Optional `ForumSudoId` of forum sudo.
-
-## Events
-
-Each event has payload as sublist
-
-- `CategoryCreated`: A category was introduced
-  - category identifier
-
-- `CategoryUpdated`: A category had its direct archival and/or deletion status updated to a new value.
-  - category identifier
-  - whether deletion status was changed, if so to what
-  - whether archival status was changed, if so to what
-
-- `ThreadCreated`: A thread was created with.
-  - thread identifier
-
-- `ThreadModerated`: A thread was moderated.
-  - thread identifier
-
-- `PostAdded`: A post was introduced.
-  - post identifier
-
-- `PostModerated`: A post was moderated.
-  - post identifier
-
-- `PostTextUpdated`: A post had the post text edited.
-  - post identifier
-  - edit number of new text
-
-- `ForumSudoSet`: A new forum sudo was set by root.
-  - optional account for old forum sudo
-  - optional account of new forum sudo
-
-## Dispatchable Methods
-
-### `create_category`
-
-#### Payload
-
-- `origin`: call origin
-- `parent`: not set, or category identifier of parent
-- `title`: text title
-- `description`: description text
-
-#### Description
-
-Add a new category.
-
-#### Errors
-
-- Bad signature
-- `forumSudo` does not match signature
-- `parent` is set, but does not exist
-- `parent` is set, but is (directly or indirectly) archived or deleted category
-- category depth exceeded, see `MAX_CATEGORY_DEPTH`.
-- `title` invalid
-- `description` invalid
-
-#### Side effect(s)
-
-- `categoryById` extended with new `Category` under old value of `nextCategoryId` as identifier
-- `nextCategoryId` incremented
-- if `parent` is not root, then subcategory count
-
-#### Event(s)
-
-- `CategoryCreated`
-
-### `update_category`
-
-#### Payload
-
-- `origin`: call origin
-- `categoryId`: id of category to update
-- `archive`: whether to archive
-- `deleted`: whether it is deleted
-
-#### Description
-
-Update a category.
-
-#### Errors
-
-- Bad signature
-- `forumSudo` does not match signature
-- `categoryId` does not match any category
-- category with `categoryId` is directly deleted, cannot be unarchived
-- category with `categoryId` is indirectly archived or deleted, cannot be updated in any way
-
-_Note: We don't mind directly archived/deleted categories from being re-archived/deleted respectively, we just ignore_
-
-#### Side effect(s)
-
-- category in `categoryById` under key `categoryId` has archival and deletion status equal to `archive` and `delete`, respectively, and if parent is set, then it will have number of subcategories decremented if `delete` is true, but category was perviously not.
-
-#### Event(s)
-
-- `CategoryUpdated` with new status values, as they apply
-
-### `create_thread`
-
-#### Payload
-
-- `origin`: call origin
-- `categoryId`: identifier of category where thread should be created
-- `title`: thread title text
-- `text`: text of initial post
-
-#### Description
-
-Create new thread in category.
-
-#### Errors
-
-- Bad signature
-- Signer is not forum user
-- `categoryId` not a valid category
-- `categoryId` is (directly or indirectly) archived
-- `categoryId` is (directly or indirectly) deleted
-- `title` not valid
-- `text` not valid
-
-#### Side effect(s)
-
-- `threadById` extended with new `Thread` instance under old value of `nextThreadId` as identifier
-- increment unmoderated thread count of category with identifier `categoryId`
-- `nextThreadId` incremented
-
-#### Event(s)
-
-- `ThreadCreated`
-
-### `moderate_thread`
-
-#### Payload
-
-- `origin`: call origin
-- `threadId`: identifier of `Thread` to delete
-- `rationale`:  text rationale
-
-#### Description
-
-Moderate thread.
-
-#### Errors
-
-- Bad signature
-- `forumSudo` does not match signature
-- `threadId` does not match any thread
-- `rationale` invalid
-- thread already moderated
-- thread in (directly or indirectly) archived category
-- thread in (directly or indirectly) deleted category
-
-#### Side effect(s)
-
-- corresponding `Thread` instance in `threadById` has `ModerationAction` set
-- update moderated and unmoderated thread count of corresponding category
-
-#### Event(s)
-
-- `ThreadModerated`
-
-### `add_post`
-
-#### Payload
-
-- `origin`: call origin
-- `threadId`: thread in which to add post
-- `text`: text of post
-
-#### Description
-
-Adding post to thread
-
-#### Errors
-
-- Bad signature
-- Signer is not forum user
-- thread with identifier value `threadId` does not exist
-- thread with identifier value `threadId` is moderated
-- category of thread is (directly or indirectly) archived
-- category is (directly or indirectly) deleted
-
-#### Side effect(s)
-
-- `postById` extended with new `Post` instance with under old value of `nextPostId` as identifier
-- `nextPostId` updated
-- unmoderated posts updated in corresponding thread
-
-#### Event(s)
-
-- `PostAdded`
-
-### `edit_post_text`
-
-#### Payload
-
-- `origin`: call origin
-- `postId`: post to be edited
-- `new_text`: new text
-
-#### Description
-
-Edit post text
-
-#### Errors
-
-- Bad signature
-- `postId` does not correspond to a post
-- Signer does not match creator of post with identifier `postId`
-- post with identifier `postId` is moderated
-- category is (directly or indirectly) archived
-- category is (directly or indirectly) deleted
-
-#### Side effect(s)
-
-- Post with identifier `postId` has its edit vector with new `PostTextEdit` instance at front
-
-#### Event(s)
-
-- `PostTextUpdated`
-
-### `moderate_post`
-
-#### Payload
-
-- `origin`: call origin
-- `postId`: post to be edited
-- `rationale`:  text rationale
-
-#### Description
-
-Moderate post
-
-#### Errors
-
-- Bad signature
-- `forumSudo` does not match signature
-- `postId` does not match any post
-- `rationale` invalid
-- post already moderated
-- thread already moderated
-- thread in (directly or indirectly) archived category
-- thread in (directly or indirectly) deleted category
-
-#### Side effect(s)
-
-- corresponding `Post` instance in `postById` has `ModerationAction` set
-- update moderated and unmoderated post count of corresponding thread
-
-#### Event(s)
-
-- `PostModerated`
-
-### `set_forum_sudo`
-
-Note: I am not sure how to do this one, I am not familiar with Substrate **Sudo** functionality.
-
-#### Payload
-
-- `newForumSudo`: optional account of new proposed forum sudo
-
-#### Description
-
-Set forum sudo.
-
-#### Errors
-
-- Bad signature
-- Not root origin
-
-#### Side effect(s)
-
-- `forumSudo` equals `newForumSudo`
-
-#### Event(s)
-
-- `ForumSudoSet`

+ 0 - 377
testnets/rome/specification/runtime/hiring-module.md

@@ -1,377 +0,0 @@
-# Hiring Module
-
-## Table of Contents
-
-- [Name](#name)
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchables](#dispatchables)
-- [Non-dispatchables](#non-dispatchables)
-  - [add_opening](#add_opening)
-  - [begin_accepting_applications](#begin_accepting_applications)
-  - [fill_opening](#fill_opening)
-  - [cancel_opening](#cancel_opening)
-  - [remove_opening](#remove_opening)
-  - [add_application](#add_application)
-  - [deactivate_application](#deactivate_application)
-  - [remove_application](#remove_application)
-  - [unstaked](#unstaked)
-  - [on_finalize](#on_finalize)
-
-## Name
-
-`Hiring`
-
-## Motivation
-
-A variety of roles will require a set of candidates to express, possibly staked, interest in joining, to some authority, whom is then tasked with selecting a subset of winners to enter the given role. While this sort of interaction could be facilitated off chain, the benefit of avoiding possibly faulty authority nodes and a more robust evidentiary trail. It also makes it easier to organise more complex hiring business logic, such as the outcome of some group decision making process where stakeholders may act asynchronously.
-
-## Design
-
-There are two core concepts in this module, _an opening_ and an _application_.
-
-An opening represents the process of hiring one or more new actors into some available role, and the core states and state transitions are sketched in the following figure.
-
-![hiring_opening](https://user-images.githubusercontent.com/437292/63675509-4296d780-c7e9-11e9-8512-05b71a8646b9.png)
-
-An application represents the bid of some actor to occupy the position opened for in a given opening , and the core states and state transitions are sketched in the following figure.
-
-![hiring_application](https://user-images.githubusercontent.com/437292/63675514-46c2f500-c7e9-11e9-9c46-7a89e6a2645f.png)
-
-As part of hiring, applicants may have to stake both for the application and for the role. This module presumes that some external module exists to manage staking, slashing and unstaking. It expects to be able to invoke these actions, and also to be notified about the completion of unstaking actions which have h had an unstaking period.
-
-## Usage
-
-In many contexts, stepping into a role may have extraneous informational or economic constraints that are not embodied in this module. In this case those should be modelled on top of this module.
-
-## Dependencies
-
-- `Staking`: The staking module
-
-## Concepts
-
-```Rust
-
-trait Trait {
- type ApplicationId: .. ,
- type OpeningId: ...,
-
- /* OnApplicationDeactivated(id, cause) : ... */
-
-}
-
-// Possible causes
-enum ApplicationDeactivationCause {
-  External, // Add ID here for simplicity?
-  Hired,
-  NotHired
-  CrowdedOut,
-  OpeningCancelled,
-  ReviewPeriodExpired,
-  OpeningFilled,
-}
-
-// Possible status of an application
-enum ApplicationStage {
-
-  // Normal active state
-  Active,
-
-  //  Waiting for one or more unstakings, with a non-zero unstaking period, to complete.
-  Unstaking {
-
-    // When deactivation was initiated.
-    deactivation_initiated: BlockNumber,
-
-    // The cause of the deactivation.
-    cause: ApplicationDeactivationCause
-  },
-
-  // No longer active, can't do anything fun now.
-  Inactive {
-
-    // When deactivation was initiated.
-    deactivation_initiated: BlockNumber,
-
-    // When deactivation was completed, and the inactive state was established.
-    deactivated: BlockNumber,
-
-    // The cause of the deactivation.
-    cause: ApplicationDeactivationCause
-
-  }
-}
-
-// An application for an actor to occupy an opening.
-struct Application {
-
-  // Application identifier
-  id: ApplicationId,
-
-  // Identifier for opening for which this application is for.
-  opening_id: OpeningId,
-
-  // Index of arrival across all applications for given opening.
-  applicant_arrival_index: u32,
-
-  // Block at which this application was submitted.
-  activated: BlockNumber,
-
-  // Identifier for stake that may possibly be established for role
-  // May possibly no longer be valid, depending on stage.
-  initial_role_staking_id: Option<StakeId>,
-
-  // Identifier for stake that may possibly be established for application
-  // May possibly no longer be valid, depending on stage.
-  initial_application_staking_id: Option<StakeId>,
-
-  // Status of this application
-  stage: ApplicationStage,
-
- //
- human_readable_text: Vec<u8>
-}
-
-// How one may automatically rank different outstanding applications. This is require to enforce a limited application pool.
-enum ApplicationRankingPolicy {
-
-  // Rank on arrival time of application
-  RankOnArrivalTime {
-
-    // Wether to rank arrival times in ascending or descending order
-    ascending: bool
-  },
-
-  // Rank on staked quantity in application
-  RankOnApplicationStake {
-
-    // Whether to do secondary tie break on the quantity staked for the role itself
-    tie_break_on_role_stake: bool,
-  },
-
-  // Rank on staked quantity for role itself
-  RankOnRoleStake {
-
-    // Whether to do secondary tie break on the quantity staked in for the application itself
-    tie_break_on_application_stake: bool
-  }
-}
-
-// How to limit the number of eligible applicants
-struct ApplicationRationingPolicy {
-
-  // The maximum number of applications that can be on the list at any time.
-  max_active_applicants: u32,
-
-  // How applicants will be ranked, in order to respect the maximum simultaneous application limit
-  applicant_ranking: ApplicationRankingPolicy
-
-}
-
-enum OpeningDeactivationCause {
-  CancelledBeforeActivation,
-  CancelledAcceptingApplications,
-  CancelledInReviewPeriod,
-  ReviewPeriodExpired,
-  Filled
-}
-
-enum ActiveOpeningStage {
-
-    AcceptingApplications {
-
-      //
-      started_accepting_applicants_at_block: BlockNumber,
-    }
-
-    //
-    ReviewPeriod {
-
-      started_accepting_applicants_at_block: BlockNumber,
-
-      started_review_period_at_block: BlockNumber,
-    }
-
-    //
-    Deactivated {
-
-      cause: OpeningDeactivationCause,
-
-      deactivated_at_block: BlockNumber,
-
-      started_accepting_applicants_at_block: BlockNumber,
-
-      started_review_period_at_block: BlockNumber,
-
-    }
-}
-
-// The stage at which an `Opening` may be at.
-enum OpeningStage {
-
-  // ..
-  WaitingToBegin {
-    begins_at_block: BlockNumber
-  },
-
-  // ..
-  Active {
-
-    // Active stage
-    stage: ActiveOpeningStage,
-
-    // Identifiers for all applications which have been added, but not removed, for this opening.
-    applicants: Vec<ApplicationId>,
-
-    // Identifiers for applications that are still Began. These are the only applications which
-    // still in the running for getting hired while the opening is still no deactivated.-.
-    active_applicants: Vec<ApplicationId>,
-
-    // Counters over all possible application states. Are very useful
-    // for light clients.
-    // NB: The sum of all of the below is the total number of applications ever activated.
-    active_application_count: u64,
-    unstaking_application_count: u64,
-    deactivated_application_count: u64, // for any reason.
-    removed_application_count: u64
-  }
-
-}
-
-// Constraints around staking amount
-enum StakingAmountMode {
-  AtLeast,
-  Exact
-}
-
-type UnstakingPeriodLength: Option<BlockNumber>;
-
-// Policy for staking
-struct StakingPolicy {
-
-  // Staking amount
-  amount: Balance,
-
-  // How to interpret the amount requirement
-  amount_mode: StakingAmountLimitMode,
-
-  // The unstaking period length, if any, deactivation causes that are autonomous,
-  // that is they are triggered internally to this module.
-  crowded_out_unstaking_period_length: UnstakingPeriodLength,
-  review_period_expired_unstaking_period_length: UnstakingPeriodLength,
-}
-
-// An opening
-struct Opening {
-
-  // Identifier for opening
-  id: OpeningId,
-
-  // Block at which opening was added
-  created: BlockNumber,
-
-  // Current stage for this opening
-  stage: OpeningStage,
-
-  // Maximum length of the review stage.
-  max_review_period_length: BlockNumber,
-
-  // Whether, and if so how, to limit the number of active applicants....
-  application_rationing_policy: Option<ApplicationRationingPolicy>,
-
-  // Whether any staking is required just to apply, and if so, how that stake is managed.
-  application_staking_policy: Option<StakingPolicy>,
-
-  // Whether any staking is required for the role, and if so, how that stake is managed.
-  role_staking_policy: Option<StakingPolicy>,
-
-  // Description of opening
-  human_readable_text: Vec<u8>
-}
-
-enum StakeType {
-  Role,
-  Application
-}
-
-// The purpose of some staked funds.
-struct StakePurpose {
-
-  // Application to which the stake corresponds
-  application_id: ApplicationId,
-
-  // Type of
-  type: StakeType
-}
-
-```
-
-## State
-
-- `openingsById: Map OpeningID => Opening`: Openings.
-- `nextOpeningId: OpeningId`: Identifier for next opening to be added.
-- `applicationsById: Map ApplicationId => Application`: Applications.
-- `nextApplicationId: ApplicationId`: Identifier for next application to be added.
-- `stakePurposeByStakingId: StakeId => StakePurpose`: Internal purpose of given stake, i.e. fro what application, and whether for the role or for the application.
-
-## Events
-
-**None**
-
-## Dispatchables
-
-**None**
-
-## Non-dispatchables
-
-**Explain how an application is deactivated... callback `OnApplicationDeactivated`, synch vs. async.**
-
-### `add_opening`
-
-Add new opening based on given inputs policies. The new `Opening` instance has stage `WaitingToBegin`, and is added to `openingsById`, and has identifier equal to `nextOpeningId`. The latter is incremented. The used identifier is returned.
-
-### `begin_accepting_applications`
-
-Applies when given opening is in `WaitingToBegin` stage. The stage is updated to `Began.AcceptingApplications` stage. Returns nothing.
-
-### `fill_opening`
-
-Applies when given opening is in `ReviewPeriod` stage. Given list of applications are deactivated to under the `Hired`, all other active applicants are `NotHired`. Separately for each group, unstaking periods for any applicable application and/or role stake must be provided. Returns nothing.
-
-### `begin_review`
-
-Applies when given opening is in `Began.AcceptingApplications` stage. The stage is updated to `Began.ReviewPeriod`. Returns nothing.
-
-### `cancel_opening`
-
-Applies when given opening is in stage `Began.AcceptingApplications` or `Began.ReviewPeriod`. The stage is updated to `Began.Inactive` in all cases. There may be active applications, in which case deactivation of all is initiated. The number of applications which had deactivation initiated is returned.
-
-### `remove_opening`
-
-Applies when a given opening is in stage `WaitingToBegin` or `Began.Inactive`. In the latter it is also required that all applications are inactive. Opening, and all associated applications, are removed from `openingsById` and `applicationsById`. The number of applications removed is returned.
-
-### `add_application`
-
-Applies when a given opening is in stage `Began.AcceptingApplications`. If the `application_rationing_policy` of the opening has a restrictive policy, and space has ran out, then possibly deactivate another application which may get bumped out. If the new application does not make it, then return `false`. Otherwise move forward. Create a new `Application` instance, with identifier value equal to `nextApplicationId`, which is incremented, and adds to `applicationsById`. Do possible initial staking based on policy of opening and given inputs, and update `stakePurposeByStakingId` correspondingly.
-
-### `deactivate_application`
-
-Applies when a given opening is in stage `Began.AcceptingApplications`, and the application is in stage `Active`. If the application has any staking associated with it, unstaking is initiated, and the application is set to stage `Unstaking`.  Otherwise, the stage is set directly to `Inactive`. The `cause` is set to `External`. An invocation of `OnApplicationDeactivated` is lastly made. Returns the resulting stage of the application during the call.
-
-### `remove_application`
-
-Applies when an application is in the stage `Inactive`. Results in removing instance from `applicationsById`, and from the corresponding opening. Returns nothing.
-
-### `unstaked`
-
-Checks whether staking identifier is key in `stakePurposeByStakingId`, if so, removes mapping and recovers the relevant application and triggers `unstaked` on it. Returns a boolean indicating whether there was a match.
-
-### `on_finalize`
-
-Manages the following autonomous events across all applications:
-
-- beginning to accept applications
-- review period expiry

BIN
testnets/rome/specification/runtime/img/versioned_data_store_example.png


+ 0 - 202
testnets/rome/specification/runtime/membership-module.md

@@ -1,202 +0,0 @@
-# Membership Module
-
-## Table Of Contents
-
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Name](#name)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-  - [buy_membership](#`buy_membership`)
-  - [change_member_about_text](#`change_member_about_text`)
-  - [change_member_avatar](#`change_member_avatar`)
-  - [change_member_handle](#`change_member_handle`)
-  - [update_profile](#`update_profile`)
-  - [add_screened_member](#`add_screened_member`)
-  - [set_screening_authority](#`set_screening_authority`)
-- [Non-dispatchable Methods](#non-dispatchable-methods)
-  - [is_active_member](#`is_active_member`)
-  - [primary_account_by_member_id](#`primary_account_by_member_id`)
-  - [can_register_role_on_member](#`can_register_role_on_member`)
-  - [can_unregister_role_on_member](#`can_unregister_role_on_member`)
-  - [register_role_on_member](#`register_role_on_member`)
-  - [unregister_role_on_member](#`unregister_role_on_member`)  
-
-## Name
-
-`Membership`
-
-## Motivation
-
-The membership module is supposed to represent the current set of members on the platform, and manage corresponding rich profiles and what roles they occupy, as well as the entry of new members.
-
-## Design
-
-### Membership
-
-Each membership corresponds to an account, but not all accounts will have a membership. An account may only be associated with a single membership. A membership has a corresponding rich profile, including practical user facing information, such as a unique immutable handle, an avatar URI and a short descriptive text.
-
-A membership can also be active or inactive.
-
-### Terms
-
-A membership is established in the context of membership terms, which describe the price of admission and human readable conditions being agreed to. At any given time there may be a range of different terms available, and the set may change over time.
-
-### Adding members
-
-A member can be introduced in two ways. Either way depends on the module either being open or closed for accepting new members.
-
-The first way is for a member to simply pay for getting entry, with a reference to a given set of terms. In this case, the membership will have a reference to the terms under which it was established.
-
-The second is for a screening authority, which is a designated account, to simply add the new member. In this case, the membership will have a reference to the screening authority.
-
-## Usage
-
-Used as a simple membership and role registry.
-
-## Dependencies
-
-- `Currency`
-
-## Concepts
-
-```Rust
-
-trait Trait {
-  type RoleActorId : INTEGER_TRAIT_CONSTRAINTS;
-  type MemberId : INTEGER_TRAIT_CONSTRAINTS;
-  type PaidTermId :  INTEGER_TRAIT_CONSTRAINTS;
-  type SubscriptionId : INTEGER_TRAIT_CONSTRAINTS;
-}
-
-pub struct PaidMembershipTerms<T: Trait> {
-    /// Quantity of native tokens which must be provably burned
-    pub fee: BalanceOf<T>,
-    /// String of capped length describing human readable conditions which are being agreed upon
-    pub text: Vec<u8>,
-}
-
-enum RoleType {
- ForumUser,
- Curator,
- CurationLead,
-...
-}
-
-struct ActorInRole {
- role_type: RoleType,
- role_id: RoleActorId
-}
-
-struct Profile<T: Trait> {
-
-   pub handle: Vec<u8>,
-   pub avatar_uri: Vec<u8>,
-   pub about: Vec<u8>,
-   pub registered_at_block: T::BlockNumber,
-   pub registered_at_time: T::Moment,
-   pub entry: EntryMethod<T>,
-   pub suspended: bool,
-   pub subscription: Option<T::SubscriptionId>,
-   pub controller_account: T::AccountId,
-   pub roles: BTreeMap<RoleId, Vec<ActorId>>,
-
-}
-
-pub struct UserInfo {
-    pub handle: Option<Vec<u8>>,
-    pub avatar_uri: Option<Vec<u8>>,
-    pub about: Option<Vec<u8>>,
-}
-```
-
-## State
-
-- `membershipByActorInRole: Map ActorInRole => MemberId`
-
-- `NextMemberId`: Unique identifier for next member, should equal total number of members ever created.
-
-- `AccountIdByMemberId`: Maps member id to an account id.
-
-- `MemberIdByAccountId`: Maps account id to optional member id.
-
-- `MemberProfile`: Maps member id to `Profile` of member.
-
-- `Handles`: Maps handle to corresponding member id.
-
-- `NextPaidMembershipTermsId`: Next paid membership terms id.
-
-- `PaidMembershipTermsById`: Maps paid terms id to actual terms.
-
-- `ActivePaidMembershipTerms`: Set of active paid term ids.
-
-- `NewMembershipsAllowed`: Whether new memberships can currently be established.
-
-- `ScreeningAuthority`: Optional account of screener.
-
-- `MinHandleLength`, `MaxHandleLength`, `MaxAvatarUriLength`, `MaxAboutTextLength`: Mutable constraint variables
-
-## Events
-
-- `MemberRegistered`: A member was registered with a given id and account.
-- `MemberUpdatedAboutText`: A member, with given id, had text updated.
-- `MemberUpdatedAvatar`: A member, with given id, had avatar URI updated.
-- `MemberUpdatedHandle`: A member, with given id, had handle updated.
-
-## Dispatchable Methods
-
-### `buy_membership`
-
-Establish new membership through payment.
-
-### `change_member_about_text`
-
-Change about text on membership.
-
-### `change_member_avatar`
-
-Change the avatar of a member.
-
-### `change_member_handle`
-
-Change the unqiue handle of a member.
-
-### `update_profile`
-
-Update the profile of a member.
-
-### `add_screened_member`
-
-Introduce a new screend member.
-
-### `set_screening_authority`
-
-Update the screening authority.
-
-## Non-dispatchable Methods
-
-### `is_active_member`
-
-Check whether member is active.
-
-### `primary_account_by_member_id`
-
-Returns primary account of given member by id.
-
-### `can_register_role_on_member`
-
-Whether a given member can step into a given role at this time.
-
-### `can_unregister_role_on_member`
-
-Whether a given member can step out of a role at this time.
-
-### `register_role_on_member`
-
-Register a member in a role.
-
-### `unregister_role_on_member`
-
-Unregister a member in a role.

+ 0 - 86
testnets/rome/specification/runtime/migration-module.md

@@ -1,86 +0,0 @@
-# Migration Module
-
-## Table of Contents
-
-- [Design](#design)
-- [Name](#name)
-- [Dependencies](#dependencies)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [on_initialize](#on_initialize)
-
-## Design
-
-### Motivation
-
-The purpose of this module is to run migration routines required in the upgrading from Athens to Acropolis network through an on-chain runtime upgrade.
-
-### Function
-
-Routines run when the `on_initialize` dispatchable is invoked. In the upgrade to Acropolis there are no other modules which have similar code in their own handler of this callback which depend on the migration having being executed. This means it is immaterial in what order the migration module is invoked, however in the future care must be made to guarantee the migration module running first.
-
-## Name
-
-`Migration`
-
-## Dependencies
-
- - [Data Directory Module](./substrate-runtime/data-directory-module.md)
-
- - [Data Object Storage Registry Module](./substrate-runtime/data-object-storage-registry.md)
-
- - [Sudo SRML Module](#)
-
-## Concepts
-
-Standard.
-
-## State
-
-- `SpecVersion`: If set, what runtime spec version the store was initialised, otherwise not set.
-
-## Events
-
-- `Migrated`: Runtime migration code was executed
-  - block number of migration
-  - spec version
-
-## on_initialize
-
-### Description
-
-Pre-block execution code which actually performs migration and initialization under suitable conditions, namely
-
-- `SpecVersion` is not set, which would possibly be the case from genesis
-- `SpecVersion` is less than the runtime [spec version](../README.md#runtime-version)
-
-### Event(s)
-
-- `Migrated`
-
-### Side effect(s)
-
-- `SpecVersion` is set to [spec version](../README.md#runtime-version).
-
-#### Forum
-
-- `NextCategoryId` is `1`
-- `NextThreadId` is `1`
-- `NextPostId` is `1`
-- `ForumSudo` is `key` in `Sudo` module.
-- `CategoryTitleConstraint` is `(10,90)`
-- `CategoryDescriptionConstraint` is `(10, 490)`
-- `ThreadTitleConstraint` is `(10, 90)`
-- `PostTextConstraint` is `(10, 990)`
-- `ThreadModerationRationaleConstraint` is `(10, 290)`
-- `PostModerationRationaleConstraint` is `(10, 290)`
-
-#### DataDirectory
-
-- `PrimaryLiaisonAccountId` is gone.
-- `KnownContentIds`, `DataObjectByContentId` and `MetadataByContentId` are all empty.
-
-#### DataObjectStorageRegirstry
-
-- `RelationshipsByContentId` is empty.

+ 0 - 150
testnets/rome/specification/runtime/recurring-reward-module.md

@@ -1,150 +0,0 @@
-# Recurring Reward Module
-
-## Table of Contents
-
-- [Name](#name)
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-- [Non-dispatchable Methods](#non-dispatchable-methods)
-  - [add_recipient](#add_recipient)
-  - [remove_recipient](#remove_recipient)
-  - [add_reward_relationship](#add_reward_relationship)
-  - [remove_reward_relationship](#remove_reward_relationship)
-  - [set_reward_relationship](#set_reward_relationship)
-  - [on_finalize](#on_finalize)
-
-## Name
-
-`RecurringReward`
-
-## Design
-
-### Motivation
-
-Some actors will be in a long term role with a corresponding pre-determined recurring reward amounts and payout frequencies, being financed out of resource budget with a purpose encompassing their role.
-
-### Design
-
-A _recipient_ designates an actor who can receive rewards through being registered as a recipient, through a _receives from source_ relationship, from a _reward source_. Each relationship has its own amount and payout frequency, which can be in a repeated or one-off payment mode.
-
-### Usage
-
-The module is meant to be a low level component of a fuller reward environment, where more context specific modules will layer contextual permissions and requirements on top of this module. This is why there are no dispatchables or events.
-
-## Dependencies
-
-- `TokenMint` module
-
-## Concepts
-
-```Rust
-
-trait Trait : TokenMint::Trait + System::Trait {
-
- // Type of identifier for recipients.
- type RecipientId: INTEGER_TRAIT_CONSTRAINTS,
-
- // Type for identifier for relationship representing that a recipient recieves recurring reward from a token mint.
- type RewardRelationshipId: INTEGER_TRAIT_CONSTRAINTS,
-
- // Handle for aftermath of a payout attempt
- type PayoutStatusHandler: fn(Self::RewardRelationshipId: id, bool: status, destination_account: T::AccountId, amount: T::Balance);
-}
-
-// A recipient of recurring rewards
-struct Recipient<T: Trait> {
-
-  /// stats
-
-  // Total payout received by this recipient
-  total_reward_received: T::Balance,
-
-  // Total payout missed for this recipient
-  total_reward_missed: T::Balance
-}
-
-struct RewardRelationship<T: Trait> {
-
-  // Identifier for receiver
-  recipient: T::RecipientId,
-
-  // Identifier for reward source
-  mint_id: T::TokenMintId,
-
-  // Destination account for reward
-  account: T::AccountId,
-
-  // Paid out for
-  amount_per_payout: T::Balance,
-
-  // When set, identifies block when next payout should be processed,
-  // otherwise there is no pending payout
-  next_payment_in_block: Option<T::Blocknumber>,
-
-  // When set, will be the basis for automatically setting next payment,
-  // otherwise any upcoming payout will be a one off.
-  payout_interval: Option<T::Blocknumber>,
-
-  /// stats
-
-  // Total payout received in this relationship
-  total_reward_received: T::Balance,
-
-  // Total payout failed in this relationship
-  total_reward_missed: T::Balance
-}
-
-```
-
-## State
-
-- `recipients: map T::RecipientId => Recipient<T>`
-- `nextRecipientId: T::RecipientId`
-- `rewardRelationships: map T::RewardRelationshipId => RewardRelationship<T>`
-- `nextRewardRelationshipId: T::RewardRelationshipId`
-
-## Events
-
-**None**
-
-## Dispatchables
-
-**None**
-
-## Non-dispatchable Methods
-
-### `add_recipient`
-
-Adds a new `Recipient` recipient to `recipients`, with identifier equal to `nextRecipientId`, which is also incremented, and returns the new recipient identifier.
-
-### `remove_recipient`
-
-Removes a mapping from `reward_recipients` based on the given identifier.
-
-### `add_reward_relationship`
-
-Adds a new `RewardRelationship` to `rewardRelationships`, for a given source, recipient, account, etc., with identifier equal to current `nextRewardRelationshipId`. Also increments `nextRewardRelationshipId`.
-
-### `remove_reward_relationship`
-
-Removes a mapping from `depenencies` based on given identifier.
-
-### `set_reward_relationship`
-
-For `RecievesFromSource` found in `rewardRelationships` with given identifier, new valus for the following can be set
-
-- `account`
-- `amount_per_payout`
-- `next_payment_in_block`
-- `payout_interval`
-
-### `on_finalize`
-
-For all `RecievesFromSource` found in `rewardRelationships` where `next_payment_in_block` is set and matches current block height, a call to `pay_reward` is made for the suitable amount, recipient and source. The `next_payment_in_block` is updated based on `payout_interval`.
-
-If the call succeeds, `total_reward_received` is incremented on both
-recipient and dependency with `amount_per_payout`, and a call to `T::PayoutStatusHandler` is made. Otherwise, analogous steps for failure.

+ 0 - 259
testnets/rome/specification/runtime/staking-module.md

@@ -1,259 +0,0 @@
-#  Staking Module
-
-## Table of Contents
-
-- [Name](#name)
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-- [Non-dispatchable Methods](#non-dispatchable-methods)
-  - [add_stake](#add_stake)
-  - [remove_stake](#remove_stake)
-  - [stake](#stake)
-  - [increase_stake](#increase_stake)
-  - [decrease_stake](#decrease_stake)
-  - [initiate_slashing](#inititae_slashing)
-  - [pause_slashing](#pause_slashing)
-  - [continue_slashing](#continue_slashing)
-  - [cancel_slashing](#cancel_slashing)
-  - [initiate_unstaking](#initiate_unstaking)
-  - [pause_unstaking](#pause_unstaking)
-  - [continue_unstaking](#continue_unstaking)
-  - [on_finalize](#on_finalize)
-
-## Name
-
-`Stake`
-
-## Design
-
-### Motivation
-
-A module representing the lifecycle of the staking of platform actors. The module is meant to be a low level component of a fuller staking environment, where more context specific modules will layer contextual permissions and requirements on top of this module.
-
-### Implementation
-
-As a consequence of having no dispatchables, there are also no events, client code must layer this on top, possibly decorated with more context. There are autonomous state transitions, triggered at block arrival, and they are signalled through callbacks from corresponding client calls, and module level callback handlers, in this order.
-
-### Notation
-
-This document uses UML state machines, which are hierarchical state machines that have extended state. The event arrows have decorations `([condition])/name(/action)`, where the guts of the `()` are optional, and `condition` evaluates to a boolean and has no side effects on extended state, and the `action` may have side effects.
-
-### Design
-
-This module is organized around the idea of a _stake_, which refers to some amount of funds staked, or bonded, by some actor, for some specific purpose, under some constraints surrounding unstaking. This module only attempts to model the a common lifecycle found in the staking and slashing actions of a broad range of stakes on the platform.
-
-#### Staking
-
-The following image summarizes the key states and transitions concerning the staking.
-
-![role_staking](https://user-images.githubusercontent.com/437292/62929919-b4b7f700-bdbb-11e9-8161-4ab37ede8084.png)
-
-All currently staked funds live in a module owned staking account. No one can sign for spending from this account.
-
-In the staked state, a stake holds a claim on a given amount of value in this account. This claim can rise and fall over time with slashings and explicit changes to the staking amount. The value can only be unlocked by successfully unstaking, and allowing a given amount of time to transpire in the active state.
-
-A key design choice is to allow possibly multiple simultaneous slashing processes to take place simultaneously on the same role. The following  calls are used:
-
-- `begin_new_slashing_stm()`: Create new slashing related state.
-- `slashing_count()`: The number of currently ongoing slashings (see next section), hence no side effects.
-- `unstaking_clock()`: The total number of blocks arrived in the active state, hence no side effects.
-
-The rationale for the paused unstaking state is to allow a possibly extended slashing ordeal to take place during unstaking, without necessarily having to race against the unstaking timer.
-
-#### Slashing
-
-The following image summarizes the key states and transitions concerning a the life cycle of a single slashing.
-
-![role_slashing](https://user-images.githubusercontent.com/437292/62929935-bbdf0500-bdbb-11e9-834e-d60c789bbf53.png)
-
-The `begin_new_slashing_stm` call above involves creating a new instance of such a state machine.
-
-The key design decision here is to not instantly slash, but to have a pausable countdown period. The pausing is ideal for allowing higher order processes around contesting a slashing action, possibly multiple times through a governance hierarchy for example.
-
-A slashing itself involves reducing the claim of a stake on the staking fund. Multiple slashing attempts in flight will possibly compete, in that one brings the claim below the target slashing amount of the other, in which case the maximum feasible amount is slashed.
-
-### Usage
-
-Since all methods are non-dispatchable, the module should be used by one or more use case specific modules that introduce their own set of relevant permissions and extrinsics, as well as interleave the staking and slashing activities with any other use case specific requirements.
-
-## Dependencies
-
-- `Currency`: SRML module
-
-## Concepts
-
-```Rust
-
-// CAN WE REPLACE THIS WITH THE WAY ONE CAN PASS VALUES TO
-// MODULE TRAIT CONFIGURATION?
-static const MODULE_STAKING_FUND_ACCOUNT_ID = 189;
-
-trait StakingEventSink {
-
-  // Type of handler which handles unstaking event.
-  OnUnstakeHandler: fn(id: T::StakeId),
-
-  // Type of handler which handles slashing event.
-  // NB: actually_slashed can be less than amount of the slash itself if the
-  // claim amount on the stake cannot cover it fully.
-  OnSlashedHandler: fn(id: T::StakeId, slash_id: T::SlashId, actually_slashed: T::Balance)
-
-}
-
-trait Trait : StakingEventSink + Currency::Trait {
-
-  // Type of identifier for stake
-  type StakeId: INTEGER_TRAIT_CONSTRAINTS,
-
-  // Type of identifier for a slashing
-  type SlashId: INTEGER_TRAIT_CONSTRAINTS
-}
-
-struct Slash<T: Trait> {
-
-  // The block slashing was initiated.
-  started_at_block: T::BlockNumber,
-
-  // Whether slashing is in active, or conversley paused state
-  // Blocks are only counted towards slashing execution delay when active.
-  is_active: bool,
-
-  // The number blocks which must be finalised while in the active period before the slashing can be executed
-  nr_of_blocks_remaining_in_active_period_for_slashing: T::BlockNumber
-}
-
-enum StakedStatus<T: Trait> {
-
-  // Baseline staking status, nothing is happening.
-  Normal,
-
-  // Unstaking is under way
-  Unstaking {
-
-        // The block where the unstaking was initiated
-        started_in_block: T::BlockNumber,
-
-        // Whether unstaking is in active, or conversely paused state
-        // Blocks are only counted towards unstaking period when active.
-        is_active: bool,
-
-        // The number blocks which must be finalised while in the active period before the unstaking is finished
-        nr_of_blocks_remaining_in_active_period_for_unstaking: T::BlockNumber,
-  }
-}
-
-enum StakingStatus<T: Trait> {
-
-  NotStaked,
-
-  Staked {
-
-    // Total amount of funds at stake
-    staked_amount: T::Balance,
-
-    // All ongoing slashing process.
-    // There may be some issue with BTreeMap for now in Polkadotjs,
-    // consider replacing this with Vec<Slash<T>>, and remove nextSlashId from state, for now in that case,
-    ongoing_slashes: BTreeMap<T::SlashId, Slash<T>>,
-
-    // Status of the staking
-    staked_status: StakedStatus<T>
-  }
-}
-
-struct Stake<T: Trait> {
-
-  // When role was created
-  created: time,
-
-  // Status of any possible ongoing staking
-  staking_status: StakingStatus<T>,
-
-}
-```
-
-## State
-
-- `stakes: linked_map T::StakeId => Stake<T>`: Maps identifiers to a stake.
-- `nextStakeId: T::StakeId`: Identifier value for next stake.
-- `nextSlashId: T::SlashId`: Identifier value for next slashing.
-- `staking_fund_account_id: T::AccountId`: Identifier for account of this module that holds staking funds.
-
-## Events
-
-**None**
-
-## Dispatchable Methods
-
-**None**
-
-## Non-dispatchable Methods
-
-### `add_stake`
-
-- **Parameters:** **None**
-- **Description:** Adds a new stake.
-- **Side-effect(s):** Adds a new stake which is `NotStaked`, created at given block, into `stakes` map with id `nextStakeId`, and increments `nextStakeId`.
-- **Events:** **None**
-- **Returns:** New `StakeId`
-
-### `remove_stake`
-
-- **Parameters:**
-  - `id`: Identifier of stake to be removed
-- **Description:** Removes an unstaked stake.
-- **Side-effect(s):** Given that stake with id `id` exists in `stakes` and is `NotStaked`, remove from `stakes`.
-- **Events:** **None**
-- **Returns:** **None**
-
-### `stake`
-
-Provided the stake exists and is in state `NotStaked` and the given account has sufficient free balance to cover the given staking amount, then the amount is transferred to the `MODULE_STAKING_FUND_ACCOUNT_ID` account, and the corresponding `staked_balance` is set to this amount in the new `Staked` state.
-
-### `increase_stake`
-
-Provided the stake exists and is in state `Staked.Normal`, and the given source account covers the amount, then the amount is transferred to the `MODULE_STAKING_FUND_ACCOUNT_ID` account, and the corresponding `staked_balance` is increased by the amount. New value of `staked_balance` is returned.
-
-### `decrease_stake`
-
-...
-
-### `initiate_slashing`
-
-Initiate a new slashing of a staked stake.
-
-### `pause_slashing`
-
-Pause an ongoing slashing.
-
-### `continue_slashing`
-
-Continue a currently paused ongoing slashing.
-
-### `cancel_slashing`
-
-Cancel an ongoing slashing (regardless of whether its active or paused).
-
-### `initiate_unstaking`
-
-Initiate unstaking of a staked stake.
-
-### `pause_unstaking`
-
-Puase an ongoing unstaking.
-
-### `continue_unstaking`
-
-Continue a currently paused ongoing unstaking.
-
-### `on_finalize`
-
-Handle timers for finalizing unstaking and slashing.
-
-Finalised unstaking results in the `staked_balance` in the given stake to be transferred.
-
-Finalised slashing results in the `staked_balance` in the given stake being correspondingly reduced.

+ 0 - 141
testnets/rome/specification/runtime/storage-modules.md

@@ -1,141 +0,0 @@
-# Storage Modules
-
-## Table Of Contents
-
-- [Design](#design)
-- [Concepts](#concepts)
-- [Architecture](#architecture)
-- [Traits](#traits)
-
-## Design
-
-### Motivation
-
-The storage modules contains all runtime functionality pertaining to managing
-the Joystream storage and distribution network. As such it contains information
-on actors participating in the network, as well as data that should be
-retrievable.
-
-### Structure
-
-There are the following modules, with their own detailed specifications.
-
-1. [Data Object Type Registry](data-object-type-registry-module.md):
-   manages how data may be stored on the network.
-2. [Data Directory](data-directory-module.md):
-   manages *what* data exists on the network.
-3. [Data Object Storage Registry](data-object-storage-registry-module.md):
-   manages  *where* data exists on the network.
-4. [Storage Staking](storage-staking-module.md) manages joining and leaving
-   storage *tranches*.
-
-Also related is the [Content Directory](content-directory.md), which provides
-information for users to discover stored content, but it is not a proper module.
-
-## Concepts
-
-- `DataObjectType`: a structure describing the type of data objects that can be
-  stored. This is not to be confused with file types. Instead, data object
-  types will be used to group files that should follow the same storage
-  patterns. See the [Data Object Type Registry](data-object-type-registry-module.md)
-  for details.
-
-- `ContentId`: a unique identifier for `DataObject` and `ContentMetadata`
-  entries.
-
-- `DataObject`: an entry in the [Data Directory](data-directory-module.md)
-  describing a single piece of content in the network.
-
-- `ContentMetadata`: a structure for describing content metadata in a
-  hierarchical fashion. Refers to one or more `DataObject` entries.
-
-- `SchemaId`: an identifier for a metadata schema. Metadata schemas are used to
-  validate `ContentMetadata` entries.
-
-- `Liaison`: the actor account that is responsible for accepting uploads for
-  a `DataObject`, and making the content available to other storage nodes.
-
-- `StorageRelationship`: an entry in the [Data Object Storage Registry](data-object-storage-registry-module.md),
-  describing which actor has stored a particular `DataObject`.
-
-- A storage provider is an `actor` who has staked for a storage tranche.
-
-#### ContentId, DataObject, ContentMetadata
-
-There is a somewhat strange relationship between these three concepts, as
-`ContentId` identifies both `DataObject` and `ContentMetadata`.
-
-Each `ContentId` can be thought of as a file name in a file system: it
-identifies the file contents on disk (i.e. `DataObject` here), as well as some
-metadata, such as file ownership, permissions, etc.
-
-In our system, we do not manage ownership or permissions in quite this manner,
-but in order to have content discoverable by humans, *do* manage descriptive
-information - aka `ContentMetadata`.
-
-The most often used term for such identifiers is a *content identifier*, hence
-the `ContentId` and corresponding `ContentMetadata` names. They best reflect
-the consumer's point of view, that content has a name and some information.
-
-The `DataObject` on the other hand refers to any generic data BLOB. Rather
-than introducing a `DataObjectId` and creating a 1:1 mapping between them
-and `ContentIds`, the latter is simply re-used.
-
-#### Storage Providers
-
-Storage providers, as indicated above, are actor accounts (public keys) which
-have staked for a storage tranche. The specs will treat these and storage nodes
-interchangeably, which may leave the impression that the runtime stores any
-information on where storage machines are to be contacted, such as IP addresses
-or host names. This is not true.
-
-At the level of abstraction of the storage module, *only* actor account IDs are
-managed. It is the purpose of the [Discovery Module](discovery-module.md) to
-resolve actor account IDs further to currently up-to-date contact information.
-
-### Architecture
-
-The basic unit of storage is a `DataObject`, for which a unique `ContentId` is
-entered into the `DataDirectory`. Each `DataObject` is associated with a
-`DataObjectType`, which describes storage parameters such as maximum permissible
-file sizes, etc.
-
-For each `DataObject`, one storage provider acts as the `Liaison`, accepting and
-validating the actual content upload, and making the content available to other
-storage providers. The `Liaison` and any other storage provider that holds the
-content available enters this fact into the runtime as a
-`StorageRelationship`.
-
-For purposes of content discovery, `ContentMetadata` is added to the runtime.
-Each `ContentMetadata` is identified by a `ContentId`; that is, one `ContentId`
-usually maps to a `DataObject` and a `ContentMetadata` entry. The
-`ContentMetadata` has a JSON payload, and a `SchemaId` indicating to clients how
-are to interpret the payload.
-
-`ContentMetadata` *can* be used hierarchically. Each entry can have any number
-of `ContentId` as children. These child IDs can be used to store `DataObject`
-and/or `ContentMetadata` entries of their own, allowing for organizing
-`DataObject` entries into hierarchical structures, e.g. for:
-
-- Podcast episodes in a Podcast
-- Series episodes in a video series
-- Individual language audio files for translated videos, or subtitle texts.
-- etc.
-
-The runtime imposes no restrictions on how `SchemaId` is to be used; however,
-the intent is to eventually add a schema registry that stores e.g.
-[well documented schemas](https://schema.org), or some Joystream specific
-derivates.
-
-## Traits
-
-<!-- This section must be reworked and renamed, we dont ahve this in standard. -->
-
-Most of the storage module's sub-modules only make use of each other, so
-there is not much need for documenting traits as interfaces between them.
-However, one public trait, to be used by the related [Content Directory](content-directory.md)
-does exist:
-
-- `DataObjectHasActiveStorageRelationships`: implements a method
-  `has_active_storage_relationships(content_id)` that returns true if there
-  exist active `StorageRelationship` entries, and false otherwise.

+ 0 - 126
testnets/rome/specification/runtime/token-mint-module.md

@@ -1,126 +0,0 @@
-# Token Mint Module
-
-## Table of Contents
-
-- [Name](#name)
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchable Methods](#dispatchable-methods)
-- [Non-dispatchable Methods](#non-dispatchable-methods)
-  - [add_mint](#add_mint)
-  - [remove_mint](#remove_mint)
-  - [transfer_tokens](#transfer_tokens)
-  - [set_capacity](#set_limit)
-  - [transfer_capacity](#transfer_capacity)
-  - [on_finalize](#on_finalize)
-
-## Name
-
-`TokenMint`
-
-## Motivation
-
-Assume an actor is allocating tokens on behalf of others in the service of some broad goal. First, one may want to have flexibility in the _automatic_ constraints under which the allocation occurs. For example, one may want to
-
-- limit the total quantity within a given time period.
-
-- limit the set of possible recipients.
-
-- limit the set of possible distributions across recipients.
-
-These limits are cannot be enforced by simply crediting a discretionary account controlled by the allocator. Moreover, one may not want to finance the allocation by a large up-front minting, but rather mint tokens as they are required.
-
-Second, there may be multiple such actors organized into some sort of network or hierarchy, where the goals of one actor support the goals of another, and as a result, one may want an actor to be able to finance the allocative budget of another.
-
-## Design
-
-The design centers around the idea of a _token mint_. A token mint has the ability to mint and transfer new tokens to an account. It has a _minting capacity_, which indicates how much can be minted currently, and this capacity is decreased with each minting action. A minting action is only valid if it respects the current capacity. The capacity can be changed at any time, and it can also be automatically adjusted at a given block interval, by either being set to some fixed value, adjusted by some fixed value (up or down). Lastly, a mint can transfer some part of its capacity to another mint.
-
-## Usage
-
-The module is meant to be a low-level component of a fuller reward environment, where more context-specific modules will layer contextual permissions and requirements on top of this module. This is why there are no dispatchables or events.
-
-## Dependencies
-
-- `Currency`: SRML currency module
-
-## Concepts
-
-```Rust
-trait Trait : Curreny::Trait {
-
- /* Identifier type for a token mint. */
- type TokenMintId: INTEGER_TRAIT_CONSTRAINTS
-}
-
-enum AdjustCapacityBy {
- Setting,
- Adding,
- Reducing  
-}
-
-struct TokenMint<T: Trait> {
-
- id: T::TokenMintId,
-
- capacity: T::Balance,
-
- adjustment_type: AdjustCapacityBy,
-
- block_interval: T::BlockNumber,
-
- // Whether there is an upcoming block where
- // When this is not set, the mint is effectively paused.
- // There should be invariant check that Some(next_in_block) > now
- adjust_capacity_in_block_nr: Option<T::BlockNumber>,
-
- created: T::BlockNumber,
-
- /// Stats
-
- total_minted: T::Balance,
-}
-
-```
-
-## State
-
-- `mints: T::TokenMintId => TokenMint<T>`
-- `nextTokenMintId: T::TokenMintId`
-
-## Events
-
-**None**
-
-## Dispatchables
-
-**None**
-
-## Non-dispatchable Methods
-
-### `add_mint`
-
-Adds a new mint with a given settings to `mints`, and returns new `id`.
-
-### `remove_mint`
-
-Removes a mint with given `id` from `mints`
-
-### `transfer_tokens`
-
-Mints the given amount of tokens out of given mint and credits given account, provided it is within the current capacity, and reduces capacity correspondingly,
-
-### `set_capacity`
-
-Sets capacity of given mint to new given value.
-
-### `transfer_capacity`
-
-Given two mints, deducts from the capacity of one and credits capacity of the other, provided the amount respects the current capacity of the former.
-
-### `on_finalize`
-
-Updates capacity of all mints where the `adjust_capacity_in_block_nr` value match the current block number. For such mints, the value is updated by adding `block_interval`.

+ 0 - 144
testnets/rome/specification/runtime/versioned-store-permissions.md

@@ -1,144 +0,0 @@
-# Versioned Store Permissions Module
-
-## Table of Contents
-
-- [Name](#name)
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchables](#dispatchables)
-- [Non-dispatchables](#non-dispatchables)
-  - [create_class](#create_class)
-  - [add_class_property](#add_class_property)
-  - [add_class_schema](#add_class_schema)
-  - [update_entity](#update_entity)
-  - [delete_entity](#delete_entity)
-
-## Name
-
-`VersionedStorePermissions`
-
-## Motivation
-
-Assume one has to use the versioned store in a context where runtime upgrades are not available every time one adds a new schema or a new class or entity. In this case the rules for how to regulate who can update these objects has to already exist in the runtime to begin with. This permissions module attempts to be such a generalised rule system which has sufficient flexibility to model some core constraints required for the currently conceived use case for the versioned store in the Joystream Rome testnet, namely a store of the content directory data.
-
-Notice that the inability to do runtime upgrades need not rule add adding new custom rules per schema, class or entity as they are added, if a smart contract abstraction exists. In this case there is no requirement to commit to a fixed model of updating rules up front.
-
-## Design
-
-Actions on and ownership in the versioned store are done through a two major actor personae types, a _base principal_ and a _entity principal_. These personae are meant to lift the actor model to a level of abstraction that allows for dynamic groups of participants to act in under shared set of privileges, if needed.
-
-A base principal type comes in varieties
-
-- **System:** Root origin in the runtime as an actor
-- **Account:** an account directly behaving as an actor
-- **Group Member:** member of one among a set of externally defined actor groups
-
-An entity principal is either a base principal, or the owner of a given entity relevant to the context at hand.
-
-All actions on the underlying version store require the actor to provide the personae under which they are acting.
-
-The permissions themselves come in three levels. First, the permission to create classes. The ability to do this, and as a consequence define the permissions for the relevant classses created, is a high powered permissions meant for very few actors at any given time.
-
-Second, are _class permissions_ which are specific to a given class, and which define what base personaes have the auhtority to peform the stanard set of actiosn available on a class, as well as update the permissions themselves, which are limited to so called _class admins_. There are also some base integrity constraints for how references can be used with this class.
-
-Third, are _entity permissions_ which refers both to the set of base principal currently designated as the _entity owner_, and to the sets of base entity principals which are allowed to update an entity property value, or delete the entity.
-## Usage
-
-Is meant to sit in front of the versioned store, gating all updates, and to have some complementary governance mechanism to adjudicate who has the top level permissions to create classes, and what accounts belong to what external groups at what time.
-
-## Dependencies
-
-- `VersionedStore`
-
-## Concepts
-
-```Rust
-
-trait GroupMembershipChecker {
-   type GroupId: INTEGER_TRAIT_CONSTRAINTS;
-   fn account_is_in_group(account: AccountId, group: Self::GroupId) -> bool;
-}
-
-//module trait
-trait Trait {
-    type GroupMembershipChecker : GroupMembershipChecker
-}
-
-enum BasePrincipal {
-  System,
-  Account(AccountId),
-  GroupMember(GroupMembershipChecker:GroupId),
-}
-
-enum EntityPrincipal {
-  Base(BasePrincipal)
-  Owner
-}
-
-
-// Represents instance of a Class in the versioned store
-struct ClassPermissions {
-  // concrete permissions
-  entity_permissions: EntityPermissions, // or just Vec<BasePrincipal>
-  entities_can_be_created: bool,
-  add_schemas: Vec<BasePrincipal>,
-  create_entities: Vec<BasePrincipal>,
-  can_only_be_ref_by: Vec<(ClassId, int)>
-
-  // admins can only be set by root origin
-  // admins can update all concrete permissions
-  admins: Vec<BasePrincipal>,
-
-  // Block where permissions were changed (including `admins`)
-  last_permissions_update: BlockNumber
-}
-
-struct EntityPermissions {
-  update: Vec<EntityPrincipal>,
-  delete: Vec<EntitytPrincipal>,
-}
-```
-
-## State
-
-- `create_classes : Vec<BasePrincipal>`: this group of users can be considered the schema admins.
-- `classPermissions: map ClassId => ClassPermissions`: ...
-- `entityOwners: map EntityId => BasePrincipal`: ...
-
-## Events
-
-**TBD**
-
-## Dispatchables
-
-
-### create_class
-
-Creates a new class with given name, description, properties and class schemas.
-
-### add_class_property
-
-Adds a property to a given class.
-
-### add_class_schema
-
-Adds a schema to a given class.
-
-### create_entity
-
-Creates an entity, under a given class, which supports a specific given first schema.
-
-### update_entity
-
-Updates all fields in an entity.
-
-### delete_entity
-
-Deletes a given entity.
-
-## Non-dispatchables
-
-**TBD**

+ 0 - 166
testnets/rome/specification/runtime/versioned-store.md

@@ -1,166 +0,0 @@
-# Versioned Store Module
-
-## Table of Contents
-
-- [Name](#name)
-- [Design](#design)
-- [Dependencies](#dependencies)
-- [Concepts](#concepts)
-- [State](#state)
-- [Events](#events)
-- [Dispatchables](#dispatchables)
-- [Non-dispatchables](#non-dispatchables)
-  - [create_class](#create_class)
-  - [add_class_property](#add_class_property)
-  - [add_class_schema](#add_class_schema)
-  - [update_entity](#update_entity)
-  - [delete_entity](#delete_entity)
-
-## Name
-
-`VersionedStore`
-
-## Motivation
-
-Assume one must model a domain with a large number of entities, where updating representation of an entity must submit to rich dynamic access permissions that live on-chain. Access permissions specifically mean rules about what actor can mutate what representation, and in what way.
-
-Further assume that the representations are structured, in order to allow sufficiently rich and convenient updating, and also linked, to allow semantic depth in the chosen representations. Lastly, they submit to schemas which enforce integrity constraints on the representations.
-
-The problem arises when there is a need to change the schema which currently applies to a large number of entities. This is a computationally expensive operation, which easily could be infeasible within the timeliness constraints of normal blockchain transaction processing.
-
-This can be solved by not requiring all entities to submit to the same schema simultaneously, but instead introducing versioned representations of the same entity through different schemas. This allows the freedom to add newer representations over time, without the need to a large simultaneous migration.
-
-This module embodies such a versioned linked data store.
-
-## Design
-
-The design centers around two key concepts, a _class_ and an _entity_. A class represents a type of entity family, and it may have sequence of _schemas_ associated with it, which defines different ways an entity of the given class may be encoded. A schema can express familiar constraints around what _properties_ an entity must have in order to submit to the schema. A property is defined by some data type requirements, whether it is optional or not, and some metadata. Importantly, one special data type is called the _internal_ property type, which requires an identifier for some entity of a class defined int he store. This is how data is linked. An entity should be understood as some persistent instance of a class that may exist in one or more different versions simultaneously.
-
-### Example
-
-Assume you are modeling two related ideas, the idea of a motion picture and an actor. These two ideas correspond to _classes_.
-
-For an actor, the simplest representation would for example only require one property, their full name. A slightly more advanced representation would be both the name, and a date of birth. These two representations correspond to _schemas_ for the actor class. An actor entity would be a specific actor, like Charlie Chaplin. This entity may live in the data store under only one, or both, schemas mentioned.
-
-For a motion picture, the simplest representation would just be the title name, and a slightly more advanced one could include the lead actor as a property. These two representations are two separate schemas for the motion picture class. A motion picture entity would be a specific motion picture, like The Great Dictator. This entity may live in the data store under only one, or both, schemas mentioned. If being reprsented under the second schema, then the value for the lead actor property would be the identifier of the actor entity Charlie Chaplin.
-
-<img src="versioned_data_store_example.png" />
-
-## Usage
-
-This module has not extrinsics and no concept of permissions or higher level integrity constraints, this must layered on top.
-
-## Dependencies
-
-`None`
-
-## Concepts
-
-```Rust
-
-trait Trait: {
-  type ClassId: INTEGER_TRAIT_CONSTRAINTS,
-  type EntityId: INTEGER_TRAIT_CONSTRAINTS,
-}
-
-struct Class<T: Trait> {
-  name: Name,
-  description: Description,
-
-  // For Person, think "height", "weight", etc.
-  // Unlikely to be more than roughly 20ish, often less.
-  properties: Vec<Property>,
-
-  // All scehmas that are available for this class, think v0.0 Person, v.1.0 Person, etc.
-  class_schemas: Vec<ClassSchema>
-}
-
-struct Entity<T: Trait> {
-  class: T::ClassId, // entity is an instance of this class
-
-  // What schemas under which this entity of a class is available, think
-  // v.2.0 Person schema for John , v3.0 Person schema for John
-  // Unlikely to be more than roughly 20ish, assuming schemas for a given class eventually stableize, or that very old schema are eventually removed.
-  schemas: Vec<u32>, // indexes of schema in corresponding class
-
-  // Values for properties on class that are used by some schema used by this entity!
-  // Length is no more than Class.properties.
-  values: Vec<(u32, PropertyValue)>, // Index is into properties vector of class. Fix anonymous type later.
-  name: Name,
-  deleted: bool
-}
-
-// A schema defines what properties describe an entity
-struct ClassSchema<T: Trait> {
-  version: Version,
-  properties: Vec<uint> // indexes into properties vector for the corresponding class
-}
-
-struct Property {
-  data_type: PropertyDataType,
-  optional: bool,
-  name: Name,
-  description: Description,
-}
-
-enum PropertyDataType {
-  External(ExternalProperty),
-  Internal(ClassId),
-  unsigned_integer_64,
-  signed_integer_64,
-  float64,
-  varchar(u32),
-  boolean
-}
-
-enum PropertyValue {
-  External(ExternalPropertyType),
-  Internal(EntityId),
-  unsinged_integer_64(u64),
-  signed_integer_64(i64),
-  float64(f64)
-  boolean(bool),
-  varchar(Vec<u8>),
-  none
-}
-
-```
-
-## State
-
-- `ClassById : ClassId => Class`: Classes.
-- `EntityById: EntityId => Entity`: Entities.
-
-## Events
-
-**None**
-
-## Dispatchables
-
-**None**
-
-## Non-dispatchables
-
-### create_class
-
-Creates a new class with given name, description, properties and class schemas.
-
-### add_class_property
-
-Adds a property to a given class.
-
-### add_class_schema
-
-Adds a schema to a given class.
-
-### create_entity
-
-Creates an entity, under a given class, which supports a specific given first schema.
-
-### update_entity
-
-Updates all fields in an entity.
-
-### delete_entity
-
-Deletes a given entity.

Some files were not shown because too many files changed in this diff