Consolidated ProjectHeads and supporting infrastructure (#360)

* Moved project heads to common folder

* Fixed broken reference to props file

* Fix broken path references

* Fixed broken file references

* Fixed broken path

* Move asset references to props file

* Consolidated ProjectHeads and supporting infrastructure

* Migrating projects to new infra

* Migrating files to new infra

* Added missing assemblyname and rootnamespace declaration

* Fixed building WinAppSdk

* Fixed build errors for UWP under "All" solution

* Fixed working directory for UseTargetFrameworks.ps1

* Switch GenerateSingleSampleHeads.ps1 to use dotnet templating tool

Update WindowsAppSDK version and MSTest tools
Add properties to allow tests to run on 1.2.x, see https://github.com/microsoft/testfx/issues/1127
Remove solution files from experiments
Add bat file to copy heads and run slngen
Tested locally running all heads and tests for an experiment

* Update folder for linux CI build and Codespaces to WASM project

* Clean-up and re-work build script for testing the project template

* Use expanded form for environment variables everywhere

* Use repo root path for script when in working directory of template

* Use github syntax for environment variable for path, see https://github.com/actions/runner-images/issues/1794

* Re-work path structure for project template test in ci

* Setup paths again to use full path into GenerateSingleSampleHeads script

* Fixed comment referencing outdated file name

* Use absolute path for project references in the "All" solution

* Removed leading directory separator on generated path

* Update slngen to fix build issues with not finding SDK due to global.json

See details in https://github.com/microsoft/slngen/issues/453

* Add flag to build to enable easily getting diagnostics from tools

* Clean-up labels and conditions for diagnostics

* Add COREHOST_TRACE diagnostics for dotnet

* Move conditional for COREHOST_TRACE into step

* Just have COREHOST_TRACE defined at top

* Add calling dotnet --info

* Fixed missing markdown/cs files. Changed "Experiment" to "ToolkitComponent"

* Revert initial work renaming Experiment to Component.

* Fixed markdown exclude path

* Moved project out of double nested folder

* Removed restored files that should have been deleted

* Move SourceGenerators.Tests project up a folder and fix in build.yml path

Wasn't being built as was excluded from wildcard in solution generator

* Fixed path for test output

* Improved and shortened project names

* Rename LabsUITestMethod to UIThreadTestMethod

* Renamed to CommunityToolkit.Tooling.TestGen

* New names for UITestMethodAttribute and UITestMethodGenerator

* Fixed incorrect namespace

* Fixed a bad find/replace

* Renamed "all" component heads and App/Test shared projects

* Added "App" to app head names

* Fixed runtime error

* Move SourceGenerators.Tests project up a folder and fix in build.yml path

Wasn't being built as was excluded from wildcard in solution generator

* Fixed path for test output

* Improved and shortened project names

* Rename LabsUITestMethod to UIThreadTestMethod

* Renamed to CommunityToolkit.Tooling.TestGen

* New names for UITestMethodAttribute and UITestMethodGenerator

* Renamed "all" component heads and App/Test shared projects

* Added "App" to app head names

* Turn off diagnostics for our powershell scripts as slngen has error with diagnostics

Fix diagnostic flag detection

* Enable git long path support for the clean operation

* Update microsoft/setup-msbuild github action

* Cleaned up moved files that weren't deleted properly

* Update slngen to 9.5.4

Should hopefully resolve CI issues from https://github.com/microsoft/slngen/issues/453 and its initial fix

---------

Co-authored-by: michael-hawker <24302614+michael-hawker@users.noreply.github.com>
This commit is contained in:
Arlo 2023-02-21 15:44:43 -06:00 коммит произвёл GitHub
Родитель 1a40ef45b1
Коммит 10640a3755
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
576 изменённых файлов: 1201 добавлений и 9757 удалений

Просмотреть файл

@ -15,7 +15,7 @@
]
},
"microsoft.visualstudio.slngen.tool": {
"version": "9.5.1",
"version": "9.5.4",
"commands": [
"slngen"
]

120
.github/workflows/build.yml поставляемый
Просмотреть файл

@ -15,6 +15,11 @@ on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
env:
DOTNET_VERSION: ${{ '6.0.x' }}
ENABLE_DIAGNOSTICS: false
#COREHOST_TRACE: 1
COREHOST_TRACEFILE: corehosttrace.log
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
@ -24,10 +29,10 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Install .NET 6 SDK
- name: Install .NET SDK v${{ env.DOTNET_VERSION }}
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
dotnet-version: ${{ env.DOTNET_VERSION }}
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout Repository
@ -58,10 +63,14 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Install .NET 6 SDK
- name: Install .NET SDK v${{ env.DOTNET_VERSION }}
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: .NET Info (if diagnostics)
if: ${{ env.ENABLE_DIAGNOSTICS == 'true' }}
run: dotnet --info
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout Repository
@ -75,18 +84,18 @@ jobs:
run: dotnet tool run uno-check --ci --fix --non-interactive --skip wsl --skip androidemulator --verbose
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.3
uses: microsoft/setup-msbuild@v1.3.1
- name: Enable ${{ env.TARGET_PLATFORMS }} TargetFrameworks
working-directory: ./common/Scripts/
working-directory: ./common/MultiTarget/
run: powershell -version 5.1 -command "./UseTargetFrameworks.ps1 ${{ env.TARGET_PLATFORMS }}" -ErrorAction Stop
- name: Generate solution w/ ${{ env.TEST_PLATFORM }} Tests
working-directory: ./
run: powershell -version 5.1 -command "./common/GenerateAllSolution.ps1 -IncludeHeads ${{ env.TEST_PLATFORM }}" -ErrorAction Stop
run: powershell -version 5.1 -command "./common/GenerateAllSolution.ps1 -IncludeHeads ${{ env.TEST_PLATFORM }}${{ env.ENABLE_DIAGNOSTICS == 'true' && ' -UseDiagnostics' || '' }}" -ErrorAction Stop
- name: Enable Uno.WinUI (in WinUI3 matrix only)
working-directory: ./common/Scripts/
working-directory: ./common/MultiTarget/
run: powershell -version 5.1 -command "./UseUnoWinUI.ps1 3" -ErrorAction Stop
if: ${{ matrix.platform == 'WinUI3' }}
@ -118,59 +127,82 @@ jobs:
- name: Run SourceGenerators tests
id: test-generator
run: vstest.console.exe ./common/CommunityToolkit.Labs.Core.SourceGenerators.Tests/CommunityToolkit.Labs.Core.SourceGenerators.Tests/bin/Release/net6.0/CommunityToolkit.Labs.Core.SourceGenerators.Tests.dll /logger:"trx;LogFileName=SourceGenerators.trx"
run: vstest.console.exe ./common/CommunityToolkit.Tooling.SampleGen.Tests/bin/Release/net6.0/CommunityToolkit.Tooling.SampleGen.Tests.dll /logger:"trx;LogFileName=SourceGenerators.trx"
- name: Run experiment tests against ${{ env.TEST_PLATFORM }}
id: test-platform
run: vstest.console.exe ./tests/**/CommunityToolkit.Labs.Tests.${{ env.TEST_PLATFORM }}.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ env.TEST_PLATFORM }}.trx"
run: vstest.console.exe ./common/**/CommunityToolkit.Tests.${{ env.TEST_PLATFORM }}.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ env.TEST_PLATFORM }}.trx"
- name: Create test reports
run: |
testspace '[${{ matrix.platform }}]./TestResults/*.trx'
if: ${{ always() && (steps.test-generator.conclusion == 'success' || steps.test-platform.conclusion == 'success') }}
#- name: Artifact - Slngen Logs
# uses: actions/upload-artifact@v3
# if: success() || failure()
# with:
# name: slngen-logs
# path: ./**/slngen.*log
- name: Artifact - Diagnostic Logs
uses: actions/upload-artifact@v3
if: ${{ (env.ENABLE_DIAGNOSTICS == 'true' || env.COREHOST_TRACE != '') && always() }}
with:
name: build-logs
path: ./**/*.*log
# Test job to build a single experiment to ensure our changes work for both our main types of solutions at the moment
new-experiment:
needs: [Xaml-Style-Check]
# TODO: We should only run this if something in the common or template folder changed...
runs-on: windows-latest
env:
PROJECT_DIRECTORY: template/ProjectTemplate
TEST_PROJECT_NAME: CiTestExp
TEST_PROJECT_DIRECTORY: labs/CiTestExp
steps:
- name: Install .NET 6 SDK
- name: Install .NET SDK v${{ env.DOTNET_VERSION }}
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: .NET Info (if diagnostics)
if: ${{ env.ENABLE_DIAGNOSTICS == 'true' }}
run: dotnet --info
- name: Enable git long paths
run: git config --system core.longpaths true
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout Repository
uses: actions/checkout@v3
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.3
uses: microsoft/setup-msbuild@v1.3.1
- name: Add project heads to ProjectTemplate
working-directory: ./${{ env.PROJECT_DIRECTORY }}
run: ${{ github.workspace }}/common/ProjectHeads/GenerateSingleSampleHeads.ps1 -componentPath ${{ github.workspace }}/${{ env.PROJECT_DIRECTORY }}${{ env.ENABLE_DIAGNOSTICS == 'true' && ' -UseDiagnostics' || '' }}
# Build and use template for creating new experiments
- name: Build ProjectTemplate
working-directory: ./template/lab
working-directory: ./${{ env.PROJECT_DIRECTORY }}
run: msbuild.exe ProjectTemplate.sln /restore /nowarn:MSB4011 -p:Configuration=Debug
- name: Clean environment
working-directory: ./
run: git clean -xdf
# Create a new experiment from the template and test using that
- name: Install template
working-directory: ./template/lab
working-directory: ${{ env.PROJECT_DIRECTORY }}
run: dotnet new --install ./
- name: Create new experiment
working-directory: ./labs
run: dotnet new labexp -n CiTestExp
run: dotnet new labexp -n ${{ env.TEST_PROJECT_NAME }}
- name: Add project heads to ${{ env.TEST_PROJECT_NAME }}
working-directory: ./${{ env.TEST_PROJECT_DIRECTORY }}
run: ${{ github.workspace }}/common/ProjectHeads/GenerateSingleSampleHeads.ps1 -componentPath ${{ github.workspace }}/${{ env.TEST_PROJECT_DIRECTORY }}${{ env.ENABLE_DIAGNOSTICS == 'true' && ' -UseDiagnostics' || '' }}
- name: MSBuild
working-directory: ./labs/CiTestExp
run: msbuild.exe CiTestExp.sln /restore /nowarn:MSB4011 -p:Configuration=Release
working-directory: ./${{ env.TEST_PROJECT_DIRECTORY }}
run: msbuild.exe ${{ env.TEST_PROJECT_NAME }}.sln /restore /nowarn:MSB4011 -p:Configuration=Release
# Run tests
- name: Setup VSTest Path
@ -183,26 +215,36 @@ jobs:
- name: Run tests in the generated experiment against UWP
id: test-uwp
run: vstest.console.exe ./labs/CiTestExp/**/CiTestExp.Tests.UWP.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=CiTestExpUWP.trx"
run: vstest.console.exe ./labs/${{ env.TEST_PROJECT_NAME }}/**/${{ env.TEST_PROJECT_NAME }}.Tests.UWP.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ env.TEST_PROJECT_NAME }}UWP.trx"
- name: Run tests in the generated experiment against WinAppSDK
id: test-winappsdk
run: vstest.console.exe ./labs/CiTestExp/**/CiTestExp.Tests.WinAppSdk.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=CiTestExpWinAppSdk.trx"
run: vstest.console.exe ./labs/${{ env.TEST_PROJECT_NAME }}/**/${{ env.TEST_PROJECT_NAME }}.Tests.WinAppSdk.build.appxrecipe /Framework:FrameworkUap10 /logger:"trx;LogFileName=${{ env.TEST_PROJECT_NAME }}WinAppSdk.trx"
- name: Create test reports
run: |
testspace '[New Experiment]./TestResults/*.trx'
if: ${{ always() && (steps.test-uwp.conclusion == 'success' || steps.test-winappsdk.conclusion == 'success') }}
- name: Artifact - Diagnostic Logs
uses: actions/upload-artifact@v3
if: ${{ (env.ENABLE_DIAGNOSTICS == 'true' || env.COREHOST_TRACE != '') && always() }}
with:
name: new-experiment-logs
path: ./**/*.*log
wasm-linux:
needs: [Xaml-Style-Check]
runs-on: ubuntu-latest
steps:
- name: Install .NET 6 SDK
- name: Install .NET SDK v${{ env.DOTNET_VERSION }}
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.0.x'
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: .NET Info (if diagnostics)
if: ${{ env.ENABLE_DIAGNOSTICS == 'true' }}
run: dotnet --info
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout Repository
@ -215,22 +257,22 @@ jobs:
- name: Generate solution
shell: pwsh
working-directory: ./
run: ./common/GenerateAllSolution.ps1
run: ./common/GenerateAllSolution.ps1${{ env.ENABLE_DIAGNOSTICS == 'true' && ' -UseDiagnostics' || '' }}
- name: Install ninja for WASM native dependencies
run: sudo apt-get install ninja-build
# Issue with Comment Links currently, see: https://github.com/mrlacey/CommentLinks/issues/38
# See launch.json configuration file for analogous command we're emulating here to build LINK: ../../.vscode/launch.json:CommunityToolkit.Labs.Wasm.csproj
# See launch.json configuration file for analogous command we're emulating here to build LINK: ../../.vscode/launch.json:CommunityToolkit.App.Wasm.csproj
- name: dotnet build
working-directory: ./platforms/CommunityToolkit.Labs.Wasm/
working-directory: ./common/ProjectHeads/AllComponents/Wasm/
run: dotnet build /r /bl /p:UnoSourceGeneratorUseGenerationHost=true /p:UnoSourceGeneratorUseGenerationController=false
# TODO: Do we want to run tests here? Can we do that on linux easily?
#- name: Artifact - Slngen Logs
# uses: actions/upload-artifact@v3
# if: success() || failure()
# with:
# name: slngen-logs
# path: ./**/slngen.*log
- name: Artifact - Diagnostic Logs
uses: actions/upload-artifact@v3
if: ${{ (env.ENABLE_DIAGNOSTICS == 'true' || env.COREHOST_TRACE != '') && always() }}
with:
name: linux-logs
path: ./**/*.*log

4
.gitignore поставляемый
Просмотреть файл

@ -358,3 +358,7 @@ MigrationBackup/
# Community Toolkit Labs generated files
Toolkit.Labs.All.sln
common/MultiTarget/Generated/**
heads/
# We use slngen to generate solutions
*.sln

4
.vscode/launch.json поставляемый
Просмотреть файл

@ -14,13 +14,13 @@
"/p:UnoSourceGeneratorUseGenerationHost=true",
"/p:UnoSourceGeneratorUseGenerationController=false",
"/p:UnoRemoteControlPort=443",
"--project=${workspaceFolder}/platforms/CommunityToolkit.Labs.Wasm/CommunityToolkit.Labs.Wasm.csproj"
"--project=${workspaceFolder}/common/ProjectHeads/AllComponents/CommunityToolkit.Labs.Wasm/CommunityToolkit.Labs.Wasm.csproj"
],
"presentation": {
"group": "1",
"order": 1
},
"cwd": "${workspaceFolder}/platforms/CommunityToolkit.Labs.Wasm",
"cwd": "${workspaceFolder}/common/ProjectHeads/AllComponents/CommunityToolkit.Labs.Wasm",
"preLaunchTask": "generateAllSolution"
},
{

Просмотреть файл

@ -39,7 +39,7 @@ Once there is traction and your idea is approved, an issue will be created to tr
Then you can fork the Labs repo, create a new branch, and start working on your feature (or porting over your existing prototype).
```ascii
dotnet new --install .\template\lab\
dotnet new --install .\template\ProjectTemplate\
cd labs
@ -68,7 +68,7 @@ Open up an issue on the main Toolkit repo using the `Toolkit Labs Transfer` Issu
## Building the Sample App
You can build the main Sample App solution to see all the experiments currently available in this repository by running the `GenerateAllSolution.ps1` PowerShell script in the repo root. Then just open the `Toolkit.Labs.All.sln` solution in Visual Studio. You can run one of the project heads under the platforms folder such as `CommunityToolkit.Labs.WinAppSdk` to run the sample app for that platform.
You can build the main Sample App solution to see all the experiments currently available in this repository by running the `GenerateAllSolution.bat` script in the repo root. Then just open the `Toolkit.Labs.All.sln` solution in Visual Studio. You can run one of the project heads such as `CommunityToolkit.App.WinAppSdk` to run the sample app for that platform.
If you'd like to run a head beyond UWP, Wasm, or the WinAppSDK, you'll need to run the `UseTargetFrameworks.ps1` script first in the `common/Scripts` directory. e.g. `.\UseTargetFrameworks.ps1 -targets all`

Просмотреть файл

@ -1,5 +1,5 @@
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
<Application x:Class="CommunityToolkit.Labs.Shared.App"
<Application x:Class="CommunityToolkit.App.Shared.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Resources>

Просмотреть файл

@ -2,7 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
namespace CommunityToolkit.Labs.Shared;
namespace CommunityToolkit.App.Shared;
/// <summary>
/// Provides application-specific behavior to supplement the default Application class.

Просмотреть файл

@ -1,9 +1,9 @@
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
<Page x:Class="CommunityToolkit.Labs.Shared.AppLoadingView"
<Page x:Class="CommunityToolkit.App.Shared.AppLoadingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:CommunityToolkit.Labs.Shared"
xmlns:local="using:CommunityToolkit.App.Shared"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">

Просмотреть файл

@ -2,11 +2,11 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using CommunityToolkit.Labs.Core.SourceGenerators.Metadata;
using CommunityToolkit.Labs.Core.SourceGenerators;
using CommunityToolkit.Tooling.SampleGen.Metadata;
using CommunityToolkit.Tooling.SampleGen;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation.Collections;
using CommunityToolkit.Labs.Shared.Pages;
using CommunityToolkit.App.Shared.Pages;
#if !WINAPPSDK
using Windows.System;
@ -24,7 +24,7 @@ using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
#endif
namespace CommunityToolkit.Labs.Shared;
namespace CommunityToolkit.App.Shared;
/// <summary>
/// Kicks off the loading process and determines whether to display a single-sample or multi-sample view.

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 637 B

После

Ширина:  |  Высота:  |  Размер: 637 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 806 B

После

Ширина:  |  Высота:  |  Размер: 806 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 960 B

После

Ширина:  |  Высота:  |  Размер: 960 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.4 KiB

После

Ширина:  |  Высота:  |  Размер: 3.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.2 KiB

После

Ширина:  |  Высота:  |  Размер: 3.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 6.0 KiB

После

Ширина:  |  Высота:  |  Размер: 6.0 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.2 KiB

После

Ширина:  |  Высота:  |  Размер: 3.2 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 4.6 KiB

После

Ширина:  |  Высота:  |  Размер: 4.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.6 KiB

После

Ширина:  |  Высота:  |  Размер: 3.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 346 KiB

После

Ширина:  |  Высота:  |  Размер: 346 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 359 KiB

После

Ширина:  |  Высота:  |  Размер: 359 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 7.6 KiB

После

Ширина:  |  Высота:  |  Размер: 7.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 8.4 KiB

После

Ширина:  |  Высота:  |  Размер: 8.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 16 KiB

После

Ширина:  |  Высота:  |  Размер: 16 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 16 KiB

После

Ширина:  |  Высота:  |  Размер: 16 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 20 KiB

После

Ширина:  |  Высота:  |  Размер: 20 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 20 KiB

После

Ширина:  |  Высота:  |  Размер: 20 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 33 KiB

После

Ширина:  |  Высота:  |  Размер: 33 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 33 KiB

После

Ширина:  |  Высота:  |  Размер: 33 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 107 KiB

После

Ширина:  |  Высота:  |  Размер: 107 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 107 KiB

После

Ширина:  |  Высота:  |  Размер: 107 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.0 KiB

После

Ширина:  |  Высота:  |  Размер: 3.0 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.0 KiB

После

Ширина:  |  Высота:  |  Размер: 3.0 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 4.6 KiB

После

Ширина:  |  Высота:  |  Размер: 4.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 4.6 KiB

После

Ширина:  |  Высота:  |  Размер: 4.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 5.8 KiB

После

Ширина:  |  Высота:  |  Размер: 5.8 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 5.8 KiB

После

Ширина:  |  Высота:  |  Размер: 5.8 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 8.9 KiB

После

Ширина:  |  Высота:  |  Размер: 8.9 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 8.9 KiB

После

Ширина:  |  Высота:  |  Размер: 8.9 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 28 KiB

После

Ширина:  |  Высота:  |  Размер: 28 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 28 KiB

После

Ширина:  |  Высота:  |  Размер: 28 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 11 KiB

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 18 KiB

После

Ширина:  |  Высота:  |  Размер: 18 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 18 KiB

После

Ширина:  |  Высота:  |  Размер: 18 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 18 KiB

После

Ширина:  |  Высота:  |  Размер: 18 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 22 KiB

После

Ширина:  |  Высота:  |  Размер: 22 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 22 KiB

После

Ширина:  |  Высота:  |  Размер: 22 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 22 KiB

После

Ширина:  |  Высота:  |  Размер: 22 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 35 KiB

После

Ширина:  |  Высота:  |  Размер: 35 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 35 KiB

После

Ширина:  |  Высота:  |  Размер: 35 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 35 KiB

После

Ширина:  |  Высота:  |  Размер: 35 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 114 KiB

После

Ширина:  |  Высота:  |  Размер: 114 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 114 KiB

После

Ширина:  |  Высота:  |  Размер: 114 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 114 KiB

После

Ширина:  |  Высота:  |  Размер: 114 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 4.5 KiB

После

Ширина:  |  Высота:  |  Размер: 4.5 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 4.6 KiB

После

Ширина:  |  Высота:  |  Размер: 4.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 4.6 KiB

После

Ширина:  |  Высота:  |  Размер: 4.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 6.7 KiB

После

Ширина:  |  Высота:  |  Размер: 6.7 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 6.7 KiB

После

Ширина:  |  Высота:  |  Размер: 6.7 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 9.3 KiB

После

Ширина:  |  Высота:  |  Размер: 9.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 9.3 KiB

После

Ширина:  |  Высота:  |  Размер: 9.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 13 KiB

После

Ширина:  |  Высота:  |  Размер: 13 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 13 KiB

После

Ширина:  |  Высота:  |  Размер: 13 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 42 KiB

После

Ширина:  |  Высота:  |  Размер: 42 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 42 KiB

После

Ширина:  |  Высота:  |  Размер: 42 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.6 KiB

После

Ширина:  |  Высота:  |  Размер: 1.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.4 KiB

После

Ширина:  |  Высота:  |  Размер: 1.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.9 KiB

После

Ширина:  |  Высота:  |  Размер: 1.9 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.9 KiB

После

Ширина:  |  Высота:  |  Размер: 1.9 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.5 KiB

После

Ширина:  |  Высота:  |  Размер: 2.5 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 2.5 KiB

После

Ширина:  |  Высота:  |  Размер: 2.5 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.6 KiB

После

Ширина:  |  Высота:  |  Размер: 3.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 3.6 KiB

После

Ширина:  |  Высота:  |  Размер: 3.6 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 9.9 KiB

После

Ширина:  |  Высота:  |  Размер: 9.9 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 9.9 KiB

После

Ширина:  |  Высота:  |  Размер: 9.9 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 637 B

После

Ширина:  |  Высота:  |  Размер: 637 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 637 B

После

Ширина:  |  Высота:  |  Размер: 637 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 637 B

После

Ширина:  |  Высота:  |  Размер: 637 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 806 B

После

Ширина:  |  Высота:  |  Размер: 806 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 806 B

После

Ширина:  |  Высота:  |  Размер: 806 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 806 B

После

Ширина:  |  Высота:  |  Размер: 806 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 960 B

После

Ширина:  |  Высота:  |  Размер: 960 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 960 B

После

Ширина:  |  Высота:  |  Размер: 960 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 960 B

После

Ширина:  |  Высота:  |  Размер: 960 B

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 29 KiB

После

Ширина:  |  Высота:  |  Размер: 29 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 29 KiB

После

Ширина:  |  Высота:  |  Размер: 29 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 29 KiB

После

Ширина:  |  Высота:  |  Размер: 29 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 1.3 KiB

После

Ширина:  |  Высота:  |  Размер: 1.3 KiB

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше