1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00

docs: update images using latest UI screenshots (#1992)

* Update api_access_history.png

* updating images in - How to capture impression data

* Update Quickstart image

* Update images: How to add strategy constraints

* Update images: How to create a feature toggle

* Update images: How to define custom context fields

* Update images: How to use custom activation strategies

* Update images: How to schedule feature releases

* Update images: How to add new users to your Unleash instance

* Update images: How to create and assign custom project roles

* Update images: How to add SSO with OpenId Connect

* Update images: How to add SSO with SAML 2.0 Okta

* Update images: Slack

* Update images: Activation Strategies

* Update images: Archived toggles

* Update images: The audit log

* Update images: Impression data

* Update images: Custom Activation Strategies

* Update images: Environments

* Update images: Feature Toggle Types

* Update images: Feature Toggle Variants

* Update images: Projects

* Update images: Segments

* Update images: Stickiness

* Update images: Strategy Constraints

* Update images: Technical Debt

* Update images: Unleash Context

* Update images: Unleash introductory overview

* Update images: Unleash introductory overview

* docs: replace strategy constraints step 2 img

* Update website/docs/how-to/how-to-add-strategy-constraints.md

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>

* change text request

* Updating docs text to match the screenshots

* Docs: change audit log to event log and add redirects

* Docs: update "archive" page with deletion info

* Docs: update constraints how to

* Docs: minor tech debt doc fixes

* docs-update-images-set1: update overview page

* Apply suggestions from code review

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>

* Update website/docs/user_guide/quickstart.md

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>

* Update website/docs/user_guide/user-management.md

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>

* Update website/docs/user_guide/user-management.md

Co-authored-by: Thomas Heartman <thomas@getunleash.ai>

* Activation strategy update

* Apply suggestions from code review

* Update delete-archive img

* Fix prettier formatting for admonitions

* Update website/docs/user_guide/environments.md

* Update website/docs/user_guide/projects.md

Co-authored-by: Tymoteusz Czech <tymek+gpg@getunleash.ai>
Co-authored-by: Thomas Heartman <thomas@getunleash.ai>
This commit is contained in:
NicolaeUnleash 2022-09-14 10:59:18 +03:00 committed by GitHub
parent 3a0113d16a
commit 51c7ea053e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
85 changed files with 434 additions and 336 deletions

View File

@ -27,7 +27,7 @@ curl -X POST -H "Content-Type: application/json" \
https://app.unleash-hosted.com/demo/api/admin/features/Demo/toggle/on
```
**Great success!** We have now enabled the feature toggle. We can also verify that it was actually changed by the API user by navigating to the history (audit log) for this feature toggle.
**Great success!** We have now enabled the feature toggle. We can also verify that it was actually changed by the API user by navigating to the Event log (history) for this feature toggle.
![A feature toggle's event log showing that it was last updated by \"admin-api\".](/img/api_access_history.png)

View File

@ -7,14 +7,31 @@ You can _archive_ a feature toggle when it is not needed anymore. You do this by
![The Unleash toggle view showing a focused "archive feature toggle" button, highlighted by a red arrow.](/img/archive-toggle.png 'Archiving a Feature Toggle').
You can not "fully delete a feature toggle". This is to prevent you from creating a new feature toggle with the same name as an old one. This could potentially reactivate old functionality in code that still referenced the old toggle and result in unintended consequences.
## Viewing archived toggles
You can find archived toggles in the toggle archive. The archive is accessible from the global feature toggle list.
Archived toggles are displayed in two places:
1. The global toggle archive
2. The containing project's toggle archive
Unleash keeps a list of _all_ archived toggles across projects in the _global archive_. The global archive is accessible from the global feature list.
Additionally, each project keeps a list of all of _its_ archived toggles. That is, when you archive a toggle, Unleash adds it to the containing project's archive.
## Reviving a feature toggle {#reviving-a-feature-toggle}
If you want to re-use a feature toggle that you previously archived, you can revive in from the feature toggle archive. Click the "revive icon" to revive the toggle. Revived toggles will be in the disabled state when you re-enable them.
![A list of archived toggles. Each toggle displays its name and project it belongs to. Each toggle also has a \"revive\" button, as highlighted by a red arrow.](/img/archive-toggle-revive.png 'Reviving a Feature Toggle').
![A list of archived toggles. Each toggle displays its name and project it belongs to. Each toggle also has a "revive" button, as highlighted by a red arrow.](/img/archive-toggle-revive.png 'Reviving a Feature Toggle').
## Deleting a feature toggle
:::caution
We generally discourage deleting feature toggles. The reason is that feature toggle names in Unleash are used as identifiers, so if you were to delete a toggle and then create a new one with the same name, the new one would reactivate any code that uses the old toggle.
:::
The only way to fully _delete_ a feature toggle in Unleash is by using the archive. An archived toggle can be deleted via the API or by using the "delete feature toggle" button in the global or project-level archive.
![A list of archived toggles, each with a button to delete the toggle permanently.](/img/archive-toggle-delete.png).

View File

@ -1,18 +0,0 @@
---
id: audit_log
title: The audit log
---
The audit log lets you track changes in Unleash. It lists _what_ changed, _when_ it changed, and _who_ performed the change.
## Feature toggle log {#audit-log-per-feature-toggle}
Each feature toggle has its own audit log. The audit log is available under the "Event log" tab in the tab view.
![The event log for a feature toggle. The \"Event log\" tab is highlighted and the UI shows the most recent changes, including a JSON diff and the change details.](/img/unleash-toggle-history.png)
## Global Audit Log {#global-audit-log}
Unleash also keeps an audit log across all toggles and activation strategies, tracking all changes. You access the global audit log via the “Event history”, which you can find in the drawer menu. The global audit log is only accessible by users with instance admin access.
![The global event log and how to get there. It shows a number of events and their changes as well as the navigation steps: use the admin menu and navigate to "event history".](/img/global_audit_log.png)

View File

@ -4,7 +4,9 @@ title: Custom Activation Strategies
---
:::tip
This document is a reference for custom activation strategies. If you're looking for a guide on how to use them, see the [_how to use custom strategies_ guide](../how-to/how-to-use-custom-strategies.md).
:::
**Custom activation strategies** let you define your own activation strategies to use with Unleash. When the [built-in activation strategies](../user_guide/activation-strategies.md) aren't enough, custom activation strategies are there to provide you with the flexibility you need.
@ -25,7 +27,7 @@ The strategy **name** is the only required parameter, but adding a good **descri
### Parameters
![The strategy configuration screen for the custom "TimeStamp" strategy. The "enableAfter" field says "2021-12-25 00:00".](/img/timestamp_use_strategy.png)
![A strategy with five parameters, one of each type.](/img/strategy-parameters-ui-controls.png)
Parameters let you provide arguments to your strategy that it can access for evaluation. When creating a strategy, each parameter can be either required or optional. This marking is to help the user understand what they need to fill out; they can still save the strategy without filling out a required field.
@ -35,7 +37,6 @@ Each parameter consists of three parts:
- an optional **description**: describe the purpose or format of the parameter.
- a parameter **type**: dictates the kind of input field the user will see in the admin UI and the type of the value in the implementation code.
#### Parameter types
Each parameter has one of five different parameter types. A parameter's type impacts the kind of controls shown in the admin UI and how it's represented in code.
@ -44,26 +45,24 @@ The below table lists the types and how they're represented in the JSON payload
All values have an **empty string (`""`) as the default value**. As such, if you don't interact with a control or otherwise set a value, the value will be an empty string.
| type name | code representation | example value | UI control |
|------------|----------------------------------------------------------------|---------------|--------------------------|
| string | `string` | `"a string"` | A standard input field |
| percentage | a `string` representing a number between 0 and 100 (inclusive) | `"99"` | A value slider |
| list | `string` (values are comma-separated) | `"one,two"` | A multi-input text field |
| number | `string` | `"123"` | A numeric text field |
| boolean | a `string`: one of `"true"` or `"false"` | `"true"` | An on/off toggle |
![A strategy with five parameters, one of each type.](/img/strategy-parameters-ui-controls.png)
| type name | code representation | example value | UI control |
| --- | --- | --- | --- |
| string | `string` | `"a string"` | A standard input field |
| percentage | a `string` representing a number between 0 and 100 (inclusive) | `"99"` | A value slider |
| list | `string` (values are comma-separated) | `"one,two"` | A multi-input text field |
| number | `string` | `"123"` | A numeric text field |
| boolean | a `string`: one of `"true"` or `"false"` | `"true"` | An on/off toggle |
## Implementation
:::note
If you have not implemented the strategy in your client SDK, the check will always return `false` because the client doesn't recognize the strategy.
:::
While custom strategies are _defined_ on the Unleash server, they must be _implemented_ on the client. All official Unleash client SDKs provide a way for you to implement custom strategies. You should refer to the individual SDK's documentation for specifics, but for an example, you can have a look at the [_Node.js client implementation_ section in the _how to use custom strategies_ guide](../how-to/how-to-use-custom-strategies.md#step-3-a).
The exact method for implementing custom strategies will vary between SDKs, but the server SDKs follow the same patterns. For front-end client SDKs ([Android](../sdks/android-proxy.md), [JavaScript](../sdks/proxy-javascript.md), [React](../sdks/proxy-react.md), [iOS](../sdks/proxy-ios.md)), the custom activation strategy must be implemented in the [Unleash Proxy](../sdks/unleash-proxy.md).
When implementing a strategy in your client, you will get access to the strategy's parameters and the Unleash Context. Again, refer to your specific SDK's documentation for more details.

View File

@ -3,10 +3,12 @@ title: How to add strategy constraints
---
:::info Availability
Strategy constraints are available to Unleash Pro and Enterprise users.
:::
This guide shows you how to add [strategy constraints](../advanced/strategy-constraints.md) to your feature toggles via the admin UI. For information on how to interact with strategy constraints from an [Unleash client SDK](../sdks/index.md), visit the specific SDKs documentation or see [the relevant section in the strategy constraints documentation](../advanced/strategy-constraints.md#sdks "strategy constraints documentation, section on interacting with constraints from client SDKs").
This guide shows you how to add [strategy constraints](../advanced/strategy-constraints.md) to your feature toggles via the admin UI. For information on how to interact with strategy constraints from an [Unleash client SDK](../sdks/index.md), visit the specific SDKs documentation or see [the relevant section in the strategy constraints documentation](../advanced/strategy-constraints.md#sdks 'strategy constraints documentation, section on interacting with constraints from client SDKs').
## Prerequisites
@ -14,31 +16,24 @@ You'll need to have an existing feature toggle with a defined strategy to add a
## Step 1: Open the constraints menu {#step-1}
Every strategy will have button labeled "add constraints" when viewed in the admin UI. Interact with this to open the constraints menu.
On the strategy you're working with, find and select the "edit strategy" button.
![A feature toggle with one strategy. The "edit strategy" button is highlighted.](/img/add-constraint.png)
On the "edit strategy" screen, select the "add custom constraint" button to open the constraints menu.
![A feature toggle strategy view showing a button labeled with add constraints.](/img/add-constraint.png)
## Step 2: Configure the constraint {#step-2}
## Step 2: Add and configure the constraint {#step-2}
Refer to [the _constraint structure_ section of the strategy constraints reference](../advanced/strategy-constraints.md#constraint-structure) for a thorough explanation of the fields.
Refer to [the _constraint structure_ section of the strategy constraints reference](../advanced/strategy-constraints.md#constraint-structure) for a thorough explanation of the constraint fields.
From the "Context Field" dropdown, select the context field you would like to constrain the strategy on.
1. From the "Context Field" dropdown, **select the context field** you would like to constrain the strategy on and **choose the [constraint operator](../advanced/strategy-constraints.md#strategy-constraint-operators)** you want.
2. **Define the values** to use for this constraint. The operator you selected decides whether you can define one or multiple values and what format they can have.
3. **Save the constraint** first, and then **save the strategy**.
![A strategy constraint form with a constraint set to "region". The "values" input is a dropdown menu containing the options "Africa", "Asia", "Europe", and "North America", as defined in the preceding paragraph.](/img/constraints_legal_values.png)
## Step 3: Add additional constraints {#step-3}
To add additional constraints:
1. Repeat [step one](#step-1 "step 1: open the constraints menu") to open the constraints menu.
2. Use the "Add constraint" button to add a new constraint.
![The add constraint modal menu with an existing constraint. There is a button labeled "add constraint" that is being highlighted by an arrow.](/img/constraints-add-additional.png)
3. Follow [step two](#step-2 "step 2: configure the constraint") for the new constraint.
![A strategy constraint form with a constraint set to "region". The "values" input is a dropdown menu containing the options "Africa", "Asia", "Europe", and "North America", as defined in the preceding paragraph.](/img/constraints-add-to-strategy.png)
## How to update existing constraints
You can update any existing constraint by doing one of the following:
- Open the "add constraints" menu and modify existing constraints.
- Using the constraint's "edit" button to bring up the constraints menu.
To update an existing constraint, find the constraint in the "edit strategy" screen and use the constraint's "edit" button.

View File

@ -43,7 +43,7 @@ To create a feature toggle with impression data enabled, set the `impressionData
### Enabling impression data for existing feature toggles {#step-1-existing-toggles}
To enable impression data for an existing toggle, use the "edit" button on the toggle's page in the admin UI. It will take you to a form that looks like the toggle creation form. Use the "impression data" toggle to enable impression data the same way you would when [enabling impression data for a new feature toggle](#step-1-new-toggles).
To enable impression data for an existing toggle, go to the "Settings" tab of that feature toggle and use the "edit" button near the Feature information title in the admin UI. It will take you to a form that looks like the toggle creation form. Use the "Enable impression data" toggle to enable it, the same way you would when [enabling impression data for a new feature toggle](#step-1-new-toggles).
![The create feature toggle form. There's a toggle at the end of the form that enables or disables impression data. It's labeled "impression data".](/img/enable-impression-data-existing-toggle.png)

View File

@ -22,9 +22,9 @@ It takes about three steps to create custom project roles:
1. Navigate to the custom project roles page by using the admin menu (the gear symbol) and navigating to users.
![A visual representation of the current step: the Unleash Admin UI with the steps highlighted.](/img/create-cpr-step-1.png)
2. Navigate to the "project roles" tab.
2. Navigate to the "Project roles" tab.
![The admin/roles screen, with the project roles tab highlighted. The page shows a table of project roles with their descriptions.](/img/create-cpr-step-2.png)
3. Use the "new project role" button to open the role creation form.
3. Use the "New project role" button to open the role creation form.
![The visual position of the 'new project role' button on the page.](/img/create-cpr-step-3.png)
4. Give the role a name, an optional description, and the set of permissions you'd like it to have. For a full overview of all the options, consult the [custom project roles reference documentation](../user_guide/rbac.md#custom-project-roles).
![The project role creation form filled in with details for a "developer" role. To the left is the equivalent cURL command you could run if you wanted to use the API instead of the form.](/img/create-cpr-step-4.png)
@ -36,10 +36,10 @@ Custom project role creation is a pretty straightforward process and requires ar
To assign a custom project role to a user:
1. Navigate to the project you want to assign the user a role in.
![The steps to navigate to a project: use the 'projects' navigation item and select your project.](/img/assign-cpr-step-1.png)
2. Navigate to the project's _access_ page.
2. Navigate to the project's _access_ tab.
![A project overview with the 'access' tab highlighted.](/img/assign-cpr-step-2.png)
3. This step depends on whether the user has already been added to the project or not:
- If the user has already been added to the project, select the new role you want to give them from the dropdown menu next to their name.
- If the user has already been added to the project, click on the edit icon coresponding with its line and from the overlay that will show up select the new role you want to assign it from the dropdown and save the changes.
![A list of users with access to the current project. To the right of each user is a dropdown input labeled role.](/img/assign-cpr-step-3a.png)
- If the user _hasn't_ been added to the project, add them via the 'add user' form. Select the role you want to give them from the role field.
- If the user _hasn't_ been added to the project, add them using the button 'Assing user/group'. From the overlay that will show up select the user, assign it a role and save the changes. Now you should be able to see the new user in the table.
![Adding a user to a project. The add user form is filled out with data for an "Alexis". The Role input is open and the custom "Developer" role is highlighted.](/img/assign-cpr-step-3b.png)

View File

@ -35,7 +35,7 @@ This guide assumes that you've got the following:
To schedule a feature release via the UI:
1. Add the desired activation strategy to the feature
2. Open the constraint creator by using the "add constraint" button
2. Open the constraint creator by using the "Add custom constraint" button
3. Add a date-based constraint by selecting the `currentTime` context field (step 1 in the below image), choosing the `DATE_AFTER` operator (step 2), and setting the point in time where you want the feature to be available from (step 3)
![A strategy constraint specifying that the activation strategy should be enabled at 12:00 AM, November 25th 2022. There are visual call-outs pointing to the relevant settings mentioned above.](/img/strategy-constraint-date-after.png)

View File

@ -0,0 +1,21 @@
---
title: The event log
---
The event log lets you track changes in Unleash. It lists _what_ changed, _when_ it changed, and _who_ performed the change.
## Feature toggle log {#event-log-per-feature-toggle}
<span id="audit-log-per-feature-toggle" data-reason="backwards-compatibility"></span>
Each feature toggle has its own event log. The event log is available under the "Event log" tab in the tab view.
![The event log for a feature toggle. The "Event log" tab is highlighted and the UI shows the most recent changes, including a JSON diff and the change details.](/img/unleash-toggle-history.png)
## Global Event Log {#global-event-log}
<span id="global-audit-log" data-reason="backwards-compatibility"></span>
Unleash also keeps an event log across all toggles and activation strategies, tracking all changes. You access the global event log via the “event log”, which you can find in the drawer menu. The global event log is only accessible by users with instance admin access.
![The global event log and how to get there. It shows a number of events and their changes as well as the navigation steps: use the admin menu and navigate to "event history".](/img/global_audit_log.png)

View File

@ -37,7 +37,7 @@ From the top-line menu click on “Projects”
![The Unleash admin UI with the "Projects" nav link in the top bar highlighted.](/img/projects_button.png)
The available projects will now be listed. To create a new Project choose the “Add new project”
The UI shows the currently available projects. To create a new project, use the “new project” button.
![A list of projects. There is a button saying "Add new project".](/img/projects_new_project.png)
@ -71,11 +71,11 @@ From the UI top navigation menu, choose "Feature toggles".
![The Unleash Admin UI navigation menu with the "Feature toggles" option highlighted by a red arrow.](/img/projects_menu.png)
The list of features toggles can be filtered on the project of your choice. By default, all feature toggles are listed in the view.
The list of features toggles can be filtered on the project of your choice. By default, all feature toggles are listed in the view. You can use the search to filter to a specific project or even for multiple projects in the same time if you need.
![The feature toggle list with toggles scoped to the "fintech" project. The filter is activated by using a form control.](/img/project_select.png)
From the drop-down, chose the project to filter on.
In the search you can type "project:specific-name" to filter that project only.
![The feature toggle list with an overlay listing all the projects available. You can select a project and the list will update with the toggles belonging to that project.](/img/projects_select_dropdown.png)

View File

@ -13,14 +13,13 @@ Unleash also has a concept of _potentially_ stale toggles. These are toggles tha
A toggle being (potentially) stale, does not affect how it performs in your application; it's only there to make it easier for you to manage your toggles.
## The technical debt dashboard
In order to assist with removing unused feature toggles, Unleash provides a technical debt dashboard in the management-ui. You can find it by clicking on “Advanced” in the top-line menu then choose _Reporting_ in the dropdown menu.
In order to assist with removing unused feature toggles, Unleash provides project health dashboards for each project. The health dashboard is listed as one of a project's tabs.
![Three UI elements describing the health rating of the project. The first card has info on the project, including its name. The second is the \"report card\", containing the project's overall health rating, a toggle report, and potential actions. The last card is a list of all the project's toggles with data on when it was last seen, when it was created, when it expired, its status and a report.](/img/reporting.png)
![Three UI elements describing the health rating of the project. The first card has info on the project, including its name. The second is the "report card", containing the project's overall health rating, a toggle report, and potential actions. The last card is a list of all the project's toggles with data on when it was last seen, when it was created, when it expired, its status and a report.](/img/reporting.png)
The dasboard includes a health report card, and a list of toggles that can be filtrated on different parameters.
The dashboard includes a health report card, and a list of toggles that can be filtered on different parameters.
### Report card {#report-card}

View File

@ -23,9 +23,9 @@ Before you can connect your application to Unleash you need a Unleash server. Yo
![A visual overview of an Unleash system as described in the following paragraph.](/img/unleash-architecture.svg 'System Overview')
- **Unleash API** - The service holding all feature toggles and their configurations. Configurations declare which activation strategies to use and which parameters they should get. [API documentation](/api)
- **Unleash Admin UI** - The dashboard used to manage feature toggles, define new strategies, look at metrics, etc. [Create your first feature toggle](user_guide/create-feature-toggle.md)
- **Unleash SDK** - Used by clients to check if a feature is enabled or disabled. The SDK also collects metrics and sends them to the Unleash API. [See all our SDKs](sdks/index.md)
- **Unleash Proxy** - Sits between frontend/native applications and the Unleash API. Ensures high performance and that you don't expose the full feature toggle configuration to end-users. [Read more about Unleash Proxy](sdks/unleash-proxy.md)
- [**The Unleash API**](../api/index.md) - The Unleash instance. This is where you create feature toggles, configure activation strategies, and parameters, etc. The service holding all feature toggles and their configurations. Configurations declare which activation strategies to use and which parameters they should get.
- **The Unleash admin UI** - The bundled web interface for interacting with the Unleash instance. Manage toggles, define strategies, look at metrics, and much more. Use the UI to [create feature toggles](user_guide/create-feature-toggle.md), [manage project access roles](../how-to/how-to-create-and-assign-custom-project-roles.md), [create API tokens](../user_guide/token.md), and more.
- [**Unleash SDKs**](sdks/index.md) - Unleash SDKs integrate into your applications and get feature configurations from the Unleash API. Use them to check whether features are enabled or disabled and to send metrics to the Unleash API. [See all our SDKs](sdks/index.md)
- [**The Unleash proxy**](sdks/unleash-proxy.md) - The Unleash proxy sits between front-end and native applications and the Unleash API. You can scale it independently of the Unleash API to handle large request rates without causing issues for the Unleash API.
To be super fast (_we're talking nano-seconds_), the [client SDK](sdks/index.md) caches all feature toggles and their current configuration in memory. The activation strategies are also implemented in the SDK. This makes it really fast to check if a toggle is on or off because it is just a simple function operating on local state, without the need to poll data from the database.

View File

@ -11,10 +11,10 @@ You can add new users to Unleash in `Admin > Users`.
![A visual representation of the current step: the Unleash Admin UI with the steps highlighted.](/img/user_admin_list_button.png)
2. To add a new user to your Unleash instance simply click the "Add user" button:
2. To add a new user to your Unleash instance, use the "new user" button:
![The Unleash users page with the 'add new user' button being pointed to.](/img/user_admin-add-user.jpg)
3. Fill out the required fields about the user in the modal. You need to choose which role the new user should have on the "root level". E.g. giving the user an Editor role will allow the user to create a new project.
3. Fill out the required fields in the "create user" form. Refer to the [global roles overview](./rbac.md#standard-roles) for more information on roles.
![A form titled "Add team member". It has the fields "full name", "email", and "role". The role field is a radio button set with roles called "admin", "editor", and "viewer".](/img/user_admin_add_user_modal.png)

View File

@ -133,6 +133,11 @@ module.exports = {
],
plugins: [
[
// heads up to anyone making redirects:
//
// remember that redirects only work in production and not in
// development, as mentioned in the docs
// https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-client-redirects/
'@docusaurus/plugin-client-redirects',
{
fromExtensions: ['html', 'htm'],
@ -170,6 +175,10 @@ module.exports = {
from: '/advanced/impression_data',
to: '/advanced/impression-data',
},
{
from: '/advanced/audit_log',
to: '/reference/event-log',
},
],
createRedirects: function (toPath) {
if (

View File

@ -282,7 +282,7 @@ module.exports = {
'user_guide/activation_strategy',
'reference/api-tokens-and-client-keys',
'advanced/archived_toggles',
'advanced/audit_log',
'reference/event-log',
'advanced/impression-data',
'advanced/custom_activation_strategy',
'user_guide/environments',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 598 KiB

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 612 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 616 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 KiB

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 KiB

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

After

Width:  |  Height:  |  Size: 281 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 624 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 573 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 542 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 525 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 560 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 614 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 KiB

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 209 KiB

After

Width:  |  Height:  |  Size: 270 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 89 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 261 KiB

After

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 630 KiB

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 132 KiB