diff --git a/.github/dependabot.yml b/.github/dependabot.yml index bc18f0082..7fbd6baa4 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,3 +4,8 @@ updates: directory: "/" schedule: interval: "daily" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + # Check for updates to GitHub Actions every week + interval: "weekly" diff --git a/.github/workflows/deploy_gh_pages.yaml b/.github/workflows/deploy_gh_pages.yaml index a11b9f606..89c314518 100644 --- a/.github/workflows/deploy_gh_pages.yaml +++ b/.github/workflows/deploy_gh_pages.yaml @@ -67,7 +67,7 @@ jobs: - name: Copy GraphQL Schema to deploy run: cp schema.graphql public/schema.graphql - name: Deploy - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./public diff --git a/.github/workflows/push_docker_image.yml b/.github/workflows/push_docker_image.yml index bd0911e71..b58e6b7ae 100644 --- a/.github/workflows/push_docker_image.yml +++ b/.github/workflows/push_docker_image.yml @@ -43,33 +43,22 @@ jobs: docker login \ --username '${{ secrets.DOCKER_USERNAME }}' \ --password '${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}' - - name: setup-qemu - run: | - docker run --rm --privileged multiarch/qemu-user-static \ - --reset \ - -p yes - - name: build-and-push-amd64 - run: | - docker build . \ - -f ${{ matrix.docker.dockerfile }}.amd64 \ - -t ${{ matrix.docker.repo }}:git-${{ github.sha }}-amd64 \ - --build-arg COMMIT=git-${{ github.sha }} \ - --build-arg TARGETPLATFORM=linux/amd64 - docker push ${{ matrix.docker.repo }}:git-${{ github.sha }}-amd64 - - name: build-and-push-arm64v8 - run: | - docker build . \ - -f ${{ matrix.docker.dockerfile }}.arm64v8 \ - -t ${{ matrix.docker.repo }}:git-${{ github.sha }}-arm64v8 \ - --build-arg COMMIT=git-${{ github.sha }} \ - --build-arg TARGETPLATFORM=linux/arm64 - docker push ${{ matrix.docker.repo }}:git-${{ github.sha }}-arm64v8 - - name: merge-manifest-and-push - run: | - docker manifest create ${{ matrix.docker.repo }}:git-${{ github.sha }} \ - --amend ${{ matrix.docker.repo }}:git-${{ github.sha }}-amd64 \ - --amend ${{ matrix.docker.repo }}:git-${{ github.sha }}-arm64v8 - docker manifest push ${{ matrix.docker.repo }}:git-${{ github.sha }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + platforms: linux/arm/v8,linux/amd64 + - name: Build and push + uses: docker/build-push-action@v6 + with: + push: ${{ github.event_name != 'pull_request' }} + platforms: linux/arm64,linux/amd64 + tags: ${{ matrix.docker.repo }}:git-${{ github.sha }} + file: ${{ matrix.docker.dockerfile }} + build-args: COMMIT=git-${{ github.sha }} + env: + BUILDKIT_PROGRESS: 'plain' tag: name: tag (${{ matrix.docker.repo }}) @@ -87,7 +76,7 @@ jobs: --password '${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}' - name: push git tagged version run: | - docker pull ${{ matrix.docker.repo }}:git-${{ github.sha }}-amd64 + docker pull ${{ matrix.docker.repo }}:git-${{ github.sha }} if [[ -z "${{ github.event.inputs.imageTag }}" ]]; then export IMAGE_TAG=${{ github.ref_name }} else @@ -95,15 +84,6 @@ jobs: fi docker tag \ - ${{ matrix.docker.repo }}:git-${{ github.sha }}-amd64 \ - ${{ matrix.docker.repo }}:$IMAGE_TAG-amd64 - docker push ${{ matrix.docker.repo }}:$IMAGE_TAG-amd64 - docker pull ${{ matrix.docker.repo }}:git-${{ github.sha }}-arm64v8 - docker tag \ - ${{ matrix.docker.repo }}:git-${{ github.sha }}-arm64v8 \ - ${{ matrix.docker.repo }}:$IMAGE_TAG-arm64v8 - docker push ${{ matrix.docker.repo }}:$IMAGE_TAG-arm64v8 - docker manifest create ${{ matrix.docker.repo }}:$IMAGE_TAG \ - --amend ${{ matrix.docker.repo }}:$IMAGE_TAG-amd64 \ - --amend ${{ matrix.docker.repo }}:$IMAGE_TAG-arm64v8 - docker manifest push ${{ matrix.docker.repo }}:$IMAGE_TAG + ${{ matrix.docker.repo }}:git-${{ github.sha }} \ + ${{ matrix.docker.repo }}:$IMAGE_TAG + docker push ${{ matrix.docker.repo }}:$IMAGE_TAG diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 000000000..c95b6df16 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,5 @@ + + + 5.4.1 + + diff --git a/Dockerfile b/Dockerfile index cea86d51d..0626f3b60 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,8 @@ -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env +FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env WORKDIR /app ARG COMMIT ARG TARGETPLATFORM -# Copy csproj and restore as distinct layers -COPY ./Lib9c/Lib9c/Lib9c.csproj ./Lib9c/ -COPY ./Libplanet.Headless/Libplanet.Headless.csproj ./Libplanet.Headless/ -COPY ./NineChronicles.RPC.Shared/NineChronicles.RPC.Shared/NineChronicles.RPC.Shared.csproj ./NineChronicles.RPC.Shared/ -COPY ./NineChronicles.Headless/NineChronicles.Headless.csproj ./NineChronicles.Headless/ -COPY ./NineChronicles.Headless.Executable/NineChronicles.Headless.Executable.csproj ./NineChronicles.Headless.Executable/ -RUN dotnet restore Lib9c -RUN dotnet restore Libplanet.Headless -RUN dotnet restore NineChronicles.RPC.Shared -RUN dotnet restore NineChronicles.Headless -RUN dotnet restore NineChronicles.Headless.Executable - # Copy everything else and build COPY . ./ RUN <all - + - diff --git a/Libplanet.Extensions.ForkableActionEvaluator/Libplanet.Extensions.ForkableActionEvaluator.csproj b/Libplanet.Extensions.ForkableActionEvaluator/Libplanet.Extensions.ForkableActionEvaluator.csproj index db1c4f310..43532bf6c 100644 --- a/Libplanet.Extensions.ForkableActionEvaluator/Libplanet.Extensions.ForkableActionEvaluator.csproj +++ b/Libplanet.Extensions.ForkableActionEvaluator/Libplanet.Extensions.ForkableActionEvaluator.csproj @@ -5,9 +5,8 @@ enable enable - + - + - diff --git a/Libplanet.Extensions.PluggedActionEvaluator/Libplanet.Extensions.PluggedActionEvaluator.csproj b/Libplanet.Extensions.PluggedActionEvaluator/Libplanet.Extensions.PluggedActionEvaluator.csproj index a0db16957..c09aef0f8 100644 --- a/Libplanet.Extensions.PluggedActionEvaluator/Libplanet.Extensions.PluggedActionEvaluator.csproj +++ b/Libplanet.Extensions.PluggedActionEvaluator/Libplanet.Extensions.PluggedActionEvaluator.csproj @@ -7,9 +7,12 @@ - - + + + + + diff --git a/Libplanet.Headless/Libplanet.Headless.csproj b/Libplanet.Headless/Libplanet.Headless.csproj index 5a3a2b286..ca287875e 100644 --- a/Libplanet.Headless/Libplanet.Headless.csproj +++ b/Libplanet.Headless/Libplanet.Headless.csproj @@ -7,6 +7,9 @@ + + + all @@ -19,9 +22,6 @@ - - - diff --git a/NineChronicles.Headless.Executable.Tests/NineChronicles.Headless.Executable.Tests.csproj b/NineChronicles.Headless.Executable.Tests/NineChronicles.Headless.Executable.Tests.csproj index 60b2742bb..f9af67302 100644 --- a/NineChronicles.Headless.Executable.Tests/NineChronicles.Headless.Executable.Tests.csproj +++ b/NineChronicles.Headless.Executable.Tests/NineChronicles.Headless.Executable.Tests.csproj @@ -26,7 +26,6 @@ - diff --git a/NineChronicles.Headless.Executable.sln b/NineChronicles.Headless.Executable.sln index 0ebb97b87..2a48c5446 100644 --- a/NineChronicles.Headless.Executable.sln +++ b/NineChronicles.Headless.Executable.sln @@ -7,8 +7,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Headless", "Libpl EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Headless.Tests", "Libplanet.Headless.Tests\Libplanet.Headless.Tests.csproj", "{0B82AB6A-32B1-4F76-B965-B56B052057D4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Analyzers", "Lib9c\.Libplanet\tools\Libplanet.Analyzers\Libplanet.Analyzers.csproj", "{AACC51F4-D38A-4094-BF50-BDC981848517}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NineChronicles.Headless", "NineChronicles.Headless\NineChronicles.Headless.csproj", "{AE6FE611-BB8E-4E85-8623-34608EC868CD}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NineChronicles.Headless.Executable", "NineChronicles.Headless.Executable\NineChronicles.Headless.Executable.csproj", "{81584733-D9C7-4D83-ABBF-0B289A26E807}" @@ -19,18 +17,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lib9c", "Lib9c\Lib9c\Lib9c. EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NineChronicles.RPC.Shared", "NineChronicles.RPC.Shared\NineChronicles.RPC.Shared\NineChronicles.RPC.Shared.csproj", "{106573F6-F9C1-41B7-8F02-40E76F177C24}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet", "Lib9c\.Libplanet\src\Libplanet\Libplanet.csproj", "{E18779D4-103C-42D2-A94F-EEB801B32750}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.RocksDBStore", "Lib9c\.Libplanet\src\Libplanet.RocksDBStore\Libplanet.RocksDBStore.csproj", "{2C079592-8EDC-4911-AFF9-828419E0FDC1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Stun", "Lib9c\.Libplanet\src\Libplanet.Stun\Libplanet.Stun.csproj", "{3B2875B4-B6C6-4929-B885-18A922110ED2}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NineChronicles.Headless.Executable.Tests", "NineChronicles.Headless.Executable.Tests\NineChronicles.Headless.Executable.Tests.csproj", "{6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Extensions.Cocona", "Lib9c\.Libplanet\tools\Libplanet.Extensions.Cocona\Libplanet.Extensions.Cocona.csproj", "{B1C7C07A-2394-4778-A328-D536C7FC3CDD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Explorer", "Lib9c\.Libplanet\tools\Libplanet.Explorer\Libplanet.Explorer.csproj", "{D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4D8FC180-CD64-4774-B9BF-BF290C01BB1A}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig @@ -38,8 +26,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lib9c.DevExtensions", "Lib9c\Lib9c.DevExtensions\Lib9c.DevExtensions.csproj", "{8411BF58-22E7-4174-AEE6-7332FE690906}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Net", "Lib9c\.Libplanet\src\Libplanet.Net\Libplanet.Net.csproj", "{858AEAB3-CC9C-41C4-9727-4243708FD803}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lib9c.MessagePack", "Lib9c\Lib9c.MessagePack\Lib9c.MessagePack.csproj", "{A9513460-EE7A-455F-A823-5005DB6BA8FC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Crypto.Secp256k1", "Lib9c\Libplanet.Crypto.Secp256k1\Libplanet.Crypto.Secp256k1.csproj", "{84EBA886-FAD6-4167-9857-36BA1B394EBB}" @@ -58,18 +44,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Extensions.Forkab EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Extensions.ForkableActionEvaluator.Tests", "Libplanet.Extensions.ForkableActionEvaluator.Tests\Libplanet.Extensions.ForkableActionEvaluator.Tests.csproj", "{490D20B6-FC0C-4459-8412-17777DB95931}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Libplanet", ".Libplanet", "{69F04D28-2B2E-454D-9B15-4D708EEEA8B5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Action", "Lib9c\.Libplanet\src\Libplanet.Action\Libplanet.Action.csproj", "{EB464A50-9976-4DEA-B170-F72C4FB73A9C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Common", "Lib9c\.Libplanet\src\Libplanet.Common\Libplanet.Common.csproj", "{95FB2620-540C-4498-9DAE-65198E89680C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Types", "Lib9c\.Libplanet\src\Libplanet.Types\Libplanet.Types.csproj", "{FC65B031-F6EE-4561-A365-47B6FDD1C114}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Store", "Lib9c\.Libplanet\src\Libplanet.Store\Libplanet.Store.csproj", "{2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Crypto", "Lib9c\.Libplanet\src\Libplanet.Crypto\Libplanet.Crypto.csproj", "{2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Extensions.ActionEvaluatorCommonComponents", "Lib9c\.Libplanet.Extensions.ActionEvaluatorCommonComponents\Libplanet.Extensions.ActionEvaluatorCommonComponents.csproj", "{A6922395-36E5-4B0A-BEBD-9BCE34D08722}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NineChronicles.Headless.AccessControlCenter", "NineChronicles.Headless.AccessControlCenter\NineChronicles.Headless.AccessControlCenter.csproj", "{162C0F4B-A1D9-4132-BC34-31F1247BC26B}" @@ -78,10 +52,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Extensions.Plugge EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lib9c.Plugin.Shared", "Lib9c\.Lib9c.Plugin.Shared\Lib9c.Plugin.Shared.csproj", "{3D32DA34-E619-429F-8421-848FF4F14417}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Libplanet.Mocks", "Lib9c\.Libplanet\test\Libplanet.Mocks\Libplanet.Mocks.csproj", "{F79B695B-6FCC-43F5-AEE4-88E484382B9B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Libplanet.Store.Remote", "Lib9c\.Libplanet\src\Libplanet.Store.Remote\Libplanet.Store.Remote.csproj", "{D1E15F81-8765-4DCA-9299-675415686C23}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NineChronicles.Headless.Executor", "NineChronicles.Headless.Executor\NineChronicles.Headless.Executor.csproj", "{59AD477A-B23C-4E0B-AA26-A528B3BC5234}" EndProject Global @@ -133,24 +103,6 @@ Global {0B82AB6A-32B1-4F76-B965-B56B052057D4}.Release|x64.Build.0 = Release|Any CPU {0B82AB6A-32B1-4F76-B965-B56B052057D4}.Release|x86.ActiveCfg = Release|Any CPU {0B82AB6A-32B1-4F76-B965-B56B052057D4}.Release|x86.Build.0 = Release|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|x64.ActiveCfg = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|x64.Build.0 = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|x86.ActiveCfg = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|x86.Build.0 = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|x64.ActiveCfg = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|x64.Build.0 = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|x86.ActiveCfg = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|x86.Build.0 = Debug|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|Any CPU.Build.0 = Release|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|x64.ActiveCfg = Release|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|x64.Build.0 = Release|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|x86.ActiveCfg = Release|Any CPU - {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|x86.Build.0 = Release|Any CPU {AE6FE611-BB8E-4E85-8623-34608EC868CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {AE6FE611-BB8E-4E85-8623-34608EC868CD}.Debug|Any CPU.Build.0 = Debug|Any CPU {AE6FE611-BB8E-4E85-8623-34608EC868CD}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -241,60 +193,6 @@ Global {106573F6-F9C1-41B7-8F02-40E76F177C24}.Release|x64.Build.0 = Release|Any CPU {106573F6-F9C1-41B7-8F02-40E76F177C24}.Release|x86.ActiveCfg = Release|Any CPU {106573F6-F9C1-41B7-8F02-40E76F177C24}.Release|x86.Build.0 = Release|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|x64.ActiveCfg = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|x64.Build.0 = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|x86.ActiveCfg = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|x86.Build.0 = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|x64.ActiveCfg = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|x64.Build.0 = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|x86.ActiveCfg = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|x86.Build.0 = Debug|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|Any CPU.Build.0 = Release|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|x64.ActiveCfg = Release|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|x64.Build.0 = Release|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|x86.ActiveCfg = Release|Any CPU - {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|x86.Build.0 = Release|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|x64.ActiveCfg = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|x64.Build.0 = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|x86.ActiveCfg = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|x86.Build.0 = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|x64.ActiveCfg = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|x64.Build.0 = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|x86.ActiveCfg = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|x86.Build.0 = Debug|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|Any CPU.Build.0 = Release|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|x64.ActiveCfg = Release|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|x64.Build.0 = Release|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|x86.ActiveCfg = Release|Any CPU - {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|x86.Build.0 = Release|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|x64.ActiveCfg = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|x64.Build.0 = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|x86.ActiveCfg = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|x86.Build.0 = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|x64.ActiveCfg = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|x64.Build.0 = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|x86.ActiveCfg = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|x86.Build.0 = Debug|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|Any CPU.Build.0 = Release|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|x64.ActiveCfg = Release|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|x64.Build.0 = Release|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|x86.ActiveCfg = Release|Any CPU - {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|x86.Build.0 = Release|Any CPU {6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Debug|Any CPU.Build.0 = Debug|Any CPU {6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -313,42 +211,6 @@ Global {6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Release|x64.Build.0 = Release|Any CPU {6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Release|x86.ActiveCfg = Release|Any CPU {6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Release|x86.Build.0 = Release|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|x64.ActiveCfg = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|x64.Build.0 = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|x86.ActiveCfg = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|x86.Build.0 = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|x64.ActiveCfg = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|x64.Build.0 = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|x86.ActiveCfg = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|x86.Build.0 = Debug|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|Any CPU.Build.0 = Release|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|x64.ActiveCfg = Release|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|x64.Build.0 = Release|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|x86.ActiveCfg = Release|Any CPU - {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|x86.Build.0 = Release|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|x64.ActiveCfg = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|x64.Build.0 = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|x86.ActiveCfg = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|x86.Build.0 = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|x64.ActiveCfg = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|x64.Build.0 = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|x86.ActiveCfg = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|x86.Build.0 = Debug|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|Any CPU.Build.0 = Release|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|x64.ActiveCfg = Release|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|x64.Build.0 = Release|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|x86.ActiveCfg = Release|Any CPU - {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|x86.Build.0 = Release|Any CPU {8411BF58-22E7-4174-AEE6-7332FE690906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8411BF58-22E7-4174-AEE6-7332FE690906}.Debug|Any CPU.Build.0 = Debug|Any CPU {8411BF58-22E7-4174-AEE6-7332FE690906}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -367,24 +229,6 @@ Global {8411BF58-22E7-4174-AEE6-7332FE690906}.Release|x64.Build.0 = Release|Any CPU {8411BF58-22E7-4174-AEE6-7332FE690906}.Release|x86.ActiveCfg = Release|Any CPU {8411BF58-22E7-4174-AEE6-7332FE690906}.Release|x86.Build.0 = Release|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|Any CPU.Build.0 = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|x64.ActiveCfg = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|x64.Build.0 = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|x86.ActiveCfg = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|x86.Build.0 = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|x64.ActiveCfg = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|x64.Build.0 = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|x86.ActiveCfg = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|x86.Build.0 = Debug|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|Any CPU.ActiveCfg = Release|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|Any CPU.Build.0 = Release|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|x64.ActiveCfg = Release|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|x64.Build.0 = Release|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|x86.ActiveCfg = Release|Any CPU - {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|x86.Build.0 = Release|Any CPU {A9513460-EE7A-455F-A823-5005DB6BA8FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A9513460-EE7A-455F-A823-5005DB6BA8FC}.Debug|Any CPU.Build.0 = Debug|Any CPU {A9513460-EE7A-455F-A823-5005DB6BA8FC}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -547,96 +391,6 @@ Global {490D20B6-FC0C-4459-8412-17777DB95931}.Release|x64.Build.0 = Release|Any CPU {490D20B6-FC0C-4459-8412-17777DB95931}.Release|x86.ActiveCfg = Release|Any CPU {490D20B6-FC0C-4459-8412-17777DB95931}.Release|x86.Build.0 = Release|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|x64.ActiveCfg = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|x64.Build.0 = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|x86.ActiveCfg = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|x86.Build.0 = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|x64.ActiveCfg = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|x64.Build.0 = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|x86.ActiveCfg = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|x86.Build.0 = Debug|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|Any CPU.Build.0 = Release|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|x64.ActiveCfg = Release|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|x64.Build.0 = Release|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|x86.ActiveCfg = Release|Any CPU - {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|x86.Build.0 = Release|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|x64.ActiveCfg = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|x64.Build.0 = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|x86.ActiveCfg = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|x86.Build.0 = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|x64.ActiveCfg = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|x64.Build.0 = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|x86.ActiveCfg = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|x86.Build.0 = Debug|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Release|Any CPU.Build.0 = Release|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Release|x64.ActiveCfg = Release|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Release|x64.Build.0 = Release|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Release|x86.ActiveCfg = Release|Any CPU - {95FB2620-540C-4498-9DAE-65198E89680C}.Release|x86.Build.0 = Release|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|x64.ActiveCfg = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|x64.Build.0 = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|x86.ActiveCfg = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|x86.Build.0 = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|x64.ActiveCfg = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|x64.Build.0 = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|x86.ActiveCfg = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|x86.Build.0 = Debug|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|Any CPU.Build.0 = Release|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|x64.ActiveCfg = Release|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|x64.Build.0 = Release|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|x86.ActiveCfg = Release|Any CPU - {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|x86.Build.0 = Release|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|x64.ActiveCfg = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|x64.Build.0 = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|x86.ActiveCfg = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|x86.Build.0 = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|x64.ActiveCfg = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|x64.Build.0 = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|x86.ActiveCfg = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|x86.Build.0 = Debug|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|Any CPU.Build.0 = Release|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|x64.ActiveCfg = Release|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|x64.Build.0 = Release|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|x86.ActiveCfg = Release|Any CPU - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|x86.Build.0 = Release|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|x64.ActiveCfg = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|x64.Build.0 = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|x86.ActiveCfg = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|x86.Build.0 = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|x64.ActiveCfg = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|x64.Build.0 = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|x86.ActiveCfg = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|x86.Build.0 = Debug|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|Any CPU.Build.0 = Release|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|x64.ActiveCfg = Release|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|x64.Build.0 = Release|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|x86.ActiveCfg = Release|Any CPU - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|x86.Build.0 = Release|Any CPU {A6922395-36E5-4B0A-BEBD-9BCE34D08722}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A6922395-36E5-4B0A-BEBD-9BCE34D08722}.Debug|Any CPU.Build.0 = Debug|Any CPU {A6922395-36E5-4B0A-BEBD-9BCE34D08722}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -709,42 +463,6 @@ Global {3D32DA34-E619-429F-8421-848FF4F14417}.Release|x64.Build.0 = Release|Any CPU {3D32DA34-E619-429F-8421-848FF4F14417}.Release|x86.ActiveCfg = Release|Any CPU {3D32DA34-E619-429F-8421-848FF4F14417}.Release|x86.Build.0 = Release|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|x64.ActiveCfg = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|x64.Build.0 = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|x86.ActiveCfg = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|x86.Build.0 = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|x64.ActiveCfg = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|x64.Build.0 = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|x86.ActiveCfg = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|x86.Build.0 = Debug|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|Any CPU.Build.0 = Release|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|x64.ActiveCfg = Release|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|x64.Build.0 = Release|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|x86.ActiveCfg = Release|Any CPU - {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|x86.Build.0 = Release|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|x64.ActiveCfg = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|x64.Build.0 = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|x86.ActiveCfg = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|x86.Build.0 = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|Any CPU.Build.0 = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|x64.ActiveCfg = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|x64.Build.0 = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|x86.ActiveCfg = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|x86.Build.0 = Debug|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Release|Any CPU.Build.0 = Release|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Release|x64.ActiveCfg = Release|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Release|x64.Build.0 = Release|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Release|x86.ActiveCfg = Release|Any CPU - {D1E15F81-8765-4DCA-9299-675415686C23}.Release|x86.Build.0 = Release|Any CPU {59AD477A-B23C-4E0B-AA26-A528B3BC5234}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {59AD477A-B23C-4E0B-AA26-A528B3BC5234}.Debug|Any CPU.Build.0 = Debug|Any CPU {59AD477A-B23C-4E0B-AA26-A528B3BC5234}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -768,12 +486,6 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {AACC51F4-D38A-4094-BF50-BDC981848517} = {71CBCF83-FE87-4D84-A20C-FD328855E445} - {EB464A50-9976-4DEA-B170-F72C4FB73A9C} = {69F04D28-2B2E-454D-9B15-4D708EEEA8B5} - {95FB2620-540C-4498-9DAE-65198E89680C} = {69F04D28-2B2E-454D-9B15-4D708EEEA8B5} - {FC65B031-F6EE-4561-A365-47B6FDD1C114} = {69F04D28-2B2E-454D-9B15-4D708EEEA8B5} - {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29} = {69F04D28-2B2E-454D-9B15-4D708EEEA8B5} - {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0} = {69F04D28-2B2E-454D-9B15-4D708EEEA8B5} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B4A2DD82-CCC1-4D74-88FF-91BBEBB5A47F} diff --git a/NineChronicles.Headless.Executable.sln.DotSettings b/NineChronicles.Headless.Executable.sln.DotSettings index 61ddddd89..e1205f7ac 100644 --- a/NineChronicles.Headless.Executable.sln.DotSettings +++ b/NineChronicles.Headless.Executable.sln.DotSettings @@ -1,3 +1,107 @@  + DO_NOT_SHOW + SUGGESTION + SUGGESTION + SUGGESTION + SUGGESTION + SUGGESTION + SUGGESTION + SUGGESTION + SUGGESTION + Required + Required + Required + Required + False + BlockScoped + True + True + False + False + False + False + False + False + False + False + False + False + False + False + False + False + False + False + True + False + True + NEVER + NEVER + ALWAYS + True + False + 300 + True + True + AI + CRYSTAL + GARAGE + GO + HTTP NCG - True \ No newline at end of file + PACKAGE + SINGLE + VFX + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True \ No newline at end of file diff --git a/NineChronicles.Headless.Executable/Commands/GenesisCommand.cs b/NineChronicles.Headless.Executable/Commands/GenesisCommand.cs index 9f9483d3a..369751616 100644 --- a/NineChronicles.Headless.Executable/Commands/GenesisCommand.cs +++ b/NineChronicles.Headless.Executable/Commands/GenesisCommand.cs @@ -169,7 +169,8 @@ private void ProcessValidator(List? config, PrivateKey initialValidat initialValidatorSet.Add(new Validator { PublicKey = initialValidator.PublicKey.ToString(), - Power = 1, + // To act as a validator, you need at least 10 GuildGold, and since the DecimalPlaces of GuildGold are 18 digits, it is recommended to specify a value around 10^20. + Power = "10000000000000000000", } ); } @@ -264,6 +265,16 @@ public void Mine( ProcessInitialPledgeConfigs(genesisConfig.InitialPledgeConfigs, out var initialPledges); + ISet
? assetMinters = null; + if (genesisConfig.AssetMinters is not null) + { + foreach (var address in genesisConfig.AssetMinters) + { + _console.Out.WriteLine($"Preparing asset minter address {address}..."); + } + assetMinters = genesisConfig.AssetMinters.ToHashSet(); + } + // Mine genesis block _console.Out.WriteLine("\nMining genesis block...\n"); Block block = BlockHelper.ProposeGenesisBlock( @@ -271,7 +282,7 @@ public void Mine( initialValidatorSet.Select( v => new Libplanet.Types.Consensus.Validator( new PublicKey(ByteUtil.ParseHex(v.PublicKey)), - new BigInteger(v.Power))).ToList()), + BigInteger.Parse(v.Power))).ToList()), tableSheets: tableSheets, goldDistributions: initialDepositList.ToArray(), pendingActivationStates: Array.Empty(), @@ -279,7 +290,8 @@ public void Mine( adminState: adminState ?? new AdminState(default, 0L), privateKey: initialMinter, actionBases: adminMeads.Concat(initialMeads).Concat(initialPledges).Concat(GetAdditionalActionBases()), - goldCurrency: currency + goldCurrency: currency, + assetMinters: assetMinters ); Lib9cUtils.ExportBlock(block, "genesis-block"); @@ -400,7 +412,7 @@ private struct Validator { public string PublicKey { get; set; } - public long Power { get; set; } + public string Power { get; set; } } [Serializable] @@ -457,6 +469,8 @@ private struct GenesisConfig public List? InitialMeadConfigs { get; set; } public List? InitialPledgeConfigs { get; set; } + + public List
? AssetMinters { get; set; } } #pragma warning restore S3459 } diff --git a/NineChronicles.Headless.Executable/Configuration.cs b/NineChronicles.Headless.Executable/Configuration.cs index 2543b2c23..0f0d9c6f2 100644 --- a/NineChronicles.Headless.Executable/Configuration.cs +++ b/NineChronicles.Headless.Executable/Configuration.cs @@ -93,8 +93,6 @@ public class Configuration public AccessControlServiceOptions? AccessControlService { get; set; } - public int ArenaParticipantsSyncInterval { get; set; } = 1000; - public void Overwrite( string? appProtocolVersionString, string[]? trustedAppProtocolVersionSignerStrings, @@ -143,7 +141,6 @@ public void Overwrite( double? consensusTargetBlockIntervalMilliseconds, int? consensusProposeSecondBase, int? maxTransactionPerBlock, - int? arenaParticipantsSyncInterval, bool? remoteKeyValueService ) { @@ -195,7 +192,6 @@ public void Overwrite( ConsensusTargetBlockIntervalMilliseconds = consensusTargetBlockIntervalMilliseconds ?? ConsensusTargetBlockIntervalMilliseconds; ConsensusProposeSecondBase = consensusProposeSecondBase ?? ConsensusProposeSecondBase; MaxTransactionPerBlock = maxTransactionPerBlock ?? MaxTransactionPerBlock; - ArenaParticipantsSyncInterval = arenaParticipantsSyncInterval ?? ArenaParticipantsSyncInterval; RemoteKeyValueService = remoteKeyValueService ?? RemoteKeyValueService; } } diff --git a/NineChronicles.Headless.Executable/NineChronicles.Headless.Executable.csproj b/NineChronicles.Headless.Executable/NineChronicles.Headless.Executable.csproj index 538a29a47..7ad5a09ec 100644 --- a/NineChronicles.Headless.Executable/NineChronicles.Headless.Executable.csproj +++ b/NineChronicles.Headless.Executable/NineChronicles.Headless.Executable.csproj @@ -23,6 +23,7 @@ + @@ -47,7 +48,6 @@ - diff --git a/NineChronicles.Headless.Executable/Program.cs b/NineChronicles.Headless.Executable/Program.cs index db5821b8f..fcf00694f 100644 --- a/NineChronicles.Headless.Executable/Program.cs +++ b/NineChronicles.Headless.Executable/Program.cs @@ -215,10 +215,6 @@ public async Task Run( [Option("config", new[] { 'C' }, Description = "Absolute path of \"appsettings.json\" file to provide headless configurations.")] string? configPath = "appsettings.json", - [Option(Description = "arena participants list sync interval time")] - int? arenaParticipantsSyncInterval = null, - [Option(Description = "arena participants list sync enable")] - bool arenaParticipantsSync = true, [Option(Description = "[DANGER] Turn on RemoteKeyValueService to debug.")] bool remoteKeyValueService = false, [Ignore] CancellationToken? cancellationToken = null @@ -303,7 +299,7 @@ public async Task Run( txLifeTime, messageTimeout, tipTimeout, demandBuffer, skipPreload, minimumBroadcastTarget, bucketSize, chainTipStaleBehaviorType, txQuotaPerSigner, maximumPollPeers, consensusPort, consensusPrivateKeyString, consensusSeedStrings, consensusTargetBlockIntervalMilliseconds, consensusProposeSecondBase, - maxTransactionPerBlock, arenaParticipantsSyncInterval, remoteKeyValueService + maxTransactionPerBlock, remoteKeyValueService ); // Clean-up previous temporary log files. diff --git a/NineChronicles.Headless.Tests/NineChronicles.Headless.Tests.csproj b/NineChronicles.Headless.Tests/NineChronicles.Headless.Tests.csproj index 379a5edfe..30cc8d8ce 100644 --- a/NineChronicles.Headless.Tests/NineChronicles.Headless.Tests.csproj +++ b/NineChronicles.Headless.Tests/NineChronicles.Headless.Tests.csproj @@ -25,6 +25,7 @@ + diff --git a/NineChronicles.Headless/GraphTypes/ActionMutation.cs b/NineChronicles.Headless/GraphTypes/ActionMutation.cs index 03cef46de..053b6ed9c 100644 --- a/NineChronicles.Headless/GraphTypes/ActionMutation.cs +++ b/NineChronicles.Headless/GraphTypes/ActionMutation.cs @@ -24,8 +24,11 @@ public class ActionMutation : ObjectGraphType { public ActionMutation(NineChroniclesNodeService service) { + DeprecationReason = "This API is insecure and must not be used."; + Field>("createAvatar", description: "Create new avatar.", + deprecationReason: DeprecationReason, arguments: new QueryArguments( new QueryArgument> { @@ -103,6 +106,7 @@ public ActionMutation(NineChroniclesNodeService service) Field>("hackAndSlash", description: "Start stage to get material.", + deprecationReason: DeprecationReason, arguments: new QueryArguments( new QueryArgument> { @@ -186,6 +190,7 @@ public ActionMutation(NineChroniclesNodeService service) Field>("combinationEquipment", description: "Combine new equipment.", + deprecationReason: DeprecationReason, arguments: new QueryArguments( new QueryArgument> { @@ -246,6 +251,7 @@ public ActionMutation(NineChroniclesNodeService service) Field>("itemEnhancement", description: "Upgrade equipment.", + deprecationReason: DeprecationReason, arguments: new QueryArguments( new QueryArgument> { @@ -310,6 +316,7 @@ public ActionMutation(NineChroniclesNodeService service) Field>("dailyReward", description: "Get daily reward.", + deprecationReason: DeprecationReason, arguments: new QueryArguments( new QueryArgument> { @@ -352,6 +359,7 @@ public ActionMutation(NineChroniclesNodeService service) }); Field>("chargeActionPoint", description: "Charge Action Points using Material.", + deprecationReason: DeprecationReason, arguments: new QueryArguments( new QueryArgument> { @@ -395,6 +403,7 @@ public ActionMutation(NineChroniclesNodeService service) Field>("combinationConsumable", description: "Combine new Consumable.", + deprecationReason: DeprecationReason, arguments: new QueryArguments( new QueryArgument> { diff --git a/NineChronicles.Headless/GraphTypes/CurrencyEnumType.cs b/NineChronicles.Headless/GraphTypes/CurrencyEnumType.cs index ef6745ea3..84f467599 100644 --- a/NineChronicles.Headless/GraphTypes/CurrencyEnumType.cs +++ b/NineChronicles.Headless/GraphTypes/CurrencyEnumType.cs @@ -9,7 +9,13 @@ public enum CurrencyEnum CRYSTAL, NCG, GARAGE, - MEAD + MEAD, + RUNE_GOLDENLEAF, + RUNE_ADVENTURER, + RUNESTONE_FREYA_LIBERATION, + RUNESTONE_FREYA_BLESSING, + RUNESTONE_ODIN_WEAKNESS, + RUNESTONE_ODIN_WISDOM } public class CurrencyEnumType : EnumerationGraphType diff --git a/NineChronicles.Headless/GraphTypes/States/Models/World/ClearedStageType.cs b/NineChronicles.Headless/GraphTypes/States/Models/World/ClearedStageType.cs new file mode 100644 index 000000000..24b8a58e8 --- /dev/null +++ b/NineChronicles.Headless/GraphTypes/States/Models/World/ClearedStageType.cs @@ -0,0 +1,12 @@ +using GraphQL.Types; + +namespace NineChronicles.Headless.GraphTypes.States.Models.World; + +public class ClearedStageType : ObjectGraphType<(int WorldId, int StageId)> +{ + public ClearedStageType() + { + Field>("worldId", resolve: context => context.Source.WorldId); + Field>("stageId", resolve: context => context.Source.StageId); + } +} diff --git a/NineChronicles.Headless/GraphTypes/States/Models/World/WorldInformationType.cs b/NineChronicles.Headless/GraphTypes/States/Models/World/WorldInformationType.cs index 23f6b0196..d6cdd7f0d 100644 --- a/NineChronicles.Headless/GraphTypes/States/Models/World/WorldInformationType.cs +++ b/NineChronicles.Headless/GraphTypes/States/Models/World/WorldInformationType.cs @@ -40,6 +40,21 @@ public WorldInformationType() ? world : throw new ExecutionError($"Failed to fetch world {worldId}."); }); + + Field>( + "lastClearedStage", + resolve: context => + { + var found = context.Source.TryGetLastClearedStageId(out var stageId); + if (!found) + { + stageId = 0; + } + + var worldFound = context.Source.TryGetWorldByStageId(stageId, out var world); + return (worldFound ? world.Id : 0, stageId); + } + ); } } } diff --git a/NineChronicles.Headless/NineChronicles.Headless.csproj b/NineChronicles.Headless/NineChronicles.Headless.csproj index 68b93d2dd..1cde5a628 100644 --- a/NineChronicles.Headless/NineChronicles.Headless.csproj +++ b/NineChronicles.Headless/NineChronicles.Headless.csproj @@ -21,8 +21,6 @@ - - @@ -36,6 +34,7 @@ +