Repository: Citrinate/FreePackages Branch: main Commit: 042a89c9e47a Files: 113 Total size: 1.5 MB Directory structure: gitextract_ow9uday2/ ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── feature_request.md │ │ └── question.md │ ├── RELEASE_TEMPLATE.md │ └── workflows/ │ └── publish.yml ├── .gitignore ├── .gitmodules ├── Directory.Build.props ├── Directory.Packages.props ├── FreePackages/ │ ├── .gitignore │ ├── Commands.cs │ ├── Data/ │ │ ├── Cache/ │ │ │ ├── BotCache.cs │ │ │ └── GlobalCache.cs │ │ ├── External/ │ │ │ ├── ASFInfo.cs │ │ │ └── CardApps.cs │ │ └── PICS/ │ │ └── ProductInfo.cs │ ├── FreePackages.cs │ ├── FreePackages.csproj │ ├── Handlers/ │ │ ├── PICSHandler.cs │ │ ├── PackageHandler.cs │ │ └── SteamHandler.cs │ ├── Helpers/ │ │ ├── DeterministicHasher.cs │ │ └── StatusReporter.cs │ ├── IPC/ │ │ ├── Api/ │ │ │ └── FreePackagesController.cs │ │ ├── Requests/ │ │ │ └── QueueLicensesRequest.cs │ │ └── Responses/ │ │ └── FreeSubResponse.cs │ ├── Json.cs │ ├── Localization/ │ │ ├── README.md │ │ ├── Strings.de-DE.resx │ │ ├── Strings.resx │ │ ├── Strings.ru-RU.resx │ │ ├── Strings.tr-TR.resx │ │ ├── Strings.uk-UA.resx │ │ ├── Strings.zh-Hans.resx │ │ └── Strings.zh-Hant.resx │ ├── PackageFilter/ │ │ ├── FilterConfig.cs │ │ ├── Filterables/ │ │ │ ├── FilterableApp.cs │ │ │ └── FilterablePackage.cs │ │ └── PackageFilter.cs │ ├── PackageQueue/ │ │ ├── ActivationQueue.cs │ │ ├── Package.cs │ │ ├── PackageQueue.cs │ │ └── RemovalQueue.cs │ └── WebRequest.cs ├── FreePackages.Tests/ │ ├── Apps.cs │ ├── Filters.cs │ ├── FreePackages.Tests.csproj │ ├── Packages.cs │ ├── TestData/ │ │ ├── app_which_is_free.txt │ │ ├── app_with_categories.txt │ │ ├── app_with_content_descriptors.txt │ │ ├── app_with_deck_playable.txt │ │ ├── app_with_deck_unknown.txt │ │ ├── app_with_deck_unsupported.txt │ │ ├── app_with_deck_verified.txt │ │ ├── app_with_dlc.txt │ │ ├── app_with_language_support.txt │ │ ├── app_with_purchase_restricted_countries.txt │ │ ├── app_with_release_state.txt │ │ ├── app_with_required_app.txt │ │ ├── app_with_restricted_countries.txt │ │ ├── app_with_review_score.txt │ │ ├── app_with_state.txt │ │ ├── app_with_tags.txt │ │ ├── app_with_type.txt │ │ ├── demo_which_will_be_removed.txt │ │ ├── demo_with_fewer_categories_than_parent.txt │ │ ├── demo_with_fewer_categories_than_parent_parent.txt │ │ ├── demo_with_fewer_content_descriptors_than_parent.txt │ │ ├── demo_with_fewer_content_descriptors_than_parent_parent.txt │ │ ├── demo_with_fewer_languages_than_parent.txt │ │ ├── demo_with_fewer_languages_than_parent_parent.txt │ │ ├── demo_with_fewer_tags_than_parent.txt │ │ ├── demo_with_fewer_tags_than_parent_parent.txt │ │ ├── package_which_is_free.txt │ │ ├── package_which_is_no_cost.txt │ │ ├── package_with_deactivated_demo.txt │ │ ├── package_with_demo_which_will_be_removed.txt │ │ ├── package_with_disallowed_app.txt │ │ ├── package_with_free_weekend.txt │ │ ├── package_with_purchase_restricted_countries.txt │ │ ├── package_with_restricted_countries.txt │ │ ├── package_with_single_app.txt │ │ ├── package_with_single_app_app_1.txt │ │ ├── package_with_timed_activation.txt │ │ ├── playtest_with_hidden_parent.txt │ │ ├── playtest_with_hidden_parent_parent.txt │ │ ├── playtest_with_no_categories.txt │ │ ├── playtest_with_no_categories_parent.txt │ │ ├── playtest_with_no_languages.txt │ │ ├── playtest_with_no_languages_parent.txt │ │ ├── playtest_with_no_waitlist.txt │ │ ├── playtest_with_no_waitlist_parent.txt │ │ ├── userdata_empty.json │ │ ├── userdata_with_excluded_content_descriptors.json │ │ ├── userdata_with_excluded_tags.json │ │ ├── userdata_with_followed_apps.json │ │ ├── userdata_with_ignored_apps.json │ │ ├── userdata_with_wishlist_apps.json │ │ └── userinfo_empty.json │ └── generate_test_data.sh ├── FreePackages.sln ├── FreePackagesImporter/ │ ├── README.md │ └── code.user.js ├── LICENSE ├── README.md ├── SECURITY.md ├── build.bat ├── build.sh ├── crowdin.yml └── github-pandoc.css ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ root = true [*] indent_style = tab insert_final_newline = true trim_trailing_whitespace = true [*.cs] csharp_prefer_braces = true:suggestion csharp_new_line_before_open_brace = none:suggestion csharp_new_line_before_else = false:suggestion csharp_new_line_before_catch = false:suggestion csharp_new_line_before_finally = false:suggestion csharp_new_line_before_members_in_object_initializers = false:suggestion csharp_new_line_before_members_in_anonymous_types = false:suggestion csharp_new_line_between_query_expression_clauses = false:suggestion csharp_style_var_for_built_in_types = false:suggestion csharp_style_var_when_type_is_apparent = false:suggestion csharp_style_var_elsewhere = false:suggestion csharp_style_expression_bodied_methods = when_on_single_line:suggestion csharp_style_expression_bodied_constructors = when_on_single_line:suggestion csharp_style_expression_bodied_operators = when_on_single_line:suggestion csharp_style_expression_bodied_properties = when_on_single_line:suggestion csharp_style_expression_bodied_indexers = when_on_single_line:suggestion csharp_style_expression_bodied_accessors = when_on_single_line:suggestion csharp_style_pattern_matching_over_as_with_null_check = false:suggestion csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion csharp_preserve_single_line_statements = false:suggestion csharp_preserve_single_line_blocks = true:suggestion csharp_indent_case_contents = true:suggestion csharp_indent_switch_labels = true:suggestion csharp_space_after_cast = true:suggestion csharp_space_after_keywords_in_control_flow_statements = true:suggestion csharp_space_between_method_declaration_parameter_list_parentheses = false:suggestion csharp_space_between_method_call_parameter_list_parentheses = false:suggestion csharp_space_between_parentheses = false:suggestion csharp_space_before_colon_in_inheritance_clause = true:suggestion csharp_space_after_colon_in_inheritance_clause = true:suggestion csharp_space_around_binary_operators = before_and_after:suggestion csharp_space_between_method_declaration_empty_parameter_list_parentheses = false:suggestion csharp_space_between_method_call_name_and_opening_parenthesis = false:suggestion csharp_space_between_method_call_empty_parameter_list_parentheses = false:suggestion dotnet_sort_system_directives_first = true:suggestion dotnet_style_require_accessibility_modifiers = always:suggestion dotnet_style_qualification_for_field = false:suggestion dotnet_style_qualification_for_property = false:suggestion dotnet_style_qualification_for_method = false:suggestion dotnet_style_qualification_for_event = false:suggestion dotnet_style_prefer_auto_properties = true:suggestion dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion dotnet_style_predefined_type_for_member_access = true:suggestion # PascalCase for naming everything but parameters dotnet_naming_rule.all_members_must_be_capitalized.symbols = all_symbols dotnet_naming_symbols.all_symbols.applicable_kinds = class,struct,interface,enum,property,method,field,event,delegate dotnet_naming_symbols.all_symbols.applicable_accessibilities = * dotnet_naming_rule.all_members_must_be_capitalized.style = all_symbols dotnet_naming_style.all_symbols.capitalization = pascal_case dotnet_naming_rule.all_members_must_be_capitalized.severity = suggestion # camelCase for naming parameters dotnet_naming_rule.parameters_must_be_camel_case.symbols = params dotnet_naming_symbols.params.applicable_kinds = parameter dotnet_naming_symbols.params.applicable_accessibilities = * dotnet_naming_rule.parameters_must_be_camel_case.style = params dotnet_naming_style.params.capitalization = camel_case dotnet_naming_rule.parameters_must_be_camel_case.severity = suggestion ================================================ FILE: .gitattributes ================================================ # Auto detect text files and perform LF normalization * text=auto *.sh text eol=lf # Custom for Visual Studio *.cs diff=csharp ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.md ================================================ --- name: Bug report about: Create a report to help us improve title: '' labels: bug assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. **Plugin Version** What version of the plugin are you using. **ArchiSteamFarm Version and Variant** What version of ArchiSteamFarm are you using and do you use ASF-generic or some other variant. **Logs** Provide the logs from when the bug occurred. You can find these in the `log.txt` file directly in the ASF directory. ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.md ================================================ --- name: Feature request about: Suggest an idea for this project title: '' labels: enhancement assignees: '' --- ================================================ FILE: .github/ISSUE_TEMPLATE/question.md ================================================ --- name: Question about: Ask a question about the project title: '' labels: question assignees: '' --- ================================================ FILE: .github/RELEASE_TEMPLATE.md ================================================ This version requires ArchiSteamFarm VX.X.X.X or newer ### Changelog - ================================================ FILE: .github/workflows/publish.yml ================================================ name: publish on: [push, pull_request] env: PLUGIN_NAME: "FreePackages" DOTNET_SDK_VERSION: 10.0 jobs: publish: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4.1.1 with: submodules: recursive - name: Setup .NET Core uses: actions/setup-dotnet@v4.0.0 with: dotnet-version: ${{ env.DOTNET_SDK_VERSION }} - name: Verify .NET Core run: dotnet --info - name: Prepare for publishing run: dotnet restore - name: Run FreePackages.Tests run: dotnet test FreePackages.Tests -p:ContinuousIntegrationBuild=true --nologo - name: Publish run: | dotnet publish ${{ env.PLUGIN_NAME }} -c "Release" -o "out/generic" -p:ContinuousIntegrationBuild=true --nologo mkdir -p ./out/dist/${{ env.PLUGIN_NAME }} cp ./out/generic/${{ env.PLUGIN_NAME }}.dll ./out/dist/${{ env.PLUGIN_NAME }} ( cd ./out/generic/ ; cp --parents ./*/${{ env.PLUGIN_NAME }}.resources.dll ../dist/${{ env.PLUGIN_NAME }} || : ) - name: Create README uses: docker://pandoc/core:3.1 with: args: --metadata title="${{ env.PLUGIN_NAME }}" --standalone --columns 2000 -f markdown -t html --embed-resources --standalone -c ./github-pandoc.css -o ./out/dist/${{ env.PLUGIN_NAME }}/README.html README.md - name: Upload ${{ env.PLUGIN_NAME }} uses: actions/upload-artifact@v4.0.0 with: name: ${{ env.PLUGIN_NAME }} path: out/dist/${{ env.PLUGIN_NAME }} release: if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }} needs: publish runs-on: ubuntu-latest permissions: contents: write attestations: write id-token: write steps: - name: Checkout code uses: actions/checkout@v4.1.1 - name: Download ${{ env.PLUGIN_NAME }} artifact uses: actions/download-artifact@v4.1.7 with: name: ${{ env.PLUGIN_NAME }} path: out - name: Create Zip run: | cd out 7z a -tzip -mx7 ${{ env.PLUGIN_NAME }}.zip * - name: Generate artifact attestation uses: actions/attest-build-provenance@v2 with: subject-path: 'out/${{ env.PLUGIN_NAME }}.zip' - name: Create ${{ env.PLUGIN_NAME }} GitHub release uses: ncipollo/release-action@v1.13.0 with: artifacts: out/${{ env.PLUGIN_NAME }}.zip artifactContentType: application/zip name: ${{ env.PLUGIN_NAME }} V${{ github.ref_name }} tag: ${{ github.ref_name }} bodyFile: .github/RELEASE_TEMPLATE.md token: ${{ secrets.GITHUB_TOKEN }} makeLatest: false prerelease: true draft: true ================================================ FILE: .gitignore ================================================ # _ ____ _____ # / \ / ___| | ___| # / _ \ \___ \ | |_ # / ___ \ ___) || _| # /_/ \_\|____/ |_| # Ignore all files in custom in-tree config directory (if exists) ArchiSteamFarm/config # Ignore local log + debug of development builds ArchiSteamFarm/log.txt ArchiSteamFarm/debug # Ignore standard out folders for publishing **/out # Ignore crowdin CLI secret (if exists) tools/ArchiCrowdin/crowdin_identity.yml # _ _ # | | (_) _ __ _ _ __ __ # | | | || '_ \ | | | |\ \/ / # | |___ | || | | || |_| | > < # |_____||_||_| |_| \__,_|/_/\_\ # # https://github.com/github/gitignore/blob/master/Global/Linux.gitignore *~ # temporary files which can be created if a process still has a handle open of a deleted file .fuse_hidden* # KDE directory preferences .directory # Linux trash folder which might appear on any partition or disk .Trash-* # .nfs files are created when an open file is removed but is still being accessed .nfs* # ___ ____ # _ __ ___ __ _ ___ / _ \ / ___| # | '_ ` _ \ / _` | / __|| | | |\___ \ # | | | | | || (_| || (__ | |_| | ___) | # |_| |_| |_| \__,_| \___| \___/ |____/ # # https://github.com/github/gitignore/blob/master/Global/macOS.gitignore # General .DS_Store .AppleDouble .LSOverride # Icon must end with two \r Icon # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk # __ __ ____ _ # | \/ | ___ _ __ ___ | _ \ ___ __ __ ___ | | ___ _ __ # | |\/| | / _ \ | '_ \ / _ \ | | | | / _ \\ \ / // _ \| | / _ \ | '_ \ # | | | || (_) || | | || (_) || |_| || __/ \ V /| __/| || (_) || |_) | # |_| |_| \___/ |_| |_| \___/ |____/ \___| \_/ \___||_| \___/ | .__/ # |_| # # https://github.com/github/gitignore/blob/master/Global/MonoDevelop.gitignore #User Specific *.userprefs *.usertasks #Mono Project Files *.pidb *.resources test-results/ # __ __ _ _ ____ _ _ _ # \ \ / /(_) ___ _ _ __ _ | |/ ___| | |_ _ _ __| |(_) ___ # \ \ / / | |/ __|| | | | / _` || |\___ \ | __|| | | | / _` || | / _ \ # \ V / | |\__ \| |_| || (_| || | ___) || |_ | |_| || (_| || || (_) | # \_/ |_||___/ \__,_| \__,_||_||____/ \__| \__,_| \__,_||_| \___/ # # https://github.com/github/gitignore/blob/master/VisualStudio.gitignore ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files *.rsuser *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ [Aa][Rr][Mm]/ [Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ # Visual Studio 2015/2017 cache/options directory .vs/ .vscode/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ # Visual Studio 2017 auto generated files Generated\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUNIT *.VisualState.xml TestResult.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # Benchmark Results BenchmarkDotNet.Artifacts/ # .NET Core project.lock.json project.fragment.lock.json artifacts/ # StyleCop StyleCopReport.xml # Files built by Visual Studio *_i.c *_p.c *_h.h *.ilk *.meta *.obj *.iobj *.pch *.pdb *.ipdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *_wpftmp.csproj *.log *.vspscc *.vssscc .builds *.pidb *.svclog *.scc # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db *.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx *.sap # Visual Studio Trace Files *.e2e # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # JustCode is a .NET coding add-in .JustCode # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # AxoCover is a Code Coverage Tool .axoCover/* !.axoCover/settings.json # Visual Studio code coverage results *.coverage *.coveragexml # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # Note: Comment the next line if you want to checkin your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ # NuGet Packages *.nupkg # The packages folder can be ignored because of Package Restore **/[Pp]ackages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/[Pp]ackages/repositories.config # NuGet v3's project.json files produces more ignorable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ # Windows Store app package directories and files AppPackages/ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt *.appx # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !?*.[Cc]ache/ # Others ClientBin/ ~$* *~ *.dbmdl *.dbproj.schemaview *.jfm *.pfx *.publishsettings orleans.codegen.cs # Including strong name files can present a security risk # (https://github.com/github/gitignore/pull/2483#issue-259490424) #*.snk # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ # ASP.NET Core default setup: bower directory is configured as wwwroot/lib/ and bower restore is true **/wwwroot/lib/ # RIA/Silverlight projects Generated_Code/ # Backup & report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ *.rptproj.bak # SQL Server files *.mdf *.ldf *.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings *.rptproj.rsuser # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat node_modules/ # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # Paket dependency manager .paket/paket.exe paket-files/ # FAKE - F# Make .fake/ # JetBrains Rider .idea/ *.sln.iml # CodeRush personal settings .cr/personal # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc # Cake - Uncomment if you are using it # tools/** # !tools/packages.config # Tabs Studio *.tss # Telerik's JustMock configuration file *.jmconfig # BizTalk build output *.btp.cs *.btm.cs *.odx.cs *.xsd.cs # OpenCover UI analysis results OpenCover/ # Azure Stream Analytics local run output ASALocalRun/ # MSBuild Binary and Structured Log *.binlog # NVidia Nsight GPU debugger configuration file *.nvuser # MFractors (Xamarin productivity tool) working folder .mfractor/ # Local History for Visual Studio .localhistory/ # BeatPulse healthcheck temp database healthchecksdb # __ __ _ _ ____ _ _ _ ____ _ # \ \ / /(_) ___ _ _ __ _ | |/ ___| | |_ _ _ __| |(_) ___ / ___| ___ __| | ___ # \ \ / / | |/ __|| | | | / _` || |\___ \ | __|| | | | / _` || | / _ \ | | / _ \ / _` | / _ \ # \ V / | |\__ \| |_| || (_| || | ___) || |_ | |_| || (_| || || (_) || |___| (_) || (_| || __/ # \_/ |_||___/ \__,_| \__,_||_||____/ \__| \__,_| \__,_||_| \___/ \____|\___/ \__,_| \___| # # https://github.com/github/gitignore/blob/master/Global/VisualStudioCode.gitignore .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json # __ __ _ _ # \ \ / /(_) _ __ __| | ___ __ __ ___ # \ \ /\ / / | || '_ \ / _` | / _ \\ \ /\ / // __| # \ V V / | || | | || (_| || (_) |\ V V / \__ \ # \_/\_/ |_||_| |_| \__,_| \___/ \_/\_/ |___/ # # https://github.com/github/gitignore/blob/master/Global/Windows.gitignore # Windows thumbnail cache files Thumbs.db ehthumbs.db ehthumbs_vista.db # Dump file *.stackdump # Folder config file [Dd]esktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msix *.msm *.msp # Windows shortcuts *.lnk # https://www.paraesthesia.com/archive/2022/09/30/strongly-typed-resources-with-net-core/ *.Designer.cs ================================================ FILE: .gitmodules ================================================ [submodule "ArchiSteamFarm"] path = ArchiSteamFarm url = https://github.com/JustArchiNET/ArchiSteamFarm.git ================================================ FILE: Directory.Build.props ================================================ FreePackages 1.6.3.3 Citrinate $(Authors) Copyright © $([System.DateTime]::UtcNow.Year) $(Company) $(PluginName) description. Apache-2.0 https://github.com/$(Company)/$(PluginName) $(PackageProjectUrl)/releases $(PackageProjectUrl).git false false false ../resources/$(PluginName).snk.pub true true ../resources/$(PluginName).snk false true ================================================ FILE: Directory.Packages.props ================================================ ================================================ FILE: FreePackages/.gitignore ================================================ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ **/out # Visual Studio 2015/2017 cache/options directory .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ # Visual Studio 2017 auto generated files Generated\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUNIT *.VisualState.xml TestResult.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # Benchmark Results BenchmarkDotNet.Artifacts/ # .NET Core project.lock.json project.fragment.lock.json artifacts/ **/Properties/launchSettings.json # StyleCop StyleCopReport.xml # Files built by Visual Studio *_i.c *_p.c *_i.h *.ilk *.meta *.obj *.iobj *.pch *.pdb *.ipdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *.log *.vspscc *.vssscc .builds *.pidb *.svclog *.scc *.zip # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db *.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx *.sap # Visual Studio Trace Files *.e2e # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # JustCode is a .NET coding add-in .JustCode # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # AxoCover is a Code Coverage Tool .axoCover/* !.axoCover/settings.json # Visual Studio code coverage results *.coverage *.coveragexml # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # Note: Comment the next line if you want to checkin your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ # NuGet Packages *.nupkg # The packages folder can be ignored because of Package Restore **/[Pp]ackages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/[Pp]ackages/repositories.config # NuGet v3's project.json files produces more ignorable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ # Windows Store app package directories and files AppPackages/ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt *.appx # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !*.[Cc]ache/ # Others ClientBin/ ~$* *~ *.dbmdl *.dbproj.schemaview *.jfm *.pfx *.publishsettings orleans.codegen.cs # Including strong name files can present a security risk # (https://github.com/github/gitignore/pull/2483#issue-259490424) #*.snk # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ # RIA/Silverlight projects Generated_Code/ # Backup & report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ *.rptproj.bak # SQL Server files *.mdf *.ldf *.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings *.rptproj.rsuser # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat node_modules/ # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # Paket dependency manager .paket/paket.exe paket-files/ # FAKE - F# Make .fake/ # JetBrains Rider .idea/ *.sln.iml # CodeRush .cr/ # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc # Cake - Uncomment if you are using it # tools/** # !tools/packages.config # Tabs Studio *.tss # Telerik's JustMock configuration file *.jmconfig # BizTalk build output *.btp.cs *.btm.cs *.odx.cs *.xsd.cs # OpenCover UI analysis results OpenCover/ # Azure Stream Analytics local run output ASALocalRun/ # MSBuild Binary and Structured Log *.binlog # NVidia Nsight GPU debugger configuration file *.nvuser # MFractors (Xamarin productivity tool) working folder .mfractor/ ================================================ FILE: FreePackages/Commands.cs ================================================ using System; using System.Collections.Generic; using System.ComponentModel; using System.Globalization; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Dom; using ArchiSteamFarm.Core; using ArchiSteamFarm.Steam; using FreePackages.Localization; namespace FreePackages { internal static class Commands { internal static async Task Response(Bot bot, EAccess access, ulong steamID, string message, string[] args) { if (!Enum.IsDefined(access)) { throw new InvalidEnumArgumentException(nameof(access), (int) access, typeof(EAccess)); } if (string.IsNullOrEmpty(message)) { return null; } switch (args.Length) { case 1: switch (args[0].ToUpperInvariant()) { case "FREEPACKAGES" when access >= EAccess.Master: return String.Format("{0} {1}", nameof(FreePackages), (typeof(FreePackages).Assembly.GetName().Version ?? new Version("0")).ToString()); case "CANCELREMOVE" or "CANCELREMOVAL": return ResponseCancelRemove(bot, access); case "CONFIRMREMOVE" or "CONFIRMREMOVAL": return ResponseConfirmRemove(bot, access); case "CLEARQUEUE" or "CLEARFREEPACKAGESQUEUE": return ResponseClearQueue(bot, access); case "QSA": return ResponseQueueStatus(access, steamID, "ASF"); case "QSTATUS" or "QUEUESTATUS": return ResponseQueueStatus(bot, access); case "REMOVEFREEPACKAGES": return await ResponseRemoveFreePackages(bot, access, new StatusReporter(bot, steamID)).ConfigureAwait(false); case "REMOVEFREEPACKAGES^": return await ResponseRemoveFreePackages(bot, access, new StatusReporter(bot, steamID), excludePlayed: true).ConfigureAwait(false); case "REMOVEALLFREEPACKAGES": return await ResponseRemoveFreePackages(bot, access, new StatusReporter(bot, steamID), removeAll: true).ConfigureAwait(false); case "REMOVEALLFREEPACKAGES^": return await ResponseRemoveFreePackages(bot, access, new StatusReporter(bot, steamID), removeAll: true, excludePlayed: true).ConfigureAwait(false); default: return null; }; default: switch (args[0].ToUpperInvariant()) { case "CANCELREMOVE" or "CANCELREMOVAL": return ResponseCancelRemove(access, steamID, args[1]); case "CONFIRMREMOVE" or "CONFIRMREMOVAL": return ResponseConfirmRemove(access, steamID, args[1]); case "CLEARQUEUE" or "CLEARFREEPACKAGESQUEUE": return ResponseClearQueue(access, steamID, args[1]); case "DONTREMOVE" when args.Length > 2: return ResponseDontRemove(access, steamID, args[1], Utilities.GetArgsAsText(args, 2, ",")); case "DONTREMOVE": return ResponseDontRemove(bot, access, args[1]); case "QSTATUS" or "QUEUESTATUS": return ResponseQueueStatus(access, steamID, args[1]); case "QLICENSE" or "QUEUELICENSE" or "QLICENCE" or "QUEUELICENCE" when args.Length > 2: return ResponseQueueLicense(access, steamID, args[1], Utilities.GetArgsAsText(args, 2, ",")); case "QLICENSE" or "QUEUELICENSE" or "QLICENCE" or "QUEUELICENCE" : return ResponseQueueLicense(bot, access, args[1]); case "QLICENSE^" or "QUEUELICENSE^" or "QLICENCE^" or "QUEUELICENCE^" when args.Length > 2: return ResponseQueueLicense(access, steamID, args[1], Utilities.GetArgsAsText(args, 2, ","), useFilter: true); case "QLICENSE^" or "QUEUELICENSE^" or "QLICENCE^" or "QUEUELICENCE^" : return ResponseQueueLicense(bot, access, args[1], useFilter: true); case "REMOVEFREEPACKAGES": return await ResponseRemoveFreePackages(access, steamID, args[1], new StatusReporter(bot, steamID)).ConfigureAwait(false); case "REMOVEFREEPACKAGES^": return await ResponseRemoveFreePackages(access, steamID, args[1], new StatusReporter(bot, steamID), excludePlayed: true).ConfigureAwait(false); case "REMOVEALLFREEPACKAGES": return await ResponseRemoveFreePackages(access, steamID, args[1], new StatusReporter(bot, steamID), removeAll: true).ConfigureAwait(false); case "REMOVEALLFREEPACKAGES^": return await ResponseRemoveFreePackages(access, steamID, args[1], new StatusReporter(bot, steamID), removeAll: true, excludePlayed: true).ConfigureAwait(false); default: return null; } } } private static string? ResponseCancelRemove(Bot bot, EAccess access) { if (access < EAccess.Master) { return null; } if (!bot.IsConnectedAndLoggedOn) { return FormatBotResponse(bot, ArchiSteamFarm.Localization.Strings.BotNotConnected); } if (!PackageHandler.Handlers.Keys.Contains(bot.BotName)) { return FormatBotResponse(bot, Strings.PluginNotEnabled); } return FormatBotResponse(bot, PackageHandler.Handlers[bot.BotName].CancelRemoval()); } private static string? ResponseCancelRemove(EAccess access, ulong steamID, string botNames) { if (String.IsNullOrEmpty(botNames)) { throw new ArgumentNullException(nameof(botNames)); } HashSet? bots = Bot.GetBots(botNames); if ((bots == null) || (bots.Count == 0)) { return access >= EAccess.Owner ? FormatStaticResponse(String.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botNames)) : null; } IEnumerable results = bots.Select(bot => ResponseCancelRemove(bot, ArchiSteamFarm.Steam.Interaction.Commands.GetProxyAccess(bot, access, steamID))); List responses = new(results.Where(result => !String.IsNullOrEmpty(result))); return responses.Count > 0 ? String.Join(Environment.NewLine, responses) : null; } private static string? ResponseConfirmRemove(Bot bot, EAccess access) { if (access < EAccess.Master) { return null; } if (!bot.IsConnectedAndLoggedOn) { return FormatBotResponse(bot, ArchiSteamFarm.Localization.Strings.BotNotConnected); } if (!PackageHandler.Handlers.Keys.Contains(bot.BotName)) { return FormatBotResponse(bot, Strings.PluginNotEnabled); } return FormatBotResponse(bot, PackageHandler.Handlers[bot.BotName].ConfirmRemoval()); } private static string? ResponseConfirmRemove(EAccess access, ulong steamID, string botNames) { if (String.IsNullOrEmpty(botNames)) { throw new ArgumentNullException(nameof(botNames)); } HashSet? bots = Bot.GetBots(botNames); if ((bots == null) || (bots.Count == 0)) { return access >= EAccess.Owner ? FormatStaticResponse(String.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botNames)) : null; } IEnumerable results = bots.Select(bot => ResponseConfirmRemove(bot, ArchiSteamFarm.Steam.Interaction.Commands.GetProxyAccess(bot, access, steamID))); List responses = new(results.Where(result => !String.IsNullOrEmpty(result))); return responses.Count > 0 ? String.Join(Environment.NewLine, responses) : null; } private static string? ResponseClearQueue(Bot bot, EAccess access) { if (access < EAccess.Master) { return null; } if (!bot.IsConnectedAndLoggedOn) { return FormatBotResponse(bot, ArchiSteamFarm.Localization.Strings.BotNotConnected); } if (!PackageHandler.Handlers.Keys.Contains(bot.BotName)) { return FormatBotResponse(bot, Strings.PluginNotEnabled); } return FormatBotResponse(bot, PackageHandler.Handlers[bot.BotName].ClearQueue()); } private static string? ResponseClearQueue(EAccess access, ulong steamID, string botNames) { if (String.IsNullOrEmpty(botNames)) { throw new ArgumentNullException(nameof(botNames)); } HashSet? bots = Bot.GetBots(botNames); if ((bots == null) || (bots.Count == 0)) { return access >= EAccess.Owner ? FormatStaticResponse(String.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botNames)) : null; } IEnumerable results = bots.Select(bot => ResponseClearQueue(bot, ArchiSteamFarm.Steam.Interaction.Commands.GetProxyAccess(bot, access, steamID))); List responses = new(results.Where(result => !String.IsNullOrEmpty(result))); return responses.Count > 0 ? String.Join(Environment.NewLine, responses) : null; } private static string? ResponseDontRemove(Bot bot, EAccess access, string licenses) { if (access < EAccess.Master) { return null; } if (!bot.IsConnectedAndLoggedOn) { return FormatBotResponse(bot, ArchiSteamFarm.Localization.Strings.BotNotConnected); } if (!PackageHandler.Handlers.Keys.Contains(bot.BotName)) { return FormatBotResponse(bot, Strings.PluginNotEnabled); } // https://github.com/JustArchiNET/ArchiSteamFarm/blob/d972c93072dd8d2bf0f2cecda3561dc3ba77a9ed/ArchiSteamFarm/Steam/Interaction/Commands.cs#L626C3-L626C34 StringBuilder response = new(); string[] entries = licenses.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string entry in entries) { uint gameID; string type; int index = entry.IndexOf('/', StringComparison.Ordinal); if ((index > 0) && (entry.Length > index + 1)) { if (!uint.TryParse(entry[(index + 1)..], out gameID) || (gameID == 0)) { response.AppendLine(FormatBotResponse(bot, string.Format(CultureInfo.CurrentCulture, ArchiSteamFarm.Localization.Strings.ErrorIsInvalid, nameof(gameID)))); continue; } type = entry[..index]; } else if (uint.TryParse(entry, out gameID) && (gameID > 0)) { type = "SUB"; } else { response.AppendLine(FormatBotResponse(bot, string.Format(CultureInfo.CurrentCulture, ArchiSteamFarm.Localization.Strings.ErrorIsInvalid, nameof(gameID)))); continue; } EPackageType packageType; type = type.ToUpperInvariant(); if (type == "A" || type == "APP") { packageType = EPackageType.RemoveApp; } else { packageType = EPackageType.RemoveSub; } response.AppendLine(FormatBotResponse(bot, PackageHandler.Handlers[bot.BotName].ModifyRemovables(packageType, gameID))); } return response.Length > 0 ? response.ToString() : null; } private static string? ResponseDontRemove(EAccess access, ulong steamID, string botNames, string licenses) { if (String.IsNullOrEmpty(botNames)) { throw new ArgumentNullException(nameof(botNames)); } HashSet? bots = Bot.GetBots(botNames); if ((bots == null) || (bots.Count == 0)) { return access >= EAccess.Owner ? FormatStaticResponse(String.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botNames)) : null; } IEnumerable results = bots.Select(bot => ResponseDontRemove(bot, ArchiSteamFarm.Steam.Interaction.Commands.GetProxyAccess(bot, access, steamID), licenses)); List responses = new(results.Where(result => !String.IsNullOrEmpty(result))); Utilities.InBackground(async() => await PackageHandler.HandleChanges().ConfigureAwait(false)); return responses.Count > 0 ? String.Join(Environment.NewLine, responses) : null; } private static string? ResponseQueueStatus(Bot bot, EAccess access) { if (access < EAccess.Master) { return null; } if (!bot.IsConnectedAndLoggedOn) { return FormatBotResponse(bot, ArchiSteamFarm.Localization.Strings.BotNotConnected); } if (!PackageHandler.Handlers.Keys.Contains(bot.BotName)) { return FormatBotResponse(bot, Strings.PluginNotEnabled); } return FormatBotResponse(bot, PackageHandler.Handlers[bot.BotName].GetStatus()); } private static string? ResponseQueueStatus(EAccess access, ulong steamID, string botNames) { if (String.IsNullOrEmpty(botNames)) { throw new ArgumentNullException(nameof(botNames)); } HashSet? bots = Bot.GetBots(botNames); if ((bots == null) || (bots.Count == 0)) { return access >= EAccess.Owner ? FormatStaticResponse(String.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botNames)) : null; } IEnumerable results = bots.Select(bot => ResponseQueueStatus(bot, ArchiSteamFarm.Steam.Interaction.Commands.GetProxyAccess(bot, access, steamID))); List responses = new(results.Where(result => !String.IsNullOrEmpty(result))); return responses.Count > 0 ? String.Join(Environment.NewLine, responses) : null; } private static string? ResponseQueueLicense(Bot bot, EAccess access, string licenses, bool useFilter = false, [CallerMemberName] string? previousMethodName = null) { if (access < EAccess.Master) { return null; } if (!bot.IsConnectedAndLoggedOn) { return FormatBotResponse(bot, ArchiSteamFarm.Localization.Strings.BotNotConnected); } if (!PackageHandler.Handlers.Keys.Contains(bot.BotName)) { return FormatBotResponse(bot, Strings.PluginNotEnabled); } // https://github.com/JustArchiNET/ArchiSteamFarm/blob/d972c93072dd8d2bf0f2cecda3561dc3ba77a9ed/ArchiSteamFarm/Steam/Interaction/Commands.cs#L626C3-L626C34 StringBuilder response = new(); string[] entries = licenses.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string entry in entries) { uint gameID; string type; int index = entry.IndexOf('/', StringComparison.Ordinal); if ((index > 0) && (entry.Length > index + 1)) { if (!uint.TryParse(entry[(index + 1)..], out gameID) || (gameID == 0)) { response.AppendLine(FormatBotResponse(bot, string.Format(CultureInfo.CurrentCulture, ArchiSteamFarm.Localization.Strings.ErrorIsInvalid, nameof(gameID)))); continue; } type = entry[..index]; } else if (uint.TryParse(entry, out gameID) && (gameID > 0)) { type = "SUB"; } else { response.AppendLine(FormatBotResponse(bot, string.Format(CultureInfo.CurrentCulture, ArchiSteamFarm.Localization.Strings.ErrorIsInvalid, nameof(gameID)))); continue; } EPackageType packageType; type = type.ToUpperInvariant(); if (type == "A" || type == "APP") { packageType = EPackageType.App; } else { packageType = EPackageType.Sub; } response.AppendLine(FormatBotResponse(bot, PackageHandler.Handlers[bot.BotName].AddPackage(packageType, gameID, useFilter))); } if (previousMethodName == nameof(Response)) { Utilities.InBackground(async() => await PackageHandler.HandleChanges().ConfigureAwait(false)); } return response.Length > 0 ? response.ToString() : null; } private static string? ResponseQueueLicense(EAccess access, ulong steamID, string botNames, string licenses, bool useFilter = false) { if (String.IsNullOrEmpty(botNames)) { throw new ArgumentNullException(nameof(botNames)); } HashSet? bots = Bot.GetBots(botNames); if ((bots == null) || (bots.Count == 0)) { return access >= EAccess.Owner ? FormatStaticResponse(String.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botNames)) : null; } IEnumerable results = bots.Select(bot => ResponseQueueLicense(bot, ArchiSteamFarm.Steam.Interaction.Commands.GetProxyAccess(bot, access, steamID), licenses, useFilter)); List responses = new(results.Where(result => !String.IsNullOrEmpty(result))); Utilities.InBackground(async() => await PackageHandler.HandleChanges().ConfigureAwait(false)); return responses.Count > 0 ? String.Join(Environment.NewLine, responses) : null; } private static async Task ResponseRemoveFreePackages(Bot bot, EAccess access, StatusReporter statusReporter, bool excludePlayed = false, bool removeAll = false) { if (access < EAccess.Master) { return null; } if (!bot.IsConnectedAndLoggedOn) { return FormatBotResponse(bot, ArchiSteamFarm.Localization.Strings.BotNotConnected); } if (!PackageHandler.Handlers.Keys.Contains(bot.BotName)) { return FormatBotResponse(bot, Strings.PluginNotEnabled); } IDocument? accountLicensesPage = await WebRequest.GetAccountLicenses(bot); if (accountLicensesPage == null) { return FormatBotResponse(bot, Strings.LicensePageFetchFail); } Regex removablePackageIDsRegex = new Regex("RemoveFreeLicense\\(\\s*(?[0-9]+),\\s*'(?[A-Za-z0-9+/=]*)'", RegexOptions.CultureInvariant); // matches the parameters of: RemoveFreeLicense( 45946, 'UmV2ZXJzaW9uOiBUaGUgRXNjYXBl' ); MatchCollection removablePackageMatches = removablePackageIDsRegex.Matches(accountLicensesPage.Source.Text); if (removablePackageMatches.Count == 0) { return FormatBotResponse(bot, Strings.LicensePageEmpty); } Dictionary removeablePackages = new(); foreach (Match match in removablePackageMatches) { string name; try { name = Encoding.UTF8.GetString(Convert.FromBase64String(match.Groups["encodedName"].Value)); } catch (Exception e) { bot.ArchiLogger.LogGenericException(e); return FormatBotResponse(bot, String.Format(ArchiSteamFarm.Localization.Strings.ErrorParsingObject, "encodedName")); } string subIDString = match.Groups["subID"].Value; if (!uint.TryParse(subIDString, out uint subID)) { return FormatBotResponse(bot, String.Format(ArchiSteamFarm.Localization.Strings.ErrorParsingObject, "subID")); } removeablePackages[subID] = name; } Utilities.InBackground( async() => { await PackageHandler.Handlers[bot.BotName].ScanRemovables(removeablePackages, excludePlayed, removeAll, statusReporter).ConfigureAwait(false); } ); int removableScanTimeEstimateMinutes = (int) Math.Round(2.5 * ((double) removeablePackages.Count / ProductInfo.ItemsPerProductInfoRequest) * ((double) ProductInfo.ProductInfoLimitingDelaySeconds / 60)); return FormatBotResponse(bot, String.Format(Strings.RemovalWaitMessage, removableScanTimeEstimateMinutes, String.Format("!cancelremove {0}", bot.BotName))); } private static async Task ResponseRemoveFreePackages(EAccess access, ulong steamID, string botName, StatusReporter statusReporter, bool excludePlayed = false, bool removeAll = false) { if (String.IsNullOrEmpty(botName)) { throw new ArgumentNullException(nameof(botName)); } Bot? bot = Bot.GetBot(botName); if (bot == null) { return access >= EAccess.Owner ? FormatStaticResponse(String.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botName)) : null; } return await ResponseRemoveFreePackages(bot, ArchiSteamFarm.Steam.Interaction.Commands.GetProxyAccess(bot, access, steamID), statusReporter, excludePlayed, removeAll).ConfigureAwait(false); } internal static string FormatStaticResponse(string response) => ArchiSteamFarm.Steam.Interaction.Commands.FormatStaticResponse(response); internal static string FormatBotResponse(Bot bot, string response) => bot.Commands.FormatBotResponse(response); } } ================================================ FILE: FreePackages/Data/Cache/BotCache.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.Json.Serialization; using System.Threading.Tasks; using ArchiSteamFarm.Collections; using ArchiSteamFarm.Core; using ArchiSteamFarm.Helpers; using ArchiSteamFarm.Helpers.Json; using SteamKit2; namespace FreePackages { internal sealed class BotCache : SerializableFile { [JsonInclude] [JsonDisallowNull] internal ConcurrentHashSet Packages { get; private set; } = new(new PackageComparer()); [JsonInclude] [JsonDisallowNull] internal ConcurrentHashSet Activations { get; private set; } = new(); [JsonInclude] [JsonDisallowNull] internal ConcurrentHashSet ChangedApps { get; private set; } = new(); [JsonInclude] [JsonDisallowNull] internal ConcurrentHashSet ChangedPackages { get; private set; } = new(); [JsonInclude] [JsonDisallowNull] internal ConcurrentHashSet NewOwnedPackages { get; private set; } = new(); [JsonInclude] [JsonDisallowNull] internal ConcurrentHashSet SeenPackages { get; private set; } = new(); [JsonInclude] [JsonDisallowNull] internal ConcurrentHashSet WaitlistedPlaytests { get; private set; } = new(); [JsonInclude] [JsonDisallowNull] internal ConcurrentHashSet IgnoredApps { get; private set; } = new(); private HashSet SeenPackageIDActivations = new(); private readonly object LockObject = new(); [JsonConstructor] internal BotCache() { } internal BotCache(string filePath) : this() { if (string.IsNullOrEmpty(filePath)) { throw new ArgumentNullException(nameof(filePath)); } FilePath = filePath; } protected override Task Save() => Save(this); internal static async Task CreateOrLoad(string filePath) { if (string.IsNullOrEmpty(filePath)) { throw new ArgumentNullException(nameof(filePath)); } if (!File.Exists(filePath)) { return new BotCache(filePath); } BotCache? botCache; try { string json = await File.ReadAllTextAsync(filePath).ConfigureAwait(false); if (string.IsNullOrEmpty(json)) { ASF.ArchiLogger.LogGenericError(string.Format(ArchiSteamFarm.Localization.Strings.ErrorIsEmpty, nameof(json))); return null; } botCache = json.ToJsonObject(); } catch (Exception e) { ASF.ArchiLogger.LogGenericException(e); return null; } if (botCache == null) { ASF.ArchiLogger.LogNullError(botCache); return null; } botCache.Packages = new(botCache.Packages.GroupBy(package => package, new PackageComparer()).Select(group => group.First()), new PackageComparer()); botCache.FilePath = filePath; return botCache; } internal bool AddPackage(Package package) { if (Packages.Contains(package)) { return false; } Packages.Add(package); Utilities.InBackground(Save); return true; } internal bool AddPackages(IEnumerable packages) { if (!packages.Except(Packages).Any()) { // There are no new packages to add return false; } Packages.UnionWith(packages); Utilities.InBackground(Save); return true; } internal bool RemovePackage(Package package) { Packages.Remove(package); Utilities.InBackground(Save); return true; } internal bool RemoveAppPackages(HashSet appIDsToRemove) { Packages.Where(x => x.Type == EPackageType.App && appIDsToRemove.Contains(x.ID)).ToList().ForEach(x => Packages.Remove(x)); Utilities.InBackground(Save); return true; } internal Package? GetNextPackage(HashSet types) { // Return the package which should be activated first, prioritizing first packages which have a start and end date ulong now = DateUtils.DateTimeToUnixTime(DateTime.UtcNow); Package? package = Packages.FirstOrDefault(x => x.StartTime != null && now > x.StartTime && types.Contains(x.Type)); if (package != null) { return package; } return Packages.FirstOrDefault(x => x.StartTime == null && types.Contains(x.Type)); } internal void AddActivation(DateTime activation, uint count = 1, IReadOnlyCollection? packageIDs = null) { var activationsToPrune = Activations.Where(x => x < DateTime.Now.AddMinutes(-1 * ActivationQueue.ActivationPeriodMinutes)).ToList(); if (activationsToPrune.Count > 0) { activationsToPrune.ForEach(x => Activations.Remove(x)); } lock(LockObject) { int numUnseenPackageActivations = packageIDs?.Where(packageID => !SeenPackageIDActivations.Contains(packageID)).Count() ?? 0; if (packageIDs == null || numUnseenPackageActivations > 0) { if (packageIDs != null) { SeenPackageIDActivations.UnionWith(packageIDs); } for (int i = 0; i < Math.Max(count, numUnseenPackageActivations); i++) { Activations.Add(activation.AddSeconds(-1 * i)); } } } Utilities.InBackground(Save); } internal int NumActivationsPastPeriod() { return Activations.Where(activation => activation > DateTime.Now.AddMinutes(-1 * ActivationQueue.ActivationPeriodMinutes)).Count(); } internal DateTime? GetLastActivation() { // Can't use Activations.Max() because it's missing on non-generic ASF DateTime? lastActivation = null; foreach (DateTime activation in Activations) { if (lastActivation == null || activation > lastActivation) { lastActivation = activation; } } return lastActivation; } internal void AddChanges(HashSet? appIDs = null, HashSet? packageIDs = null, HashSet? newOwnedPackageIDs = null, bool ignoreFailedApps = false) { if (appIDs != null) { ChangedApps.UnionWith(appIDs); if (ignoreFailedApps) { ChangedApps.ExceptWith(IgnoredApps); } } if (packageIDs != null) { ChangedPackages.UnionWith(packageIDs); } if (newOwnedPackageIDs != null) { NewOwnedPackages.UnionWith(newOwnedPackageIDs); } Utilities.InBackground(Save); } internal void RemoveChange(uint? appID = null, uint? packageID = null, uint? newOwnedPackageID = null) { if (appID != null) { ChangedApps.Remove(appID.Value); } if (packageID != null) { ChangedPackages.Remove(packageID.Value); } if (newOwnedPackageID != null) { NewOwnedPackages.Remove(newOwnedPackageID.Value); } } internal void SaveChanges() { Utilities.InBackground(Save); } internal void ClearQueue() { Packages.RemoveWhere(package => ActivationQueue.ActivationTypes.Contains(package.Type)); ChangedApps.Clear(); ChangedPackages.Clear(); Utilities.InBackground(Save); } internal void CancelRemoval() { Packages.RemoveWhere(package => RemovalQueue.RemovalTypes.Contains(package.Type)); Utilities.InBackground(Save); } internal void AddWaitlistedPlaytest(uint appID) { WaitlistedPlaytests.Add(appID); Utilities.InBackground(Save); } internal void UpdateSeenPackages(List newLicenses) { SeenPackages.UnionWith(newLicenses.Select(license => license.PackageID)); // Keep track of how many free licenses we activated to enforce the free packages limit // This is to catch packages that were activated, but didn't return a success status, or were activated outside of the plugin /* NOTE: The below code will not capture all recent activations. If Steam removes a demo from your account, but you add it back, then the package will re-appear with the original TimeCreated value. Activations like these are instead logged when steam reports a successful activation. */ // TODO: Do other PaymentMethod values also count against the free package limit? foreach(SteamApps.LicenseListCallback.License license in newLicenses) { if (license.PaymentMethod == EPaymentMethod.Complimentary && license.TimeCreated.ToLocalTime() > DateTime.Now.AddMinutes(-1 * ActivationQueue.ActivationPeriodMinutes) ) { AddActivation(license.TimeCreated.ToLocalTime(), packageIDs: [ license.PackageID ]); } } Utilities.InBackground(Save); } internal void IgnoreApp(uint appID) { IgnoredApps.Add(appID); Utilities.InBackground(Save); } } } ================================================ FILE: FreePackages/Data/Cache/GlobalCache.cs ================================================ using System; using System.IO; using System.Text.Json.Serialization; using System.Threading.Tasks; using ArchiSteamFarm.Core; using ArchiSteamFarm.Helpers; using ArchiSteamFarm.Helpers.Json; namespace FreePackages { internal sealed class GlobalCache : SerializableFile { private static string SharedFilePath => Path.Combine(ArchiSteamFarm.SharedInfo.ConfigDirectory, $"{nameof(FreePackages)}.cache"); [JsonInclude] internal uint LastChangeNumber { get; private set; } [JsonInclude] internal uint LastASFInfoItemCount { get; private set; } public bool ShouldSerializeLastChangeNumber() => LastChangeNumber > 0; public bool ShouldSerializeLastASFInfoItemCount() => LastASFInfoItemCount > 0; [JsonConstructor] internal GlobalCache() { FilePath = SharedFilePath; } protected override Task Save() => Save(this); internal static async Task CreateOrLoad() { if (!File.Exists(SharedFilePath)) { return new GlobalCache(); } GlobalCache? globalCache; try { string json = await File.ReadAllTextAsync(SharedFilePath).ConfigureAwait(false); if (string.IsNullOrEmpty(json)) { ASF.ArchiLogger.LogGenericError(string.Format(ArchiSteamFarm.Localization.Strings.ErrorIsEmpty, nameof(json))); return new GlobalCache(); } globalCache = json.ToJsonObject(); } catch (Exception e) { ASF.ArchiLogger.LogGenericException(e); return new GlobalCache(); } if (globalCache == null) { ASF.ArchiLogger.LogNullError(globalCache); return new GlobalCache(); } return globalCache; } internal void UpdateChangeNumber(uint currentChangeNumber) { LastChangeNumber = currentChangeNumber; Utilities.InBackground(Save); } internal void UpdateASFInfoItemCount(uint currentASFInfoItemCount) { LastASFInfoItemCount = currentASFInfoItemCount; Utilities.InBackground(Save); } } } ================================================ FILE: FreePackages/Data/External/ASFInfo.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using ArchiSteamFarm.Core; using ArchiSteamFarm.Web.Responses; using FreePackages.Localization; // There are limitations to using PICS for discovery such that an account that's online 24/7 can still miss certain free games // To fill in some of these gaps, we periodically check the free apps/subs list provided by https://github.com/C4illin/ASFinfo // For more information see here: https://github.com/Citrinate/FreePackages/commit/7541807f10e8dde53b1352a2c103b867e5446fa1#commitcomment-137669223 namespace FreePackages { internal static class ASFInfo { private static Uri Source = new("https://gist.githubusercontent.com/C4illin/e8c5cf365d816f2640242bf01d8d3675/raw/Steam%2520Codes"); private static readonly Regex SourceLine = new Regex("(?[as])/(?[0-9]+)", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase); // Match examples: a/12345 or s/12345 private static TimeSpan UpdateFrequency = TimeSpan.FromHours(1); private static Timer UpdateTimer = new(async e => await DoUpdate().ConfigureAwait(false), null, Timeout.Infinite, Timeout.Infinite); internal static void Update() { UpdateTimer.Change(TimeSpan.FromMinutes(15), UpdateFrequency); } private static async Task DoUpdate() { ArgumentNullException.ThrowIfNull(ASF.WebBrowser); ArgumentNullException.ThrowIfNull(FreePackages.GlobalCache); StreamResponse? response = await ASF.WebBrowser.UrlGetToStream(Source).ConfigureAwait(false); if (response == null) { ASF.ArchiLogger.LogNullError(response); return; } if (response.Content == null) { ASF.ArchiLogger.LogNullError(response.Content); return; } HashSet appIDs = new(); HashSet packageIDs = new(); uint itemCount = 0; try { using (StreamReader sr = new StreamReader(response.Content)) { while (sr.Peek() >= 0) { itemCount++; string? line = sr.ReadLine(); if (line == null) { ASF.ArchiLogger.LogNullError(line); return; } if (itemCount <= FreePackages.GlobalCache.LastASFInfoItemCount) { continue; } Match item = SourceLine.Match(line); if (!item.Success) { ASF.ArchiLogger.LogGenericError(String.Format("{0}: {1}", Strings.ASFInfoParseFailed, line)); return; } if (!uint.TryParse(item.Groups["id"].Value, out uint id)) { ASF.ArchiLogger.LogGenericError(String.Format("{0}: {1}", Strings.ASFInfoParseFailed, line)); return; } if (item.Groups["type"].Value == "a") { // App appIDs.Add(id); } else if (item.Groups["type"].Value == "s") { // Sub packageIDs.Add(id); } } } } catch (Exception e) { ASF.ArchiLogger.LogGenericException(e); return; } if (appIDs.Count == 0 && packageIDs.Count == 0) { return; } PackageHandler.Handlers.Values.ToList().ForEach(x => x.BotCache.AddChanges(appIDs, packageIDs)); FreePackages.GlobalCache.UpdateASFInfoItemCount(itemCount); Utilities.InBackground(async() => await PackageHandler.HandleChanges().ConfigureAwait(false)); } } } ================================================ FILE: FreePackages/Data/External/CardApps.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Text.Json; using System.Text.Json.Serialization; using System.Threading; using System.Threading.Tasks; using ArchiSteamFarm.Core; using ArchiSteamFarm.Web.Responses; using FreePackages.Localization; namespace FreePackages { internal static class CardApps { internal static HashSet AppIDs = new(); private static Timer UpdateTimer = new(async e => await DoUpdate().ConfigureAwait(false), null, Timeout.Infinite, Timeout.Infinite); private static TimeSpan UpdateFrequency = TimeSpan.FromHours(1); internal static void Update() { UpdateTimer.Change(TimeSpan.Zero, UpdateFrequency); } private static async Task DoUpdate() { ArgumentNullException.ThrowIfNull(ASF.WebBrowser); Uri request = new("https://raw.githubusercontent.com/nolddor/steam-badges-db/main/data/badges.min.json"); ObjectResponse? response = await ASF.WebBrowser.UrlGetToJsonObject(request).ConfigureAwait(false); if (response == null) { ASF.ArchiLogger.LogGenericDebug(Strings.BadgeDataFetchFailed); UpdateTimer.Change(TimeSpan.FromMinutes(1), UpdateFrequency); return; } try { ArgumentNullException.ThrowIfNull(response.Content); AppIDs = response.Content.Data.Keys.Select(uint.Parse).ToHashSet(); } catch (Exception e) { ASF.ArchiLogger.LogGenericException(e); ASF.ArchiLogger.LogGenericError(Strings.BadgeDataParsingFailed); return; } } private sealed class Badges { [JsonExtensionData] [JsonInclude] internal Dictionary Data { get; private init; } = new(); } } } ================================================ FILE: FreePackages/Data/PICS/ProductInfo.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using ArchiSteamFarm.Core; using ArchiSteamFarm.Steam; using SteamKit2; namespace FreePackages { internal static class ProductInfo { private static SemaphoreSlim ProductInfoSemaphore = new SemaphoreSlim(1, 1); internal const int ProductInfoLimitingDelaySeconds = 10; internal const int ItemsPerProductInfoRequest = 255; internal async static Task?> GetProductInfo(HashSet? appIDs = null, HashSet? packageIDs = null, CancellationToken? cancellationToken = null) { List productInfo = new(); foreach ((HashSet? batchedAppIDs, HashSet? batchedPackageIDs) in GetProductIDBatches(appIDs, packageIDs)) { cancellationToken?.ThrowIfCancellationRequested(); List? partialProductInfo = await FetchProductInfo(batchedAppIDs, batchedPackageIDs).ConfigureAwait(false); if (partialProductInfo == null) { return null; } productInfo = productInfo.Concat(partialProductInfo).ToList(); } return productInfo; } internal static IEnumerable<(HashSet?, HashSet?)> GetProductIDBatches(HashSet? appIDs = null, HashSet? packageIDs = null) { if ((appIDs?.Count ?? 0) + (packageIDs?.Count ?? 0) <= ItemsPerProductInfoRequest) { yield return (appIDs, packageIDs); } else { if (appIDs != null) { for (int i = 0; i < Math.Ceiling((decimal) appIDs.Count / ItemsPerProductInfoRequest); i++) { HashSet batchedAppIDs = appIDs.Skip(i * ItemsPerProductInfoRequest).Take(ItemsPerProductInfoRequest).ToHashSet(); yield return (batchedAppIDs, null); } } if (packageIDs != null) { for (int i = 0; i < Math.Ceiling((decimal) packageIDs.Count / ItemsPerProductInfoRequest); i++) { HashSet batchedPackageIDs = packageIDs.Skip(i * ItemsPerProductInfoRequest).Take(ItemsPerProductInfoRequest).ToHashSet(); yield return (null, batchedPackageIDs); } } } } private async static Task?> FetchProductInfo(IEnumerable? appIDs = null, IEnumerable? packageIDs = null) { await ProductInfoSemaphore.WaitAsync().ConfigureAwait(false); try { Bot? bot = Bot.BotsReadOnly?.Values.FirstOrDefault(static bot => bot.IsConnectedAndLoggedOn); if (bot == null) { return null; } var apps = appIDs == null ? Enumerable.Empty() : appIDs.Select(x => new SteamApps.PICSRequest(x)); var packages = packageIDs == null ? Enumerable.Empty() : packageIDs.Select(x => new SteamApps.PICSRequest(x, ASF.GlobalDatabase?.PackageAccessTokensReadOnly.GetValueOrDefault(x, (ulong) 0) ?? 0)); var response = await bot.SteamApps.PICSGetProductInfo(apps, packages).ToLongRunningTask().ConfigureAwait(false); return response.Results?.ToList(); } catch (Exception e) { ASF.ArchiLogger.LogGenericWarningException(e); return null; } finally { Utilities.InBackground( async() => { await Task.Delay(TimeSpan.FromSeconds(ProductInfoLimitingDelaySeconds)).ConfigureAwait(false); ProductInfoSemaphore.Release(); } ); } } } } ================================================ FILE: FreePackages/FreePackages.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Threading.Tasks; using ArchiSteamFarm.Core; using ArchiSteamFarm.Steam; using ArchiSteamFarm.Plugins.Interfaces; using SteamKit2; using System.Text.Json; using ArchiSteamFarm.Helpers.Json; namespace FreePackages { [Export(typeof(IPlugin))] public sealed class FreePackages : IASF, IBotModules, ISteamPICSChanges, IBotSteamClient, IBotConnection, IBotCommand2, IGitHubPluginUpdates { public string Name => nameof(FreePackages); public string RepositoryName => "Citrinate/FreePackages"; public Version Version => typeof(FreePackages).Assembly.GetName().Version ?? new Version("0"); internal static GlobalCache? GlobalCache; public Task OnLoaded() { ASF.ArchiLogger.LogGenericInfo("Free Packages ASF Plugin by Citrinate"); return Task.CompletedTask; } public async Task OnBotCommand(Bot bot, EAccess access, string message, string[] args, ulong steamID = 0) { return await Commands.Response(bot, access, steamID, message, args).ConfigureAwait(false); } public async Task OnASFInit(IReadOnlyDictionary? additionalConfigProperties = null) { if (GlobalCache == null) { GlobalCache = await GlobalCache.CreateOrLoad().ConfigureAwait(false); } CardApps.Update(); ASFInfo.Update(); } public async Task OnBotInitModules(Bot bot, IReadOnlyDictionary? additionalConfigProperties = null) { if (additionalConfigProperties == null) { return; } bool isEnabled = false; uint? packageLimit = null; bool pauseWhilePlaying = false; List filterConfigs = new(); foreach (KeyValuePair configProperty in additionalConfigProperties) { switch (configProperty.Key) { case "EnableFreePackages" when (configProperty.Value.ValueKind == JsonValueKind.True || configProperty.Value.ValueKind == JsonValueKind.False): { isEnabled = configProperty.Value.GetBoolean(); bot.ArchiLogger.LogGenericInfo("Enable Free Packages : " + isEnabled.ToString()); break; } case "PauseFreePackagesWhilePlaying" when (configProperty.Value.ValueKind == JsonValueKind.True || configProperty.Value.ValueKind == JsonValueKind.False): { pauseWhilePlaying = configProperty.Value.GetBoolean(); bot.ArchiLogger.LogGenericInfo("Pause Free Packages While Playing : " + pauseWhilePlaying.ToString()); break; } case "FreePackagesPerHour" or "FreePackagesLimit" when configProperty.Value.ValueKind == JsonValueKind.Number: { packageLimit = configProperty.Value.ToJsonObject(); bot.ArchiLogger.LogGenericInfo("Free Packages Limit : " + packageLimit.ToString()); break; } case "FreePackagesFilter": { FilterConfig? filter = configProperty.Value.ToJsonObject(); if (filter != null) { bot.ArchiLogger.LogGenericInfo("Free Packages Filter : " + filter.ToJsonText()); filterConfigs.Add(filter); } break; } case "FreePackagesFilters": { List? filters = configProperty.Value.ToJsonObject>(); if (filters != null) { bot.ArchiLogger.LogGenericInfo("Free Packages Filters : " + filters.ToJsonText()); filterConfigs.AddRange(filters); } break; } } } if (isEnabled) { await PackageHandler.AddHandler(bot, filterConfigs, packageLimit, pauseWhilePlaying).ConfigureAwait(false); } } public Task GetPreferredChangeNumberToStartFrom() { return Task.FromResult(GlobalCache?.LastChangeNumber ?? 0); } public Task OnPICSChanges(uint currentChangeNumber, IReadOnlyDictionary appChanges, IReadOnlyDictionary packageChanges) { PICSHandler.OnPICSChanges(currentChangeNumber, appChanges, packageChanges); return Task.CompletedTask; } public async Task OnPICSChangesRestart(uint currentChangeNumber) { await PICSHandler.OnPICSRestart(currentChangeNumber).ConfigureAwait(false); } public Task OnBotSteamCallbacksInit(Bot bot, CallbackManager callbackManager) { callbackManager.Subscribe(callback => OnLicenseList(bot, callback)); return Task.CompletedTask; } public Task?> OnBotSteamHandlersInit(Bot bot) { return Task.FromResult?>(new List { SteamHandler.AddHandler(bot) }); } private static void OnLicenseList (Bot bot, SteamApps.LicenseListCallback callback) { PackageHandler.OnLicenseList(bot, callback); } public async Task OnBotLoggedOn(Bot bot) { await PackageHandler.OnBotLoggedOn(bot).ConfigureAwait(false); } public Task OnBotDisconnected(Bot bot, EResult reason) { return Task.FromResult(0); } } } ================================================ FILE: FreePackages/FreePackages.csproj ================================================  Citrinate PrepareResources;$(CompileDependsOn) ================================================ FILE: FreePackages/Handlers/PICSHandler.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using ArchiSteamFarm.Core; using ArchiSteamFarm.Steam; using FreePackages.Localization; using SteamKit2; namespace FreePackages { internal static class PICSHandler { private static SemaphoreSlim PICSChangesSemaphore = new SemaphoreSlim(1, 1); private const int PICSChangesLimitingDelaySeconds = 10; internal static void OnPICSChanges(uint currentChangeNumber, IReadOnlyDictionary appChanges, IReadOnlyDictionary packageChanges) { if (FreePackages.GlobalCache == null) { throw new InvalidOperationException(nameof(GlobalCache)); } if (currentChangeNumber <= FreePackages.GlobalCache.LastChangeNumber) { return; } PackageHandler.AddChanges(appChanges, packageChanges); FreePackages.GlobalCache.UpdateChangeNumber(currentChangeNumber); return; } internal async static Task OnPICSRestart(uint currentChangeNumber) { if (PackageHandler.Handlers.Count == 0) { return; } if (FreePackages.GlobalCache == null) { throw new InvalidOperationException(nameof(GlobalCache)); } uint oldChangeNumber = FreePackages.GlobalCache.LastChangeNumber; ASF.ArchiLogger.LogGenericDebug(String.Format(Strings.PICSRestart, oldChangeNumber, currentChangeNumber)); // ASF restarts PICS if either apps or packages needs a full update. Check the old change number, as one of them might still be good. SteamApps.PICSChangesCallback? picsChanges = await FetchPICSChanges(oldChangeNumber, sendAppChangeList: false, sendPackageChangeList: true).ConfigureAwait(false); if (picsChanges == null) { return; } if (!picsChanges.RequiresFullAppUpdate) { PackageHandler.AddChanges(picsChanges.AppChanges, new Dictionary()); } else { ASF.ArchiLogger.LogGenericDebug(Strings.MissedApps); // Search for the oldest change number which is still valid for apps var appChanges = await FindOldestPICSChanges(oldChangeNumber + 1, picsChanges.CurrentChangeNumber, findApps: true); if (appChanges != null) { ASF.ArchiLogger.LogGenericDebug(String.Format(Strings.RecoveredApps, appChanges.AppChanges.Count, appChanges.LastChangeNumber + 1)); PackageHandler.AddChanges(appChanges.AppChanges, new Dictionary()); } } if (!picsChanges.RequiresFullPackageUpdate) { PackageHandler.AddChanges(new Dictionary(), picsChanges.PackageChanges); } else { ASF.ArchiLogger.LogGenericDebug(Strings.MissedPackages); // Search for the oldest change number which is still valid for packages var packageChanges = await FindOldestPICSChanges(oldChangeNumber + 1, picsChanges.CurrentChangeNumber, findApps: false); if (packageChanges != null) { ASF.ArchiLogger.LogGenericDebug(String.Format(Strings.RecoveredPackages, packageChanges.PackageChanges.Count, packageChanges.LastChangeNumber + 1)); PackageHandler.AddChanges(new Dictionary(), packageChanges.PackageChanges); } } if (currentChangeNumber > FreePackages.GlobalCache.LastChangeNumber) { FreePackages.GlobalCache.UpdateChangeNumber(currentChangeNumber); } } private async static Task FindOldestPICSChanges(uint minValidChangeNumber, uint maxValidChangeNumber, bool findApps) { if (minValidChangeNumber >= maxValidChangeNumber) { return null; } bool sendAppChangeList = findApps; bool sendPackageChangeList = !findApps; uint changeNumber = maxValidChangeNumber - ((uint) Math.Floor((maxValidChangeNumber - minValidChangeNumber) / 2.0)); SteamApps.PICSChangesCallback? oldestPicsChanges = null; do { SteamApps.PICSChangesCallback? picsChanges = await FetchPICSChanges(changeNumber, sendAppChangeList, sendPackageChangeList).ConfigureAwait(false); if (picsChanges == null) { break; } bool isValid = (findApps && !picsChanges.RequiresFullAppUpdate) || (!findApps && !picsChanges.RequiresFullPackageUpdate); if (isValid) { oldestPicsChanges = picsChanges; maxValidChangeNumber = changeNumber; } else { minValidChangeNumber = changeNumber; } changeNumber = maxValidChangeNumber - Math.Max(1, ((uint) Math.Floor((maxValidChangeNumber - minValidChangeNumber) / 2.0))); } while (changeNumber > minValidChangeNumber); return oldestPicsChanges; } private async static Task FetchPICSChanges(uint changeNumber, bool sendAppChangeList = true, bool sendPackageChangeList = true) { await PICSChangesSemaphore.WaitAsync().ConfigureAwait(false); try { Bot? refreshBot = GetRefreshBot(); if (refreshBot == null) { return null; } return await refreshBot.SteamApps.PICSGetChangesSince(changeNumber, sendAppChangeList, sendPackageChangeList).ToLongRunningTask().ConfigureAwait(false); } catch (Exception e) { ASF.ArchiLogger.LogGenericWarningException(e); return null; } finally { Utilities.InBackground( async() => { await Task.Delay(TimeSpan.FromSeconds(PICSChangesLimitingDelaySeconds)).ConfigureAwait(false); PICSChangesSemaphore.Release(); } ); } } private static Bot? GetRefreshBot() => Bot.BotsReadOnly?.Values.FirstOrDefault(static bot => bot.IsConnectedAndLoggedOn); } } ================================================ FILE: FreePackages/Handlers/PackageHandler.cs ================================================ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using ArchiSteamFarm.Collections; using ArchiSteamFarm.Core; using ArchiSteamFarm.Steam; using FreePackages.Localization; using SteamKit2; namespace FreePackages { internal sealed class PackageHandler : IDisposable { internal readonly Bot Bot; internal readonly BotCache BotCache; internal readonly PackageFilter PackageFilter; private readonly ActivationQueue ActivationQueue; private readonly RemovalQueue RemovalQueue; private CancellationTokenSource? RemovalCancellation; ConcurrentHashSet PackagesToRemove = new(new PackageComparer()); internal static ConcurrentDictionary Handlers = new(); private readonly Timer UserDataRefreshTimer; private static SemaphoreSlim AddHandlerSemaphore = new SemaphoreSlim(1, 1); private static SemaphoreSlim ProcessChangesSemaphore = new SemaphoreSlim(1, 1); private PackageHandler(Bot bot, BotCache botCache, List filterConfigs, uint? packageLimit, bool pauseWhilePlaying) { Bot = bot; BotCache = botCache; PackageFilter = new PackageFilter(botCache, filterConfigs); ActivationQueue = new ActivationQueue(bot, botCache, pauseWhilePlaying, packageLimit, PackageFilter); RemovalQueue = new RemovalQueue(bot, botCache, pauseWhilePlaying); UserDataRefreshTimer = new Timer(async e => await FetchUserData().ConfigureAwait(false), null, Timeout.Infinite, Timeout.Infinite); } public void Dispose() { ActivationQueue.Dispose(); UserDataRefreshTimer.Dispose(); } internal static async Task AddHandler(Bot bot, List filterConfigs, uint? packageLimit, bool pauseWhilePlaying) { if (Handlers.ContainsKey(bot.BotName)) { Handlers[bot.BotName].Dispose(); Handlers.TryRemove(bot.BotName, out PackageHandler? _); } await AddHandlerSemaphore.WaitAsync().ConfigureAwait(false); try { if (filterConfigs.Any(filterConfig => filterConfig.PlaytestMode != EPlaytestMode.None)) { // Only allow 1 bot to request playtests int numBotsThatIncludePlaytests = Handlers.Values.Where(x => x.PackageFilter.FilterConfigs.Any(filterConfig => filterConfig.PlaytestMode != EPlaytestMode.None)).Count(); if (numBotsThatIncludePlaytests > 0) { filterConfigs.ForEach(filterConfig => filterConfig.PlaytestMode = EPlaytestMode.None); bot.ArchiLogger.LogGenericInfo(Strings.PlaytestConfigLimitTriggered); } } string cacheFilePath = Bot.GetFilePath(String.Format("{0}_{1}", bot.BotName, nameof(FreePackages)), Bot.EFileType.Database); BotCache? botCache = await BotCache.CreateOrLoad(cacheFilePath).ConfigureAwait(false); if (botCache == null) { bot.ArchiLogger.LogGenericError(String.Format(ArchiSteamFarm.Localization.Strings.ErrorDatabaseInvalid, cacheFilePath)); botCache = new(cacheFilePath); } Handlers.TryAdd(bot.BotName, new PackageHandler(bot, botCache, filterConfigs, packageLimit, pauseWhilePlaying)); } finally { AddHandlerSemaphore.Release(); } } internal static void OnLicenseList(Bot bot, SteamApps.LicenseListCallback callback) { if (!Handlers.ContainsKey(bot.BotName)) { return; } Handlers[bot.BotName].HandleLicenseList(callback); } internal static async Task OnBotLoggedOn(Bot bot) { if (!Handlers.ContainsKey(bot.BotName)) { return; } await Handlers[bot.BotName].FetchUserData().ConfigureAwait(false); Handlers[bot.BotName].ActivationQueue.Start(); Handlers[bot.BotName].RemovalQueue.Start(); } private void UpdateUserData() { UserDataRefreshTimer.Change(TimeSpan.Zero, TimeSpan.FromMinutes(15)); } private async Task FetchUserData() { if (!Bot.IsConnectedAndLoggedOn) { UserDataRefreshTimer.Change(TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(15)); return; } Steam.UserData? userData = await WebRequest.GetUserData(Bot).ConfigureAwait(false); if (userData == null) { UserDataRefreshTimer.Change(TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(15)); Bot.ArchiLogger.LogGenericError(String.Format(ArchiSteamFarm.Localization.Strings.ErrorObjectIsNull, nameof(userData))); return; } Steam.UserInfo? userInfo = await WebRequest.GetUserInfo(Bot).ConfigureAwait(false); if (userInfo == null) { UserDataRefreshTimer.Change(TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(15)); Bot.ArchiLogger.LogGenericError(String.Format(ArchiSteamFarm.Localization.Strings.ErrorObjectIsNull, nameof(userInfo))); return; } PackageFilter.UpdateUserDetails(userData, userInfo); UserDataRefreshTimer.Change(TimeSpan.FromMinutes(15), TimeSpan.FromMinutes(15)); } internal static void AddChanges(IReadOnlyDictionary appChanges, IReadOnlyDictionary packageChanges) { if (Handlers.Count == 0) { return; } // It's possible for a PICS change to effect thousands of apps and packages, Ex: https://steamdb.info/changelist/20445399/ (47,074 apps total, 31,529 packages total) // Store a list of changed apps/packages so that we can guarantee they'll all be processed eventually // Each bot has its own list, so that if any bots are offline, they'll be able to get caught up HashSet appIDs = appChanges.Select(x => x.Key).ToHashSet(); HashSet packageIDs = packageChanges.Select(x => x.Key).ToHashSet(); Handlers.Values.ToList().ForEach(x => x.BotCache.AddChanges(appIDs, packageIDs, ignoreFailedApps: true)); Utilities.InBackground(async() => await HandleChanges().ConfigureAwait(false)); } private async static Task IsReady(uint maxWaitTimeSeconds = 120) { DateTime timeoutTime = DateTime.Now.AddSeconds(maxWaitTimeSeconds); do { bool ready = Handlers.Values.Where(x => x.Bot.BotConfig.Enabled && !x.PackageFilter.Ready).Count() == 0; if (ready) { return true; } await Task.Delay(TimeSpan.FromSeconds(1)).ConfigureAwait(false); } while (maxWaitTimeSeconds == 0 || DateTime.Now < timeoutTime); return false; } internal async static Task HandleChanges() { if (!await ProcessChangesSemaphore.WaitAsync(0).ConfigureAwait(false)) { return; } try { await IsReady().ConfigureAwait(false); HashSet appIDs = Handlers.Values.Where(x => x.Bot.IsConnectedAndLoggedOn).SelectMany(x => x.BotCache.ChangedApps).ToHashSet(); HashSet packageIDs = Handlers.Values.Where(x => x.Bot.IsConnectedAndLoggedOn).SelectMany(x => x.BotCache.ChangedPackages).ToHashSet(); HashSet newOwnedPackageIDs = Handlers.Values.Where(x => x.Bot.IsConnectedAndLoggedOn).SelectMany(x => x.BotCache.NewOwnedPackages).ToHashSet(); packageIDs.UnionWith(newOwnedPackageIDs); if (appIDs.Count == 0 && packageIDs.Count == 0) { return; } foreach ((HashSet? batchedAppIDs, HashSet? batchedPackageIDs) in ProductInfo.GetProductIDBatches(appIDs, packageIDs)) { var productInfo = await ProductInfo.GetProductInfo(batchedAppIDs, batchedPackageIDs).ConfigureAwait(false); if (productInfo == null) { continue; } await HandleProductInfo(productInfo).ConfigureAwait(false); } } finally { ProcessChangesSemaphore.Release(); } } private async static Task HandleProductInfo(List productInfos) { { // Add wanted apps to the queue List? apps = await FilterableApp.GetFilterables( productInfos, app => { Handlers.Values.ToList().ForEach(x => x.BotCache.RemoveChange(appID: app.ID)); return true; } ).ConfigureAwait(false); if (apps == null) { ASF.ArchiLogger.LogGenericError(Strings.ProductInfoFetchFailed); return; } if (apps.Count > 0) { apps.ForEach(app => { if (app.Type == EAppType.Beta) { Handlers.Values.ToList().ForEach(x => x.HandlePlaytest(app)); } else { Handlers.Values.ToList().ForEach(x => x.HandleFreeApp(app)); } }); } } { // Add wanted packages to the queue or check new packages for free DLC HashSet newOwnedPackageIDs = Handlers.Values.Where(x => x.Bot.IsConnectedAndLoggedOn).SelectMany(x => x.BotCache.NewOwnedPackages).ToHashSet(); List? packages = await FilterablePackage.GetFilterables( productInfos, package => { Handlers.Values.ToList().ForEach(x => x.BotCache.RemoveChange(packageID: package.ID)); return !newOwnedPackageIDs.Contains(package.ID); } ).ConfigureAwait(false); if (packages == null) { ASF.ArchiLogger.LogGenericError(Strings.ProductInfoFetchFailed); return; } if (packages.Count > 0) { packages.ForEach(package => { if (newOwnedPackageIDs.Contains(package.ID)) { Handlers.Values.ToList().ForEach(x => x.HandleNewPackage(package)); } else { Handlers.Values.ToList().ForEach(x => x.HandleFreePackage(package)); } }); } } // Remove invalid apps from the app change list foreach (uint unknownAppID in productInfos.SelectMany(static result => result.UnknownApps)) { Handlers.Values.ToList().ForEach(x => x.BotCache.RemoveChange(appID: unknownAppID)); } // Remove invalid packages from the package change list foreach (uint unknownPackageID in productInfos.SelectMany(static result => result.UnknownPackages)) { Handlers.Values.ToList().ForEach(x => x.BotCache.RemoveChange(packageID: unknownPackageID)); Handlers.Values.ToList().ForEach(x => x.BotCache.RemoveChange(newOwnedPackageID: unknownPackageID)); } // Save changes to the app/package change lists Handlers.Values.ToList().ForEach(x => x.BotCache.SaveChanges()); } private void HandleFreeApp(FilterableApp app) { if (!BotCache.ChangedApps.Contains(app.ID)) { return; } if (!PackageFilter.Ready) { return; } try { if (!PackageFilter.IsRedeemableApp(app)) { return; } if (!PackageFilter.IsWantedApp(app)) { return; } BotCache.AddPackage(new Package(EPackageType.App, app.ID, filterHash: PackageFilter.Hash)); } finally { BotCache.RemoveChange(appID: app.ID); } } private void HandleFreePackage(FilterablePackage package) { if (!BotCache.ChangedPackages.Contains(package.ID)) { return; } if (!PackageFilter.Ready) { return; } try { if (!PackageFilter.IsRedeemablePackage(package)) { return; } if (!PackageFilter.IsWantedPackage(package)) { return; } if (BotCache.AddPackage(new Package(EPackageType.Sub, package.ID, package.StartTime, filterHash: PackageFilter.Hash))) { // Remove duplicates. // Whenever we're trying to activate an app and also an package for that app, get rid of the app. // This is because the error messages for activating packages are more descriptive and useful. BotCache.RemoveAppPackages(package.PackageContentIDs); } } finally { BotCache.RemoveChange(packageID: package.ID); } } private void HandlePlaytest(FilterableApp app) { if (!BotCache.ChangedApps.Contains(app.ID)) { return; } if (!PackageFilter.Ready) { return; } try { if (app.Parent == null) { return; } if (!PackageFilter.IsRedeemablePlaytest(app)) { return; } if (!PackageFilter.IsWantedPlaytest(app)) { return; } BotCache.AddPackage(new Package(EPackageType.Playtest, app.Parent.ID, filterHash: PackageFilter.Hash)); } finally { BotCache.RemoveChange(appID: app.ID); } } private void HandleNewPackage(FilterablePackage package) { if (!BotCache.NewOwnedPackages.Contains(package.ID)) { return; } try { if (package.PackageContents.Count == 0) { return; } // Check for free DLC on newly added packages HashSet dlcAppIDs = new(); foreach (FilterableApp app in package.PackageContents) { if (String.IsNullOrEmpty(app.ListOfDLC)) { continue; } foreach (string dlcAppIDString in app.ListOfDLC.Split(",", StringSplitOptions.RemoveEmptyEntries)) { if (!uint.TryParse(dlcAppIDString, out uint dlcAppID) || (dlcAppID == 0)) { continue; } dlcAppIDs.Add(dlcAppID); } } if (dlcAppIDs.Count != 0) { BotCache.AddChanges(appIDs: dlcAppIDs); Utilities.InBackground(async() => await HandleChanges().ConfigureAwait(false)); } } finally { BotCache.RemoveChange(newOwnedPackageID: package.ID); } } internal void HandleLicenseList(SteamApps.LicenseListCallback callback) { List newLicenses = callback.LicenseList.Where(license => !BotCache.SeenPackages.Contains(license.PackageID)).ToList(); if (newLicenses.Count == 0) { return; } UpdateUserData(); // Initialize SeenPackages if (BotCache.SeenPackages.Count == 0) { BotCache.UpdateSeenPackages(newLicenses); return; } BotCache.AddChanges(newOwnedPackageIDs: newLicenses.Select(license => license.PackageID).ToHashSet()); BotCache.UpdateSeenPackages(newLicenses); Utilities.InBackground(async() => await HandleChanges().ConfigureAwait(false)); } internal string GetStatus() { HashSet responses = new HashSet(); // x packages queued. y activations used int activationsPastPeriod = Math.Min(BotCache.NumActivationsPastPeriod(), (int)ActivationQueue.MaxActivationsPerPeriod); responses.Add(String.Format(Strings.QueueStatus, ActivationQueue.ActivationsRemaining, activationsPastPeriod, ActivationQueue.ActivationsPerPeriod)); // activations are paused if (ActivationQueue.PauseWhilePlaying && !Bot.IsPlayingPossible) { responses.Add(Strings.QueuePausedWhileIngame); } // activations will resume when if (activationsPastPeriod >= ActivationQueue.ActivationsPerPeriod) { DateTime resumeTime = BotCache.GetLastActivation()!.Value.AddMinutes(ActivationQueue.ActivationPeriodMinutes + 1); responses.Add(String.Format(Strings.QueueLimitedUntil, String.Format("{0:T}", resumeTime))); } // x apps and y packages discovered but not processed if (BotCache.ChangedApps.Count > 0 || BotCache.ChangedPackages.Count > 0) { responses.Add(String.Format(Strings.QueueDiscoveryStatus, BotCache.ChangedApps.Count, BotCache.ChangedPackages.Count)); } // removing x packages if (RemovalQueue.RemovalsRemaining > 0) { responses.Add(String.Format(Strings.RemovingPackages, RemovalQueue.RemovalsRemaining)); } return String.Join(" ", responses); } internal string ClearQueue() { int numPackages = BotCache.Packages.Where(package => ActivationQueue.ActivationTypes.Contains(package.Type)).Count(); int numChangedApps = BotCache.ChangedApps.Count; int numChangedPackages = BotCache.ChangedPackages.Count; if (numPackages == 0 && numChangedApps == 0 && numChangedPackages == 0) { return Strings.QueueEmpty; } BotCache.ClearQueue(); List responses = new List(); if (numPackages > 0) { responses.Add(String.Format(Strings.PackagesRemoved, numPackages)); } if (numChangedApps > 0) { responses.Add(String.Format(Strings.DiscoveredAppsRemoved, numChangedApps)); } if (numChangedPackages > 0) { responses.Add(String.Format(Strings.DiscoveredPackagesRemoved, numChangedPackages)); } return String.Join(" ", responses); } internal string AddPackage(EPackageType type, uint id, bool useFilter) { if (useFilter) { if (type == EPackageType.App) { BotCache.AddChanges(appIDs: new HashSet { id }); return String.Format(Strings.DiscoveredAppsAdded, String.Format("app/{0}", id)); } else { BotCache.AddChanges(packageIDs: new HashSet { id }); return String.Format(Strings.DiscoveredPackagesAdded, String.Format("sub/{0}", id)); } } BotCache.AddPackage(new Package(type, id)); if (type == EPackageType.App) { return String.Format(Strings.AppsQueued, String.Format("app/{0}", id)); } else { return String.Format(Strings.PackagesQueued, String.Format("sub/{0}", id)); } } internal void AddPackages(HashSet? appIDs, HashSet? packageIDs, bool useFilter) { if (useFilter) { BotCache.AddChanges(appIDs, packageIDs); return; } HashSet packages = new(); if (appIDs != null) { packages.UnionWith(appIDs.Select(static id => new Package(EPackageType.App, id))); } if (packageIDs != null) { packages.UnionWith(packageIDs.Select(static id => new Package(EPackageType.Sub, id))); } BotCache.AddPackages(packages); } internal async Task ScanRemovables(Dictionary removeablePackages, bool excludePlayed, bool removeAll, StatusReporter statusReporter) { if (RemovalCancellation != null) { statusReporter.Report(Bot, Strings.RemovalScanAlreadyRunning); return; } RemovalCancellation = new CancellationTokenSource(); try { await ProcessChangesSemaphore.WaitAsync(RemovalCancellation.Token).ConfigureAwait(false); try { await IsReady().ConfigureAwait(false); Dictionary? ownedGameDetails = null; if (excludePlayed) { ownedGameDetails = await SteamHandler.Handlers[Bot.BotName].GetOwnedGames(Bot.SteamID).ConfigureAwait(false); if (ownedGameDetails == null) { statusReporter.Report(Bot, Strings.PlaytimeFetchFailed); return; } } var productInfos = await ProductInfo.GetProductInfo(packageIDs: removeablePackages.Keys.ToHashSet(), cancellationToken: RemovalCancellation.Token).ConfigureAwait(false); if (productInfos == null) { statusReporter.Report(Bot, Strings.ProductInfoFetchFailed); return; } List? packages = await FilterablePackage.GetFilterables(productInfos, cancellationToken: RemovalCancellation.Token, onNonFreePackage: x => !removeAll).ConfigureAwait(false); if (packages == null) { statusReporter.Report(Bot, Strings.ProductInfoFetchFailed); return; } if (packages.Count == 0) { statusReporter.Report(Bot, Strings.RemovingNoPackages); return; } RemovalCancellation.Token.ThrowIfCancellationRequested(); PackagesToRemove.Clear(); List previewResponses = []; var ownedPackageIDs = Bot.OwnedPackages.Keys.ToHashSet(); foreach (FilterablePackage package in packages) { if (!removeAll) { if (!PackageFilter.IsRedeemablePackage(package, ignoreAlreadyOwned: true)) { continue; } if (PackageFilter.IsWantedPackage(package, ignoreAgeFilters: true)) { continue; } } if (excludePlayed) { if (package.PackageContents.Any(app => { return (ownedGameDetails!.ContainsKey(app.ID) && ownedGameDetails![app.ID].playtime_forever > 0) || (app.Type != EAppType.Demo && app.ParentID != null && ownedGameDetails!.ContainsKey(app.ParentID.Value) && ownedGameDetails![app.ParentID.Value].playtime_forever > 0); })) { continue; } } // Attempt to remove the app directly, which uses an API with a more generous rate limit if (package.PackageContents.Count == 1) { FilterableApp app = package.PackageContents.First(); // Apparently the API for removing apps doesn't care which package is removed? (Haven't tested this) https://github.com/JustArchiNET/ArchiSteamFarm/issues/3434#issuecomment-2954303590 // Only remove by app if this is the only package that can be removed int ownedPackagesWithApp = ASF.GlobalDatabase!.PackagesDataReadOnly.Where(x => ownedPackageIDs.Contains(x.Key) && x.Value.AppIDs != null && x.Value.AppIDs.Contains(app.ID)).Count(); if (ownedPackagesWithApp <= 1) { PackagesToRemove.Add(new Package(EPackageType.RemoveApp, app.ID)); previewResponses.Add(String.Format("app/{0} ({1})", app.ID, removeablePackages[package.ID])); continue; } } PackagesToRemove.Add(new Package(EPackageType.RemoveSub, package.ID)); previewResponses.Add(String.Format("sub/{0} ({1})", package.ID, removeablePackages[package.ID])); } if (PackagesToRemove.Count == 0) { statusReporter.Report(Bot, Strings.RemovingNoUnwatedPackages); return; } statusReporter.Report(Bot, String.Format(Strings.RemovablePackagesFound, new object?[] { PackagesToRemove.Count, String.Join(PackagesToRemove.Count > 100 ? ", " : Environment.NewLine, previewResponses), String.Format("!cancelremove {0}", Bot.BotName), String.Format("!confirmremove {0}", Bot.BotName), String.Format("!dontremove {0} ", Bot.BotName) })); } finally { ProcessChangesSemaphore.Release(); } } catch (OperationCanceledException) { statusReporter.Report(Bot, Strings.RemovalScanCancelled); } finally { RemovalCancellation?.Dispose(); RemovalCancellation = null; } } internal string ConfirmRemoval() { if (PackagesToRemove.Count == 0) { return String.Format(Strings.RemovalScanNeeded, String.Format("!removefreepackages {0}", Bot.BotName)); } int numRemovalsDiscovered = PackagesToRemove.Count; BotCache.AddPackages(PackagesToRemove); PackagesToRemove.Clear(); return String.Format(Strings.RemovingPackages, numRemovalsDiscovered); } internal string ModifyRemovables(EPackageType type, uint id) { if (PackagesToRemove.Count == 0) { return String.Format(Strings.RemovalScanNeeded, String.Format("!removefreepackages {0}", Bot.BotName)); } Package? package = PackagesToRemove.FirstOrDefault(package => package.Type == type && package.ID == id); if (package == null) { if (type == EPackageType.RemoveApp) { return String.Format(Strings.RemovalPackageNotFound, String.Format("app/{0}", id)) + " :steamthumbsdown:"; } else { return String.Format(Strings.RemovalPackageNotFound, String.Format("sub/{0}", id)) + " :steamthumbsdown:"; } } PackagesToRemove.Remove(package); if (type == EPackageType.RemoveApp) { return String.Format(Strings.RemovalPackageCancelled, String.Format("app/{0}", id)); } else { return String.Format(Strings.RemovalPackageCancelled, String.Format("sub/{0}", id)); } } internal string CancelRemoval() { bool stoppingScan = RemovalCancellation != null; int numRemovalsDiscovered = PackagesToRemove.Count; int numRemovals = BotCache.Packages.Where(package => RemovalQueue.RemovalTypes.Contains(package.Type)).Count(); if (!stoppingScan && numRemovalsDiscovered == 0 && numRemovals == 0) { return Strings.RemovalQueueEmpty; } RemovalCancellation?.Cancel(); PackagesToRemove.Clear(); BotCache.CancelRemoval(); List responses = new List(); if (numRemovals > 0) { responses.Add(String.Format(Strings.RemovalsCancelled, numRemovals)); } if (numRemovalsDiscovered > 0) { responses.Add(String.Format(Strings.RemovalScanCancelled)); } if (stoppingScan) { responses.Add(String.Format(Strings.RemovalScanCanceling)); } return String.Join(" ", responses); } } } ================================================ FILE: FreePackages/Handlers/SteamHandler.cs ================================================ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using ArchiSteamFarm.Core; using ArchiSteamFarm.Steam; using SteamKit2; using SteamKit2.Internal; namespace FreePackages { internal sealed class SteamHandler : ClientMsgHandler { internal static ConcurrentDictionary Handlers = new(); internal static SteamHandler AddHandler(Bot bot) { if (Handlers.ContainsKey(bot.BotName)) { Handlers.TryRemove(bot.BotName, out SteamHandler? _); } SteamHandler handler = new(); Handlers.TryAdd(bot.BotName, handler); return handler; } public override void HandleMsg(IPacketMsg packetMsg) { } public async Task?> GetOwnedGames(ulong steamID) { if ((steamID == 0) || !new SteamID(steamID).IsIndividualAccount) { throw new ArgumentOutOfRangeException(nameof(steamID)); } if (Client == null) { throw new InvalidOperationException(nameof(Client)); } if (!Client.IsConnected) { return null; } SteamUnifiedMessages steamUnifiedMessages = Client.GetHandler() ?? throw new InvalidOperationException(nameof(SteamUnifiedMessages)); Player unifiedPlayerService = steamUnifiedMessages.CreateService(); CPlayer_GetOwnedGames_Request request = new() { steamid = steamID, include_appinfo = true, include_extended_appinfo = true, include_free_sub = true, include_played_free_games = true, skip_unvetted_apps = false }; SteamUnifiedMessages.ServiceMethodResponse response; try { response = await unifiedPlayerService.GetOwnedGames(request).ToLongRunningTask().ConfigureAwait(false); } catch (Exception e) { ASF.ArchiLogger.LogGenericWarningException(e); return null; } return response.Result == EResult.OK ? response.Body.games.ToDictionary(static game => (uint)game.appid, static game => game) : null; } } } ================================================ FILE: FreePackages/Helpers/DeterministicHasher.cs ================================================ using System; using System.Collections.Generic; using System.Linq; namespace FreePackages { internal static class DeterministicHasher { private const int FnvOffsetBias = unchecked((int) 2166136261); private const int FnvPrime = 16777619; internal static int Hash(int value) => Hash(FnvOffsetBias, value); internal static int Hash(uint value) => Hash(FnvOffsetBias, value); internal static int Hash(bool value) => Hash(FnvOffsetBias, value); internal static int Hash(string? str) => Hash(FnvOffsetBias, str); internal static int Hash(IEnumerable? collection) => Hash(FnvOffsetBias, collection); internal static int Hash(IEnumerable? collection) => Hash(FnvOffsetBias, collection); internal static int Hash(IEnumerable? collection) => Hash(FnvOffsetBias, collection); internal static int Hash(int hash, int value) => unchecked((hash ^ value) * FnvPrime); internal static int Hash(int hash, uint value) => Hash(hash, (int) value); internal static int Hash(int hash, bool value) => Hash(hash, value ? 1 : 0); internal static int Hash(int hash, string? str) { if (str == null) { return hash; } foreach (char c in str) { hash = Hash(hash, c); } return hash; } internal static int Hash(int hash, IEnumerable? collection) { if (collection == null) { return hash; } foreach (string item in collection.OrderBy(static x => x, StringComparer.Ordinal)) { hash = Hash(hash, item); } return hash; } internal static int Hash(int hash, IEnumerable? collection) { if (collection == null) { return hash; } foreach (uint item in collection.OrderBy(static x => x)) { hash = Hash(hash, item); } return hash; } internal static int Hash(int hash, IEnumerable? collection) { if (collection == null) { return hash; } foreach (FilterConfig item in collection.OrderBy(static x => x.GetHashCode())) { hash = Hash(hash, item.GetHashCode()); } return hash; } } } ================================================ FILE: FreePackages/Helpers/StatusReporter.cs ================================================ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text.Json.Serialization; using System.Threading; using System.Threading.Tasks; using ArchiSteamFarm.Core; using ArchiSteamFarm.Steam; using SteamKit2; // For when long-running commands are issued through Steam chat, this is used to send status reports from the bot the command was sent to, to the user who issued the command // If the commands weren't issued through Steam chat, this just logs the status reports namespace FreePackages { internal sealed class StatusReporter { [JsonInclude] [JsonRequired] private ulong SenderSteamID; // When we send status reports, they'll come from this SteamID [JsonInclude] [JsonRequired] private ulong RecipientSteamID; // When we send status reports, they'll go to this SteamID private ConcurrentDictionary> Reports = new(); private ConcurrentDictionary> PreviousReports = new(); private uint ReportDelaySeconds; private uint ReportMaxDelaySeconds; private const uint DefaultReportDelaySeconds = 5; private Timer? ReportTimer; private DateTime? ReportMaxDelayTime = null; private SemaphoreSlim ReportSemaphore = new SemaphoreSlim(1, 1); internal StatusReporter(Bot? sender = null, ulong recipientSteamID = 0, uint reportDelaySeconds = DefaultReportDelaySeconds, uint? reportMaxDelaySeconds = null) { SenderSteamID = sender?.SteamID ?? 0; RecipientSteamID = recipientSteamID; ReportDelaySeconds = reportDelaySeconds; ReportMaxDelaySeconds = reportMaxDelaySeconds ?? reportDelaySeconds * 5; } [JsonConstructor] internal StatusReporter(ulong senderSteamID = 0, ulong recipientSteamID = 0) { SenderSteamID = senderSteamID; RecipientSteamID = recipientSteamID; } internal static StatusReporter StatusLogger() { // Create a status reporter that doesn't send messages through chat, it just logs everything return new StatusReporter(0, 0); } internal void Report(Bot reportingBot, string report, bool suppressDuplicateMessages = false, bool log = false) { if (log || SenderSteamID == 0 || RecipientSteamID == 0) { reportingBot.ArchiLogger.LogGenericInfo(report); return; } ReportSemaphore.Wait(); try { if (suppressDuplicateMessages) { bool existsInReports = Reports.TryGetValue(reportingBot, out var reports) && reports.Contains(report); bool existsInPreviousReports = PreviousReports.TryGetValue(reportingBot, out var previousReports) && previousReports.Contains(report); if (existsInReports || existsInPreviousReports) { return; } } Reports.TryAdd(reportingBot, new List()); Reports[reportingBot].Add(report); // I prefer to send all reports in as few messages as possible // As long as reports continue to come in, we wait (until some limit, to avoid possibly waiting forever) double delayCorrectionSeconds = 0; if (ReportMaxDelayTime != null) { if (ReportMaxDelayTime <= DateTime.Now) { return; } delayCorrectionSeconds = Math.Max(0, (DateTime.Now.AddSeconds(ReportDelaySeconds) - ReportMaxDelayTime.Value).TotalSeconds); } if (ReportTimer != null) { ReportTimer.Change(Timeout.Infinite, Timeout.Infinite); ReportTimer.Dispose(); } ReportTimer = new Timer(async _ => await Send().ConfigureAwait(false), null, TimeSpan.FromSeconds(ReportDelaySeconds - delayCorrectionSeconds), Timeout.InfiniteTimeSpan); if (ReportMaxDelayTime == null) { ReportMaxDelayTime = DateTime.Now.AddSeconds(ReportMaxDelaySeconds); } } finally { ReportSemaphore.Release(); } } internal void ForceSend() { Utilities.InBackground(async() => await Send().ConfigureAwait(false)); } private async Task Send() { await ReportSemaphore.WaitAsync().ConfigureAwait(false); try { ReportTimer?.Dispose(); ReportMaxDelayTime = null; List messages = new List(); List bots = Reports.Keys.OrderBy(bot => bot.BotName).ToList(); foreach (Bot bot in bots) { messages.Add(Commands.FormatBotResponse(bot, String.Join(Environment.NewLine, Reports[bot]))); if (Reports[bot].Count > 1) { // Add an extra line if there's more than 1 message from a bot messages.Add(""); } if (Reports.TryRemove(bot, out List? previousReports)) { if (previousReports != null) { PreviousReports[bot] = previousReports; } } } if (messages.Count == 0) { return; } Bot? sender = SenderSteamID == 0 ? null : Bot.BotsReadOnly?.Values.FirstOrDefault(bot => bot.SteamID == SenderSteamID); if (sender == null || RecipientSteamID == 0 || !new SteamID(RecipientSteamID).IsIndividualAccount || sender.SteamFriends.GetFriendRelationship(RecipientSteamID) != EFriendRelationship.Friend ) { // Can't send a chat message through Steam, just log the report ASF.ArchiLogger.LogGenericInfo(String.Join(Environment.NewLine, messages)); return; } try { if (!await sender.SendMessage(RecipientSteamID, String.Join(Environment.NewLine, messages)).ConfigureAwait(false)) { ASF.ArchiLogger.LogGenericInfo(String.Join(Environment.NewLine, messages)); } } catch (Exception) { ASF.ArchiLogger.LogGenericInfo(String.Join(Environment.NewLine, messages)); } } finally { ReportSemaphore.Release(); } } } } ================================================ FILE: FreePackages/IPC/Api/FreePackagesController.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Threading.Tasks; using ArchiSteamFarm.Core; using ArchiSteamFarm.IPC.Controllers.Api; using ArchiSteamFarm.IPC.Responses; using ArchiSteamFarm.Steam; using FreePackages.Localization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SteamKit2; using SteamKit2.Internal; namespace FreePackages.IPC { [Route("Api/FreePackages")] public sealed class FreePackagesController : ArchiController { [HttpGet("{botNames:required}/GetChangesSince/{changeNumber:required}")] [EndpointSummary("Request changes for apps and packages since a given change number")] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.OK)] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.BadRequest)] public async Task> GetChangesSince(string botNames, uint changeNumber, bool showAppChanges = true, bool showPackageChanges = true) { if (string.IsNullOrEmpty(botNames)) { throw new ArgumentNullException(nameof(botNames)); } HashSet? bots = Bot.GetBots(botNames); if ((bots == null) || (bots.Count == 0)) { return BadRequest(new GenericResponse(false, string.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botNames))); } Bot? bot = bots.FirstOrDefault(static bot => bot.IsConnectedAndLoggedOn); if (bot == null) { return BadRequest(new GenericResponse(false, ArchiSteamFarm.Localization.Strings.BotNotConnected)); } SteamApps.PICSChangesCallback picsChanges; try { picsChanges = await bot.SteamApps.PICSGetChangesSince(changeNumber, showAppChanges, showPackageChanges).ToLongRunningTask().ConfigureAwait(false); } catch (Exception e) { bot.ArchiLogger.LogGenericWarningException(e); return BadRequest(new GenericResponse(false, e.Message)); } return Ok(new GenericResponse(true, picsChanges)); } [HttpGet("{botNames:required}/GetProductInfo")] [EndpointSummary("Request product information for a list of apps or packages")] [ProducesResponseType(typeof(GenericResponse>), (int) HttpStatusCode.OK)] [ProducesResponseType(typeof(byte[]), (int) HttpStatusCode.OK)] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.BadRequest)] public async Task> GetProductInfo(string botNames, string? appIDs, string? packageIDs, bool returnFirstRaw = false) { if (string.IsNullOrEmpty(botNames)) { throw new ArgumentNullException(nameof(botNames)); } HashSet? bots = Bot.GetBots(botNames); if ((bots == null) || (bots.Count == 0)) { return BadRequest(new GenericResponse(false, string.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botNames))); } Bot? bot = bots.FirstOrDefault(static bot => bot.IsConnectedAndLoggedOn); if (bot == null) { return BadRequest(new GenericResponse(false, ArchiSteamFarm.Localization.Strings.BotNotConnected)); } IEnumerable productInfos; try { List apps = appIDs == null ? new() : appIDs.Split(",").Select(x => new SteamApps.PICSRequest(uint.Parse(x))).ToList(); List packages = packageIDs == null ? new() : packageIDs.Split(",").Select(x => new SteamApps.PICSRequest(uint.Parse(x), ASF.GlobalDatabase?.PackageAccessTokensReadOnly.GetValueOrDefault(uint.Parse(x), (ulong) 0) ?? 0)).ToList(); var response = await bot.SteamApps.PICSGetProductInfo(apps, packages).ToLongRunningTask().ConfigureAwait(false); if (response.Results == null) { return BadRequest(new GenericResponse(false)); } productInfos = response.Results; } catch (Exception e) { bot.ArchiLogger.LogGenericWarningException(e); return BadRequest(new GenericResponse(false, e.Message)); } if (returnFirstRaw) { var results = productInfos.SelectMany(static result => result.Apps.Values).Concat(productInfos.SelectMany(static result => result.Packages.Values)); if (results.Count() == 0) { return File(Array.Empty(), "text/plain; charset=utf-8"); } try { await using var kvMemory = new MemoryStream(); results.First().KeyValues.SaveToStream(kvMemory, false); return File(kvMemory.ToArray(), "text/plain; charset=utf-8"); } catch (Exception e) { bot.ArchiLogger.LogGenericWarningException(e); return BadRequest(new GenericResponse(false, e.Message)); } } return Ok(new GenericResponse>(true, productInfos)); } [HttpGet("{botName:required}/RequestFreeAppLicense")] [HttpPost("{botName:required}/RequestFreeAppLicense")] [EndpointSummary("Request a free license for given appids")] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.OK)] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.BadRequest)] public async Task> RequestFreeAppLicense(string botName, [FromQuery] string appIDs) { if (string.IsNullOrEmpty(botName)) { throw new ArgumentNullException(nameof(botName)); } Bot? bot = Bot.GetBot(botName); if (bot == null) { return BadRequest(new GenericResponse(false, string.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botName))); } if (!bot.IsConnectedAndLoggedOn) { return BadRequest(new GenericResponse(false, ArchiSteamFarm.Localization.Strings.BotNotConnected)); } HashSet apps = new(); foreach (string appIDString in appIDs.Split(",", StringSplitOptions.RemoveEmptyEntries)) { if (!uint.TryParse(appIDString, out uint appID)) { return BadRequest(new GenericResponse(false, String.Format(ArchiSteamFarm.Localization.Strings.ErrorParsingObject, nameof(appIDString)))); } apps.Add(appID); } if (apps.Count == 0) { return BadRequest(new GenericResponse(false, String.Format(ArchiSteamFarm.Localization.Strings.ErrorIsEmpty, nameof(appIDs)))); } SteamApps.FreeLicenseCallback response; try { response = await bot.SteamApps.RequestFreeLicense(apps).ToLongRunningTask().ConfigureAwait(false); } catch (Exception e) { bot.ArchiLogger.LogGenericWarningException(e); return BadRequest(new GenericResponse(false, e.Message)); } return Ok(new GenericResponse(true, response)); } [HttpGet("{botName:required}/RequestFreeSubLicense")] [HttpPost("{botName:required}/RequestFreeSubLicense")] [EndpointSummary("Request a free license for given subid")] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.OK)] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.BadRequest)] public async Task> RequestFreeSubLicense(string botName, [FromQuery] uint subID) { if (string.IsNullOrEmpty(botName)) { throw new ArgumentNullException(nameof(botName)); } Bot? bot = Bot.GetBot(botName); if (bot == null) { return BadRequest(new GenericResponse(false, string.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botName))); } if (!bot.IsConnectedAndLoggedOn) { return BadRequest(new GenericResponse(false, ArchiSteamFarm.Localization.Strings.BotNotConnected)); } EResult result; EPurchaseResultDetail purchaseResult; try { (result, purchaseResult) = await bot.Actions.AddFreeLicensePackage(subID).ConfigureAwait(false); } catch (Exception e) { bot.ArchiLogger.LogGenericWarningException(e); return BadRequest(new GenericResponse(false, e.Message)); } return Ok(new GenericResponse(true, new FreeSubResponse(result, purchaseResult))); } [HttpGet("{botName:required}/GetOwnedPackages")] [EndpointSummary("Retrieves all packages owned by the given bot")] [ProducesResponseType(typeof(GenericResponse>), (int) HttpStatusCode.OK)] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.BadRequest)] public ActionResult GetOwnedPackages(string botName) { if (string.IsNullOrEmpty(botName)) { throw new ArgumentNullException(nameof(botName)); } Bot? bot = Bot.GetBot(botName); if (bot == null) { return BadRequest(new GenericResponse(false, string.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botName))); } if (bot.OwnedPackages.Count == 0) { return BadRequest(new GenericResponse(false, Strings.NoPackagesFound)); } return Ok(new GenericResponse>(true, bot.OwnedPackages.Keys)); } [HttpGet("{botName:required}/GetOwnedApps")] [EndpointSummary("Retrieves all apps owned by the given bot")] [ProducesResponseType(typeof(GenericResponse>), (int) HttpStatusCode.OK)] [ProducesResponseType(typeof(GenericResponse>), (int) HttpStatusCode.OK)] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.BadRequest)] public async Task> GetOwnedApps(string botName, bool showDetails = false) { if (string.IsNullOrEmpty(botName)) { throw new ArgumentNullException(nameof(botName)); } Bot? bot = Bot.GetBot(botName); if (bot == null) { return BadRequest(new GenericResponse(false, String.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botName))); } if (bot.OwnedPackages.Count == 0) { return BadRequest(new GenericResponse(false, Strings.NoAppsFound)); } if (ASF.GlobalDatabase == null) { return BadRequest(new GenericResponse(false, String.Format(ArchiSteamFarm.Localization.Strings.ErrorObjectIsNull, nameof(ASF.GlobalDatabase)))); } var ownedPackageIDs = bot.OwnedPackages.Keys.ToHashSet(); var ownedAppIDs = ASF.GlobalDatabase!.PackagesDataReadOnly.Where(x => ownedPackageIDs.Contains(x.Key) && x.Value.AppIDs != null).SelectMany(x => x.Value.AppIDs!).ToHashSet().ToList(); ownedAppIDs.Sort(); if (showDetails) { Dictionary? detailsList; try { detailsList = await SteamHandler.Handlers[bot.BotName].GetOwnedGames(bot.SteamID).ConfigureAwait(false); if (detailsList == null) { return BadRequest(new GenericResponse(false, Strings.AppListFetchFailed)); } } catch (Exception e) { return BadRequest(new GenericResponse(false, e.Message)); } return Ok(new GenericResponse>(true, ownedAppIDs.ToDictionary(appID => appID, appID => { if (detailsList.TryGetValue(appID, out CPlayer_GetOwnedGames_Response.Game? game)) { return game; } return null; }))); } return Ok(new GenericResponse>(true, ownedAppIDs)); } [Consumes("application/json")] [HttpPost("{botNames:required}/QueueLicenses")] [EndpointSummary("Adds the provided appids and subids to the given bot's package queue")] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.OK)] [ProducesResponseType(typeof(GenericResponse), (int) HttpStatusCode.BadRequest)] public ActionResult QueueLicenses(string botNames, [FromBody] QueueLicensesRequest request) { if (string.IsNullOrEmpty(botNames)) { throw new ArgumentNullException(nameof(botNames)); } HashSet? bots = Bot.GetBots(botNames); if (bots == null || bots.Count == 0) { return BadRequest(new GenericResponse(false, String.Format(ArchiSteamFarm.Localization.Strings.BotNotFound, botNames))); } if (PackageHandler.Handlers.Keys.Union(bots.Select(x => x.BotName)).Count() == 0) { return BadRequest(new GenericResponse(false, Strings.PluginNotEnabled)); } foreach (Bot bot in bots) { if (!PackageHandler.Handlers.Keys.Contains(bot.BotName)) { continue; } PackageHandler.Handlers[bot.BotName].AddPackages(request.AppIDs, request.PackageIDs, request.UseFilter); } Utilities.InBackground(async() => await PackageHandler.HandleChanges().ConfigureAwait(false)); return Ok(new GenericResponse(true)); } } } ================================================ FILE: FreePackages/IPC/Requests/QueueLicensesRequest.cs ================================================ using System.Collections.Generic; using System.Text.Json.Serialization; namespace FreePackages.IPC { public sealed class QueueLicensesRequest { [JsonInclude] public HashSet? AppIDs { get; private init; } = null; [JsonInclude] public HashSet? PackageIDs { get; private init; } = null; [JsonInclude] public bool UseFilter { get; private init; } = true; [JsonConstructor] private QueueLicensesRequest() { } } } ================================================ FILE: FreePackages/IPC/Responses/FreeSubResponse.cs ================================================ using System.Text.Json.Serialization; using SteamKit2; namespace FreePackages.IPC { public sealed class FreeSubResponse { [JsonInclude] [JsonPropertyName("Result")] public EResult Result { get; private init; } [JsonInclude] [JsonPropertyName("PurchaseResultDetail")] public EPurchaseResultDetail PurchaseResultDetail { get; private init; } public FreeSubResponse(EResult result, EPurchaseResultDetail purchaseResultDetail) { Result = result; PurchaseResultDetail = purchaseResultDetail; } } } ================================================ FILE: FreePackages/Json.cs ================================================ using System; using System.Collections.Generic; using System.Text.Json; using System.Text.Json.Serialization; namespace FreePackages { internal static class Steam { internal sealed class PlaytestAccessResponse { [JsonInclude] [JsonPropertyName("granted")] [JsonRequired] internal int? Granted { get; private init; } = null; [JsonInclude] [JsonPropertyName("success")] [JsonRequired] internal int Success { get; private init; } = 0; [JsonConstructor] internal PlaytestAccessResponse() {} } internal sealed class UserData { [JsonInclude] [JsonPropertyName("rgOwnedPackages")] [JsonRequired] internal HashSet OwnedPackages { get; private init; } = new(); [JsonInclude] [JsonPropertyName("rgOwnedApps")] [JsonRequired] internal HashSet OwnedApps { get; private init; } = new(); [JsonInclude] [JsonPropertyName("rgIgnoredApps")] [JsonRequired] [JsonConverter(typeof(EmptyArrayOrDictionaryConverter))] internal Dictionary IgnoredApps { get; private init; } = new(); [JsonInclude] [JsonPropertyName("rgExcludedTags")] [JsonRequired] internal List ExcludedTags { get; private init; } = new(); [JsonInclude] [JsonPropertyName("rgExcludedContentDescriptorIDs")] [JsonRequired] internal HashSet ExcludedContentDescriptorIDs { get; private init; } = new(); [JsonInclude] [JsonPropertyName("rgWishlist")] [JsonRequired] internal HashSet WishlistedApps { get; private init; } = new(); [JsonInclude] [JsonPropertyName("rgFollowedApps")] [JsonRequired] internal HashSet FollowedApps { get; private init; } = new(); [JsonExtensionData] [JsonInclude] internal Dictionary AdditionalData { get; private init; } = new(); [JsonConstructor] internal UserData() {} } internal sealed class Tag { [JsonInclude] [JsonPropertyName("tagid")] [JsonRequired] internal uint TagID = 0; [JsonInclude] [JsonPropertyName("name")] [JsonRequired] internal string Name = ""; [JsonInclude] [JsonPropertyName("timestamp_added")] [JsonRequired] internal uint TimestampAdded = 0; [JsonConstructor] internal Tag() {} } internal sealed class UserInfo { [JsonInclude] [JsonPropertyName("logged_in")] public bool LoggedIn; [JsonInclude] [JsonPropertyName("steamid")] public string SteamID = ""; [JsonInclude] [JsonPropertyName("accountid")] public int AccountID; [JsonInclude] [JsonPropertyName("account_name")] public string AccountName = ""; [JsonInclude] [JsonPropertyName("is_support")] public bool IsSupport; [JsonInclude] [JsonPropertyName("is_limited")] public bool IsLimited; [JsonInclude] [JsonPropertyName("is_partner_member")] public bool IsPartnerMember; [JsonInclude] [JsonPropertyName("is_valve_email")] public bool IsValveEmail; [JsonInclude] [JsonPropertyName("country_code")] [JsonRequired] public string CountryCode = ""; [JsonInclude] [JsonPropertyName("excluded_content_descriptors")] public HashSet ExcludedContentDescriptors = new(); [JsonConstructor] internal UserInfo() {} } // https://stackoverflow.com/questions/12221950/how-to-deserialize-object-that-can-be-an-array-or-a-dictionary-with-newtonsoft public class EmptyArrayOrDictionaryConverter : JsonConverter> { public override Dictionary Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { if (reader.TokenType == JsonTokenType.StartObject) { var dictionary = JsonSerializer.Deserialize>(ref reader, options); if (dictionary == null) { throw new JsonException(); } return dictionary; } else if (reader.TokenType == JsonTokenType.StartArray) { reader.Read(); if (reader.TokenType == JsonTokenType.EndArray) { return new Dictionary(); } } throw new JsonException(); } public override void Write(Utf8JsonWriter writer, Dictionary value, JsonSerializerOptions options) { throw new NotImplementedException(); } } } } ================================================ FILE: FreePackages/Localization/README.md ================================================ If you'd like to help translate this plugin you can do so here: https://crowdin.com/project/freepackages Contact me on Crowdin if your language isn't currently listed ================================================ FILE: FreePackages/Localization/Strings.de-DE.resx ================================================ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Abruf der Abzeichendaten für kostenlose Pakete fehlgeschlagen Parsen der Abzeichendaten für kostenlose Pakete fehlgeschlagen PlaytestMode auf 0 (keiner) geändert, nur 1 Bot darf diesen Filter verwenden Warteschlange ist leer {0} kostenlose Pakete entfernt. {0} will be replaced by a number {0} entdeckte Apps entfernt. {0} will be replaced by a number {0} entdeckte Pakete entfernt. {0} will be replaced by a number {0} zur Warteschlange für entdeckte Apps hinzugefügt {0} will be replaced by an appID {0} zur Warteschlange für entdeckte Pakete hinzugefügt {0} will be replaced by a subID {0} zur Warteschlange für kostenlose Pakete hinzugefügt {0} will be replaced by an appID {0} zur Warteschlange für kostenlose Pakete hinzugefügt {0} will be replaced by a subID Aktivierung kostenloser Pakete pausiert bis {0} {0} will be replaced by a time Aktivierungslimit überschritten Ersetzt durch {0} {0} will be replaced by a number Unbekannt Ungültig Fehlgeschlagen Auf der Warteliste {0} kostenlose Pakete in der Warteschlange. {1}/{2} Aktivierungen verwendet. {0} will be replaced by a number, {1} will be replaced by a number, {2} will be replaced by a number Die Aktivierung wurde pausiert, da das Konto zum Spielen eines Spiels verwendet wird. Die Aktivierung wird um {0} fortgesetzt. {0} will be replaced by a time {0} Apps und {1} Pakete entdeckt, aber noch nicht bearbeitet. {0} will be replaced by a number, {1} will be replaced by a number PICS neu gestartet, überspringe von der Nummer {0} bis {1} {0} will be replaced by a number, {1} will be replaced by a number Möglicherweise wurden einige kostenlose Apps aufgrund eines PICS-Neustarts verpasst {0} Appänderungen bei Änderungsnummer {1} wiederhergestellt {0} will be replaced by a number, {1} will be replaced by a number Möglicherweise wurden einige kostenlose Pakete aufgrund eines PICS-Neustarts verpasst {0} Paketänderungen bei Änderungsnummer {1} wiederhergestellt {0} will be replaced by a number, {1} will be replaced by a number Keine Pakete gefunden Keine Apps gefunden App-Liste konnte nicht abgerufen werden Plugin Free Packages nicht aktiviert Fehler beim Parsen der Daten von ASFInfo ================================================ FILE: FreePackages/Localization/Strings.resx ================================================ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Failed to fetch badge data for free packages Failed to parse badge data for free packages Changed PlaytestMode to 0 (None), only 1 bot is allowed to use this filter Queue is empty {0} free packages removed. {0} will be replaced by a number {0} discovered apps removed. {0} will be replaced by a number {0} discovered packages removed. {0} will be replaced by a number Added {0} to discovered apps queue {0} will be replaced by an appID Added {0} to discovered packages queue {0} will be replaced by a subID Added {0} to free packages queue {0} will be replaced by an appID Added {0} to free packages queue {0} will be replaced by a subID Pausing free package activations until {0} {0} will be replaced by a time Free Package rate limit exceeded Replaced with {0} {0} will be replaced by a number Unknown Invalid Failed Waitlisted {0} free packages queued. {1}/{2} activations used. {0} will be replaced by a number, {1} will be replaced by a number, {2} will be replaced by a number Activations are now paused as the account is being used to play a game. Activations will resume at {0}. {0} will be replaced by a time {0} apps and {1} packages discovered but not processed yet. {0} will be replaced by a number, {1} will be replaced by a number PICS restarted, skipping from change number {0} to {1} {0} will be replaced by a number, {1} will be replaced by a number Possibly missed some free apps due to PICS restart Recovered {0} app changes at change number {1} {0} will be replaced by a number, {1} will be replaced by a number Possibly missed some free packages due to PICS restart Recovered {0} package changes at change number {1} {0} will be replaced by a number, {1} will be replaced by a number No packages found No apps found Failed to get app list Free Packages plugin not enabled Failed to parse data from ASFInfo Removing {0} packages. {0} will be replaced by a number Failed to fetch licenses page Failed to find any removable packages Didn't find any free packages to remove Failed to fetch product info No packages are being removed Cancelled {0} removals. {0} will be replaced by a number Looking for free packages to remove, this scan will take ~{0} minutes. Cancel at any time using: {1} {0} will be replaced by a number, {1} will be replaced with a command Found {0} packages to remove:  {1}  To cancel, use: {2} To continue with removal, use: {3} To remove items from the list above before continuing, use: {4} {0} will be replaced by a number, {1} will be replaced by a list, {2} will be replaced with a command, {3} will be replaced with a command, {4} will be replaced with a command Didn't find any unwanted free packages to remove Scan for unwanted free packages cancelled. Already scanning for unwanted free packages {0} was not in the list of scanned packages {0} will be replaced by a packageID {0} removed {0} will be replaced by a packageID Cancelling scan for unwanted free packages... You must first scan for unwanted free packages using the command: {0} {0} will be replaced by a command Pausing package removals until {0} {0} will be replaced by a time Failed to get playtime information Unwanted ================================================ FILE: FreePackages/Localization/Strings.ru-RU.resx ================================================ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Не удалось получить данные о значках для бесплатных пакетов Не удалось собрать данные о значках для бесплатных пакетов Значение фильтра PlaytestMode было автоматически заменено на "0" (игнорировать всё), так как его может использовать только один бот Очередь пуста Бесплатных пакетов удалено: {0}. {0} will be replaced by a number Обнаруженных приложений удалено: {0}. {0} will be replaced by a number Обнаруженных пакетов удалено: {0}. {0} will be replaced by a number Добавлено в очередь обнаруженных приложений: {0} {0} will be replaced by an appID Добавлено в очередь обнаруженных пакетов: {0} {0} will be replaced by a subID Добавлено в очередь бесплатных пакетов: {0} {0} will be replaced by an appID Добавлено в очередь бесплатных пакетов: {0} {0} will be replaced by a subID Активация бесплатных пакетов приостановлена до {0} {0} will be replaced by a time Плагин "Free Package" превысил лимит активаций Заменено на {0} {0} will be replaced by a number Неизвестно Некорректно Неудачно Ожидание Бесплатных пакетов в очереди: {0}. Активаций использовано: {1}/{2}. {0} will be replaced by a number, {1} will be replaced by a number, {2} will be replaced by a number Активации приостановлены, поскольку аккаунт используется для игры. Активации продолжатся в {0}. {0} will be replaced by a time Обнаружены, но ещё не обработаны приложения в количестве "{0}" и пакеты в количестве "{1}". {0} will be replaced by a number, {1} will be replaced by a number PICS перезапущен. Переход с номера изменения {0} на {1} {0} will be replaced by a number, {1} will be replaced by a number Возможно, пропущены некоторые бесплатные приложения из-за перезагрузки PICS Восстановлены изменения приложений в количестве: "{0}" под изменённым номером {1} {0} will be replaced by a number, {1} will be replaced by a number Возможно, пропущены некоторые бесплатные пакеты из-за перезагрузки PICS Восстановлены изменения пакетов в количестве: "{0}" под изменённым номером {1} {0} will be replaced by a number, {1} will be replaced by a number Пакеты не обнаружены Приложения не найдены Не удалось получить список приложений Плагин "Free Packages" не включён Не удалось собрать данные из ASFInfo Удалено пакетов: {0}. {0} will be replaced by a number Не удалось получить страницу лицензий Не удалось найти ни одного удаляемого пакета Не найдены бесплатные пакеты для удаления Не удалось получить информацию о товаре Ни один пакет не был удалён Отменённых удалений: {0}. {0} will be replaced by a number Поиск бесплатных пакетов для удаления, сканирование займёт минут примерно: {0}. Можно отменить в любой момент командой: {1} {0} will be replaced by a number, {1} will be replaced with a command Найдено пакетов для удаления - {0}:  {1}  Для отмены, используйте команду: {2} Для продолжения удаления, используйте: {3} Для удаления элементов из вышестоящего списка, прежде чем продолжить, используйте команду: {4} {0} will be replaced by a number, {1} will be replaced by a list, {2} will be replaced with a command, {3} will be replaced with a command, {4} will be replaced with a command Не найдены нежелательные бесплатные пакеты для удаления Отменено сканирование нежелательных бесплатных пакетов. Уже идёт сканирование нежелательных бесплатных пакетов Отсутствует в списке отсканированных пакетов: {0} {0} will be replaced by a packageID Удалено: {0} {0} will be replaced by a packageID Отмена сканирования нежелательных бесплатных пакетов... Сначала необходимо просканировать нежелательные бесплатные пакеты с помощью команды: {0} {0} will be replaced by a command Удаление пакетов приостановлено до {0} {0} will be replaced by a time Не удалось получить информацию о наигранном времени ================================================ FILE: FreePackages/Localization/Strings.tr-TR.resx ================================================ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Ücretsiz paketlerin rozet verileri alınamadı Ücretsiz paketlerin rozet verileri çözümlenemedi PlaytestMode 0 (Yok) olarak değiştirildi, bu filtreyi yalnızca 1 bot kullanabilir Kuyruk boş {0} ücretsiz paket kaldırıldı. {0} will be replaced by a number {0} keşfedilen uygulama kaldırıldı. {0} will be replaced by a number {0} keşfedilen paket kaldırıldı. {0} will be replaced by a number {0} keşfedilen uygulamalar kuyruğuna eklendi {0} will be replaced by an appID {0} keşfedilen paketler kuyruğuna eklendi {0} will be replaced by a subID {0} ücretsiz paket kuyruğuna eklendi {0} will be replaced by an appID {0} ücretsiz paket kuyruğuna eklendi {0} will be replaced by a subID Ücretsiz paket etkinleştirmeleri {0} tarihine kadar duraklatıldı {0} will be replaced by a time Ücretsiz Paket hız limiti aşıldı {0} ile değiştirildi {0} will be replaced by a number Bilinmiyor Geçersiz Başarısız Beklemeye alındı {0} ücretsiz paket kuyrukta. {1}/{2} etkinleştirme kullanıldı. {0} will be replaced by a number, {1} will be replaced by a number, {2} will be replaced by a number Etkinleştirmeler, hesap oyun oynarken duraklatıldı. Etkinleştirmeler {0} tarihinde yeniden başlayacak. {0} will be replaced by a time {0} uygulama ve {1} paket keşfedildi ancak henüz işlenmedi. {0} will be replaced by a number, {1} will be replaced by a number PICS yeniden başlatıldı, değişiklik numarası {0}'den {1}'e atlanıyor {0} will be replaced by a number, {1} will be replaced by a number PICS yeniden başlatması nedeniyle bazı ücretsiz uygulamalar kaçırılmış olabilir {0} uygulama değişikliği, değişiklik numarası {1}'de kurtarıldı {0} will be replaced by a number, {1} will be replaced by a number PICS yeniden başlatması nedeniyle bazı ücretsiz paketler kaçırılmış olabilir {0} paket değişikliği, değişiklik numarası {1}'de kurtarıldı {0} will be replaced by a number, {1} will be replaced by a number Paket bulunamadı Uygulama bulunamadı Uygulama listesi alınamadı Ücretsiz Paketler eklentisi etkin değil ASFInfo'dan gelen veriler çözümlenemedi {0} paket kaldırılıyor. {0} will be replaced by a number Lisanslar sayfası alınamadı Kaldırılabilir paket bulunamadı Kaldırılacak ücretsiz paket bulunamadı Ürün bilgileri alınamadı Kaldırılan paket yok {0} kaldırma işlemi iptal edildi. {0} will be replaced by a number Kaldırılacak ücretsiz paketler aranıyor, bu tarama ~{0} dakika sürecek. Herhangi bir zamanda şu komutla iptal edin: {1} {0} will be replaced by a number, {1} will be replaced with a command Kaldırılacak {0} paket bulundu: {1} İptal etmek için: {2} Kaldırmaya devam etmek için: {3} Devam etmeden önce listedeki öğeleri kaldırmak için: {4} {0} will be replaced by a number, {1} will be replaced by a list, {2} will be replaced with a command, {3} will be replaced with a command, {4} will be replaced with a command Kaldırılacak istenmeyen ücretsiz paket bulunamadı İstenmeyen ücretsiz paketler için tarama iptal edildi. Zaten istenmeyen ücretsiz paketler taranıyor {0} taranan paketler listesinde yoktu {0} will be replaced by a packageID {0} kaldırıldı {0} will be replaced by a packageID İstenmeyen ücretsiz paketler için tarama iptal ediliyor... Önce şu komutla ücretsiz paketleri taramanız gerekiyor: {0} {0} will be replaced by a command Paket kaldırma işlemleri {0} tarihine kadar duraklatıldı {0} will be replaced by a time Oynama süresi bilgisi alınamadı ================================================ FILE: FreePackages/Localization/Strings.uk-UA.resx ================================================ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Не вдалося отримати дані о значках для безплатних пакетів Не вдалося зібрати дані о значках для безплатних пакетів Значення фільтра PlaytestMode було автоматично замінено на "0" (ігнорувати все), оскільки його може використовувати тільки один бот Черга порожня Безплатних пакетів видалено: {0}. {0} will be replaced by a number Виявлених застосунків видалено: {0}. {0} will be replaced by a number Виявлених пакетів видалено: {0}. {0} will be replaced by a number Додано {0} до черги виявлених застосунків {0} will be replaced by an appID Додано {0} до черги виявлених пакетів {0} will be replaced by a subID Додано {0} до черги безплатних пакетів {0} will be replaced by an appID Додано {0} до черги безплатних пакетів {0} will be replaced by a subID Призупинення активації безплатних пакетів до {0} {0} will be replaced by a time Перевищено ліміт безплатних пакетів Замінено на {0} {0} will be replaced by a number Невідомо Некоректно Невдало У списку очікування Безплатних пакетів у черзі: {0}. Активацій використано: {1}/{2}. {0} will be replaced by a number, {1} will be replaced by a number, {2} will be replaced by a number Активації призупинені, оскільки обліковий запис використовується для гри. Активації поновляться в {0}. {0} will be replaced by a time Виявлено {0} застосунків та {1} пакетів, але ще не оброблено. {0} will be replaced by a number, {1} will be replaced by a number PICS перезапущено, перейшовши від номера зміни {0} до {1} {0} will be replaced by a number, {1} will be replaced by a number Можливо, пропущено деякі безплатні застосунки через перезапуск PICS Відновлено {0} змін застосунку з номером зміни {1} {0} will be replaced by a number, {1} will be replaced by a number Можливо, пропущено деякі безплатні пакети через перезапуск PICS Відновлено {0} змін пакетів з номером зміни {1} {0} will be replaced by a number, {1} will be replaced by a number Пакети не знайдено Застосунки не знайдено Не вдалося отримати список застосунків Плагін Free Packages не ввімкнено Не вдалося обробити дані з ASFInfo ================================================ FILE: FreePackages/Localization/Strings.zh-Hans.resx ================================================ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 获取免费包徽章数据失败 解析免费包徽章数据失败 已将 PlaytestMode 更改为 0 (None),只有一个机器人可使用此过滤器 队列为空 {0} 免费包已移除。 {0} will be replaced by a number {0} 已发现应用已移除。 {0} will be replaced by a number {0} 已发现包已移除。 {0} will be replaced by a number 添加 {0} 至已发现应用队列 {0} will be replaced by an appID 添加 {0} 至已发现包队列 {0} will be replaced by a subID 添加 {0} 至免费包队列 {0} will be replaced by an appID 添加 {0} 至免费包队列 {0} will be replaced by a subID 暂停免费包激活,直到 {0} {0} will be replaced by a time Free Package 达到速率上限 替换为 {0} {0} will be replaced by a number 未知 无效 失败 等待列表 {0} 个免费包已添加至队列,{1}/{2} 已激活。 {0} will be replaced by a number, {1} will be replaced by a number, {2} will be replaced by a number 因为账户被游戏占用,激活任务已暂停。 激活任务将在 {0} 恢复。 {0} will be replaced by a time {0} 应用和 {1} 包已发现但尚未处理。 {0} will be replaced by a number, {1} will be replaced by a number PICS 已重启,跳过更改号 {0} 至 {1} {0} will be replaced by a number, {1} will be replaced by a number 由于PICS重启,可能忽略了一些免费应用 已恢复 {0} 应用更改,更改编号 {1} {0} will be replaced by a number, {1} will be replaced by a number 由于PICS重启,可能忽略了一些免费包 已恢复 {0} 包更改,更改号 {1} {0} will be replaced by a number, {1} will be replaced by a number 未找到包 未找到应用 获取应用列表失败 Free Packages 插件未启用 解析来自 ASFInfo 的数据失败 ================================================ FILE: FreePackages/Localization/Strings.zh-Hant.resx ================================================ text/microsoft-resx 2.0 System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 獲取免費包徽章資料失敗 解析免費包徽章資料失敗 已將遊戲測試模式更改為 0 (無),只有 1 個機器人可使用此過濾器 佇列為空 {0} 免費包已移除。 {0} will be replaced by a number {0} 已發現應用已移除。 {0} will be replaced by a number {0} 已發現包已移除。 {0} will be replaced by a number 新增 {0} 至已發現應用佇列 {0} will be replaced by an appID 新增 {0} 至已發現包佇列 {0} will be replaced by a subID 新增 {0} 至免費包佇列 {0} will be replaced by an appID 新增 {0} 至免費包佇列 {0} will be replaced by a subID 暫停免費包啟用,直到 {0} {0} will be replaced by a time FreePackages 的啟用已達到上限 替換為 {0} {0} will be replaced by a number 未知 無效 失敗 等待清單 {0} 個免費包已新增至佇列,{1}/{2} 已啟用。 {0} will be replaced by a number, {1} will be replaced by a number, {2} will be replaced by a number 因為帳號被遊戲佔用,啟用任務已暫停。 啟用任務將在 {0} 恢復。 {0} will be replaced by a time {0} 應用和 {1} 包已發現但尚未處理。 {0} will be replaced by a number, {1} will be replaced by a number PICS 已重啟,跳過更改編號 {0} 至 {1} {0} will be replaced by a number, {1} will be replaced by a number 由於 PICS 重啟,可能忽略了一些免費應用 已恢復 {0} 應用更改,更改編號 {1} {0} will be replaced by a number, {1} will be replaced by a number 由於 PICS 重啟,可能忽略了一些免費包 已恢復 {0} 包更改,更改編號 {1} {0} will be replaced by a number, {1} will be replaced by a number 未找到包 未找到應用 獲取應用清單失敗 外掛程式 FreePackages 未啟用 解析來自 ASFInfo 的資料失敗 ================================================ FILE: FreePackages/PackageFilter/FilterConfig.cs ================================================ using System; using System.Collections.Generic; using System.Text.Json.Serialization; namespace FreePackages { internal sealed class FilterConfig : IJsonOnDeserialized { [JsonInclude] internal bool ImportStoreFilters { get; set; } = false; [JsonInclude] internal HashSet Types { get; set; } = new(); [JsonInclude] internal HashSet Categories { get; set; } = new(); [JsonInclude] internal HashSet Tags { get; set; } = new(); [JsonInclude] internal HashSet IgnoredTypes { get; set; } = new() {"Demo"}; [JsonInclude] internal HashSet IgnoredTags { get; set; } = new(); [JsonInclude] internal HashSet IgnoredCategories { get; set; } = new(); [JsonInclude] internal HashSet IgnoredContentDescriptors { get; set; } = new(); [JsonInclude] internal HashSet IgnoredAppIDs { get; set; } = new(); [JsonInclude] internal bool IgnoreFreeWeekends { get; set; } = false; [JsonInclude] internal uint MinReviewScore { get; set; } = 0; [JsonInclude] internal HashSet Languages { get; set; } = new(); [JsonInclude] internal EPlaytestMode PlaytestMode { get; set; } = EPlaytestMode.None; [JsonInclude] internal bool RequireAllTags { get; set; } = false; [JsonInclude] internal bool RequireAllCategories { get; set; } = false; [JsonInclude] internal bool NoCostOnly { get; set; } = false; [JsonInclude] internal HashSet Systems { get; set; } = new(); [JsonInclude] internal bool WishlistOnly { get; set; } = false; [JsonInclude] internal uint MinDaysOld { get; set; } = 0; // Not used, only exists as a typo of MaxDaysOld, and is only here to support old configs [JsonInclude] internal uint MaxDaysOld { get; set; } = 0; [JsonConstructor] internal FilterConfig() { } public void OnDeserialized() { // Handles filter config changes made in V1.5.4.10 if (Types.Contains("Demo") && IgnoredTypes.Contains("Demo")) { IgnoredTypes.Remove("Demo"); } // Handles filter config changes made in V1.5.5.0 if (MaxDaysOld == 0 && MinDaysOld > 0) { MaxDaysOld = MinDaysOld; } } public override int GetHashCode() { int hash = DeterministicHasher.Hash(ImportStoreFilters); hash = DeterministicHasher.Hash(hash, Types); hash = DeterministicHasher.Hash(hash, Categories); hash = DeterministicHasher.Hash(hash, Tags); hash = DeterministicHasher.Hash(hash, IgnoredTypes); hash = DeterministicHasher.Hash(hash, IgnoredTags); hash = DeterministicHasher.Hash(hash, IgnoredCategories); hash = DeterministicHasher.Hash(hash, IgnoredContentDescriptors); hash = DeterministicHasher.Hash(hash, IgnoredAppIDs); hash = DeterministicHasher.Hash(hash, IgnoreFreeWeekends); hash = DeterministicHasher.Hash(hash, MinReviewScore); hash = DeterministicHasher.Hash(hash, Languages); hash = DeterministicHasher.Hash(hash, (int) PlaytestMode); hash = DeterministicHasher.Hash(hash, RequireAllTags); hash = DeterministicHasher.Hash(hash, RequireAllCategories); hash = DeterministicHasher.Hash(hash, NoCostOnly); hash = DeterministicHasher.Hash(hash, Systems); hash = DeterministicHasher.Hash(hash, WishlistOnly); hash = DeterministicHasher.Hash(hash, MaxDaysOld); return hash; } } [Flags] internal enum EPlaytestMode : byte { None = 0, Unlimited = 1, Limited = 2, All = Unlimited | Limited } } ================================================ FILE: FreePackages/PackageFilter/Filterables/FilterableApp.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using ArchiSteamFarm.Core; using SteamKit2; namespace FreePackages { internal sealed class FilterableApp { internal FilterableApp? Parent = null; internal uint? ParentID = null; internal bool ParentInfoRequired = false; // Whether or not the product info of the parent is needed to apply filters internal uint ID; internal EAppType Type; internal bool IsFreeApp; internal string? ReleaseState; internal string? State; internal uint MustOwnAppToPurchase; internal List? RestrictedCountries; internal List? PurchaseRestrictedCountries; internal bool AllowPurchaseFromRestrictedCountries; internal List AppTags; internal List Category; internal List ContentDescriptors; internal List SupportedLanguages; internal uint ReviewScore; internal string? ListOfDLC; internal uint PlayTestType; internal List? OSList; internal uint DeckCompatibility; internal DateTime SteamReleaseDate; internal bool Hidden; internal FilterableApp(SteamApps.PICSProductInfoCallback.PICSProductInfo productInfo) : this(productInfo.ID, productInfo.KeyValues) {} internal FilterableApp(KeyValue kv) : this(kv["appid"].AsUnsignedInteger(), kv) {} internal FilterableApp(uint id, KeyValue kv) { ID = id; try { Type = Enum.Parse(kv["common"]["type"].AsString() ?? EAppType.Invalid.ToString(), true); } catch { Type = EAppType.Invalid; } IsFreeApp = kv["extended"]["isfreeapp"].AsBoolean(); ReleaseState = kv["common"]["releasestate"].AsString(); State = kv["extended"]["state"].AsString(); MustOwnAppToPurchase = kv["extended"]["mustownapptopurchase"].AsUnsignedInteger(); RestrictedCountries = kv["common"]["restricted_countries"].AsString()?.ToUpper().Split(",").ToList(); PurchaseRestrictedCountries = kv["extended"]["purchaserestrictedcountries"].AsString()?.ToUpper().Split(" ").ToList(); AllowPurchaseFromRestrictedCountries = kv["extended"]["allowpurchasefromrestrictedcountries"].AsBoolean(); AppTags = kv["common"]["store_tags"].Children.Select(tag => tag.AsUnsignedInteger()).ToList(); Category = kv["common"]["category"].Children.Select(category => UInt32.Parse(category.Name!.Substring(9))).ToList(); // category numbers are stored in the name as "category_##" ContentDescriptors = kv["common"]["content_descriptors"].Children.Select(content_descriptor => content_descriptor.AsUnsignedInteger()).ToList(); SupportedLanguages = kv["common"]["supported_languages"].Children.Select(supported_language => supported_language.Name!).ToList(); ReviewScore = kv["common"]["review_score"].AsUnsignedInteger(); ListOfDLC = kv["extended"]["listofdlc"].AsString(); PlayTestType = kv["extended"]["playtest_type"].AsUnsignedInteger(); OSList = kv["common"]["oslist"].AsString()?.ToUpper().Split(",").ToList(); DeckCompatibility = kv["common"]["steam_deck_compatibility"]["category"].AsUnsignedInteger(); SteamReleaseDate = DateTimeOffset.FromUnixTimeSeconds(kv["common"]["steam_release_date"].AsUnsignedInteger()).UtcDateTime; Hidden = kv["common"] == KeyValue.Invalid; // Fix the category for games which do have trading cards, but which don't have the trading card category, Ex: https://steamdb.info/app/316260/ if (CardApps.AppIDs.Contains(ID) && !Category.Contains(29)) { Category.Add(29); } { uint parentID = 0; if (Type == EAppType.Beta) { // This is generally less reliable than ["common"]["parent"] (Ex: https://steamdb.info/app/2420490/ on Oct 17 2023 has "parent" and is redeemable, but doesn't have "betaforappid") parentID = kv["extended"]["betaforappid"].AsUnsignedInteger(); } if (parentID == 0) { parentID = kv["common"]["parent"].AsUnsignedInteger(); } if (parentID > 0) { ParentID = parentID; } // I only want product info for parents of playtests and demos (because they share a store page with their parents and so should inherit some of their parents properties) if (Type == EAppType.Beta || Type == EAppType.Demo) { ParentInfoRequired = true; } } } internal static async Task?> GetFilterables(List productInfos, Func? onNonFreeApp = null) { var appProductInfos = productInfos.SelectMany(static result => result.Apps.Values); if (appProductInfos.Count() == 0) { return []; } List apps = appProductInfos.Select(x => new FilterableApp(x)).ToList(); // Filter out non-free apps apps.RemoveAll(app => { if (!app.IsFree() || !app.IsAvailable()) { if (onNonFreeApp?.Invoke(app) == false) { return false; } return true; } return false; }); // Get the parents of the free apps HashSet parentIDs = apps.Where(app => app.ParentInfoRequired && app.ParentID != null).Select(app => app.ParentID!.Value).ToHashSet(); var parentProductInfos = (await ProductInfo.GetProductInfo(appIDs: parentIDs).ConfigureAwait(false))?.SelectMany(static result => result.Apps.Values); if (parentProductInfos == null) { ASF.ArchiLogger.LogNullError(parentProductInfos); return null; } if (parentProductInfos.Count() > 0) { apps.ForEach(app => { if (app.ParentInfoRequired && app.ParentID != null) { app.AddParent(parentProductInfos.FirstOrDefault(parent => parent.ID == app.ParentID)); } }); } return apps; } internal void AddParent(SteamApps.PICSProductInfoCallback.PICSProductInfo? productInfo) => AddParent(productInfo?.ID, productInfo?.KeyValues); internal void AddParent(KeyValue? kv) => AddParent(kv?["appid"].AsUnsignedInteger(), kv); internal void AddParent(uint? id, KeyValue? kv) { if (!ParentInfoRequired || id == null || kv == null) { return; } Parent = new FilterableApp(id.Value, kv); } internal bool IsFree() { if (IsFreeApp) { return true; } if (Type == EAppType.Demo) { return true; } // Playtest if (Type == EAppType.Beta) { return true; } return false; } internal bool IsAvailable() { string[] availableReleaseStates = ["released", "preloadonly"]; string[] availableStates = ["eStateAvailable"]; if (!availableReleaseStates.Contains(ReleaseState) && !availableStates.Contains(State)) { // App not released yet // Note: There's another seemingly relevant field: kv["common"]["steam_release_date"] // steam_release_date is not checked because an app can be "released", still have a future release date, and still be redeemed // Example: https://steamdb.info/changelist/20505012/ return false; } return true; } internal bool HasID(IEnumerable ids) { if (ids.Count() == 0) { return false; } if (ids.Contains(ID)) { return true; } // Parent IDs are also used for filtering as only playtests and demos have parents right now // I figure if someone doesn't want a certain app, then they also don't want the demo or playtest version of that app if (Parent != null && ids.Contains(Parent.ID)) { return true; } return false; } internal bool HasType(IEnumerable types) { if (types.Count() == 0) { return false; } return types.Contains(Type.ToString(), StringComparer.OrdinalIgnoreCase); } internal bool HasTag(IEnumerable tags, bool requireAll = false) { if (tags.Count() == 0) { return false; } if ((!requireAll && AppTags.Any(tag => tags.Contains(tag))) || (requireAll && tags.All(tag => AppTags.Contains(tag))) ) { return true; } // Also check parent app, because parents can have additional tags defined if (Parent != null && ( (!requireAll && Parent.AppTags.Any(tag => tags.Contains(tag))) || (requireAll && tags.All(tag => Parent.AppTags.Contains(tag))) )) { return true; } return false; } internal bool HasCategory(IEnumerable categories, bool requireAll = false) { if (categories.Count() == 0) { return false; } if ((!requireAll && Category.Any(category => categories.Contains(category))) || (requireAll && categories.All(category => Category.Contains(category))) ) { return true; } // Only use parent categories if the app has no categories of its own. Ex: Tekken 8 playtest (https://steamdb.info/app/2385860/). // This may lead to unintended fitlering, but not doing it may also lead to unintended filtering. // Don't use parent categories if the app has categories of its own defined, but the parent has more. // It could be that the parent naturally has more categories, for example a demo without achievement and a parent with achievements. if (Category.Count == 0 && Parent != null && ( (!requireAll && Parent.Category.Any(category => categories.Contains(category))) || (requireAll && categories.All(category => Parent.Category.Contains(category))) )) { return true; } return false; } internal bool HasContentDescriptor(IEnumerable content_descriptors) { if (content_descriptors.Count() == 0) { return false; } if (ContentDescriptors.Any(content_descriptor => content_descriptors.Contains(content_descriptor))) { return true; } // Also check parent app, because parents may have additional descriptors defined if (Parent != null && Parent.ContentDescriptors.Any(content_descriptor => content_descriptors.Contains(content_descriptor))) { return true; } return false; } internal bool HasLanguage(IEnumerable languages) { if (languages.Count() == 0) { return false; } if (SupportedLanguages.Any(language => languages.Contains(language, StringComparer.OrdinalIgnoreCase))) { return true; } // Only check the parent's languages if the app has no languages of its own // Most playtests don't list supported languages, in which case we do want to use the parent's languages (ex: Tekken 8 playtest https://steamdb.info/app/2385860/) // Don't check the parent's langauge if the app has languages of its own, but the parent has more. // It could be that the parent app naturally has more language support, in demos for example (ex: Grounded Demo supports only English while the full release supports more languages https://steamdb.info/app/1316010/ , https://steamcommunity.com/app/962130/discussions/0/2440336502396337163/) if (SupportedLanguages.Count == 0 && Parent != null && Parent.SupportedLanguages.Any(language => languages.Contains(language, StringComparer.OrdinalIgnoreCase))) { return true; } return false; } internal bool HasSystem(IEnumerable systems) { if (systems.Count() == 0) { return false; } if (OSList != null && OSList.Any(system => systems.Contains(system, StringComparer.OrdinalIgnoreCase))) { return true; } if (DeckCompatibility == 3 && systems.Contains("DeckVerified", StringComparer.OrdinalIgnoreCase)) { return true; } if (DeckCompatibility == 2 && systems.Contains("DeckPlayable", StringComparer.OrdinalIgnoreCase)) { return true; } if (DeckCompatibility == 1 && systems.Contains("DeckUnsupported", StringComparer.OrdinalIgnoreCase)) { return true; } if (DeckCompatibility == 0 && systems.Contains("DeckUnknown", StringComparer.OrdinalIgnoreCase)) { return true; } return false; } } } ================================================ FILE: FreePackages/PackageFilter/Filterables/FilterablePackage.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using ArchiSteamFarm.Core; using SteamKit2; namespace FreePackages { internal sealed class FilterablePackage { internal List PackageContents = new(); internal HashSet PackageContentIDs; internal HashSet PackageContentParentIDs = new(); internal uint ID; internal EBillingType BillingType; internal EPackageStatus Status; internal ELicenseType LicenseType; internal bool DeactivatedDemo; internal ulong ExpiryTime; internal ulong StartTime; internal uint DontGrantIfAppIDOwned; internal uint MustOwnAppToPurchase; internal List? RestrictedCountries; internal bool OnlyAllowRestrictedCountries; internal List? PurchaseRestrictedCountries; internal bool AllowPurchaseFromRestrictedCountries; internal bool FreeWeekend; internal bool BetaTesterPackage; internal FilterablePackage(SteamApps.PICSProductInfoCallback.PICSProductInfo productInfo) : this(productInfo.ID, productInfo.KeyValues) {} internal FilterablePackage(KeyValue kv) : this(Convert.ToUInt32(kv.Name), kv) {} internal FilterablePackage(uint id, KeyValue kv) { ID = id; PackageContentIDs = kv["appids"].Children.Select(x => x.AsUnsignedInteger()).ToHashSet(); BillingType = (EBillingType) kv["billingtype"].AsInteger(); Status = (EPackageStatus) kv["status"].AsInteger(); LicenseType = (ELicenseType) kv["licensetype"].AsInteger(); DeactivatedDemo = kv["extended"]["deactivated_demo"].AsBoolean(); ExpiryTime = kv["extended"]["expirytime"].AsUnsignedLong(); StartTime = kv["extended"]["starttime"].AsUnsignedLong(); DontGrantIfAppIDOwned = kv["extended"]["dontgrantifappidowned"].AsUnsignedInteger(); MustOwnAppToPurchase = kv["extended"]["mustownapptopurchase"].AsUnsignedInteger(); RestrictedCountries = kv["extended"]["restrictedcountries"].AsString()?.ToUpper().Split(" ").ToList(); OnlyAllowRestrictedCountries = kv["extended"]["onlyallowrestrictedcountries"].AsBoolean(); PurchaseRestrictedCountries = kv["extended"]["purchaserestrictedcountries"].AsString()?.ToUpper().Split(" ").ToList(); AllowPurchaseFromRestrictedCountries = kv["extended"]["allowpurchasefromrestrictedcountries"].AsBoolean(); FreeWeekend = kv["extended"]["freeweekend"].AsBoolean(); BetaTesterPackage = kv["extended"]["betatesterpackage"].AsBoolean(); } internal static async Task?> GetFilterables(List productInfos, Func? onNonFreePackage = null, CancellationToken? cancellationToken = null) { var packageProductInfos = productInfos.SelectMany(static result => result.Packages.Values); if (packageProductInfos.Count() == 0) { return []; } List packages = packageProductInfos.Select(x => new FilterablePackage(x)).ToList(); // Filter out non-free, non-new packages packages.RemoveAll(package => { if (!package.IsFree() || !package.IsAvailable()) { if (onNonFreePackage?.Invoke(package) == false) { return false; } return true; } return false; }); // Get the apps contained in each package HashSet packageContentsIDs = packages.SelectMany(package => package.PackageContentIDs).ToHashSet(); var packageContentProductInfos = (await ProductInfo.GetProductInfo(appIDs: packageContentsIDs, cancellationToken: cancellationToken).ConfigureAwait(false))?.SelectMany(static result => result.Apps.Values); if (packageContentProductInfos == null) { ASF.ArchiLogger.LogNullError(packageContentProductInfos); return null; } packages.ForEach(package => package.AddPackageContents(packageContentProductInfos.Where(x => package.PackageContentIDs.Contains(x.ID)))); // Filter out any packages which contain unavailable apps packages.RemoveAll(package => { if (!package.IsAvailablePackageContents() && package.BillingType != EBillingType.NoCost) { // Ignore this check for NoCost packages; assume that everything is available // Ex: https://steamdb.info/sub/1011710 is redeemable even though it contains https://steamdb.info/app/235901/ (which as of Feb 12 2024 is some unknown app) if (onNonFreePackage?.Invoke(package) == false) { return false; } return true; } return false; }); // Get the parents for the apps in each package HashSet parentIDs = packages.SelectMany(package => package.PackageContentParentIDs).ToHashSet(); var parentProductInfos = (await ProductInfo.GetProductInfo(appIDs: parentIDs, cancellationToken: cancellationToken).ConfigureAwait(false))?.SelectMany(static result => result.Apps.Values); if (parentProductInfos == null) { ASF.ArchiLogger.LogNullError(parentProductInfos); return null; } if (parentProductInfos.Count() > 0) { packages.ForEach(package => { if (package.PackageContentParentIDs.Count != 0) { package.AddPackageContentParents(parentProductInfos.Where(parent => package.PackageContentParentIDs.Contains(parent.ID))); } }); } return packages; } internal void AddPackageContents(IEnumerable productInfos) => AddPackageContents(productInfos.Select(productInfo => (productInfo.ID, productInfo.KeyValues))); internal void AddPackageContents(IEnumerable kvs) => AddPackageContents(kvs.Select(kv => (kv["appid"].AsUnsignedInteger(), kv))); internal void AddPackageContents(IEnumerable<(uint id, KeyValue kv)> packageContents) { PackageContents = packageContents.Select(packageContent => new FilterableApp(packageContent.id, packageContent.kv)).ToList(); PackageContentParentIDs = PackageContents.Where(app => app.ParentInfoRequired && app.ParentID != null).Select(app => app.ParentID!.Value).ToHashSet(); } internal void AddPackageContentParents(IEnumerable productInfos) => AddPackageContentParents(productInfos.Select(productInfo => (productInfo.ID, productInfo.KeyValues))); internal void AddPackageContentParents(IEnumerable kvs) => AddPackageContentParents(kvs.Select(kv => (kv["appid"].AsUnsignedInteger(), kv))); internal void AddPackageContentParents(IEnumerable<(uint id, KeyValue kv)> parents) { PackageContents.ForEach(app => { if (app.ParentInfoRequired && app.ParentID != null) { try { var parent = parents.First(parent => parent.id == app.ParentID); app.AddParent(parent.id, parent.kv); } catch (Exception) { // Ignore missing parent exception } } }); } internal bool IsFree() { if (BillingType == EBillingType.FreeOnDemand || BillingType == EBillingType.NoCost) { return true; } return false; } internal bool IsAvailable() { if (PackageContentIDs.Count == 0) { // Package has no apps return false; } if (Status != EPackageStatus.Available) { // Package is unavailable return false; } if (LicenseType != ELicenseType.SinglePurchase) { // Wrong license type return false; } if (ExpiryTime > 0 && ExpiryTime < DateUtils.DateTimeToUnixTime(DateTime.UtcNow)) { // Package was only available for a limited time and is no longer available return false; } if (DeactivatedDemo) { // Demo package has been disabled return false; } if (BetaTesterPackage) { // Playtests can't be activated through packages return false; } if (ID == 17906) { // Special case: Anonymous Dedicated Server Comp (https://steamdb.info/sub/17906/) // This always returns AccessDenied/InvalidPackage return false; } return true; } internal bool IsAvailablePackageContents() { if (PackageContentIDs.Count != PackageContents.Count) { // Could not find all of the apps for this package return false; } if (PackageContents.Any(app => !app.IsAvailable())) { // At least one of the apps in this package isn't available return false; } return true; } } } ================================================ FILE: FreePackages/PackageFilter/PackageFilter.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using AngleSharp.Dom; using ArchiSteamFarm.Core; using SteamKit2; namespace FreePackages { internal sealed class PackageFilter { private readonly BotCache BotCache; internal readonly List FilterConfigs; internal readonly int Hash; private HashSet? OwnedAppIDs = null; private Steam.UserData? UserData = null; private HashSet ImportedIgnoredAppIDs = new(); private HashSet ImportedIgnoredTags = new(); private HashSet ImportedIgnoredContentDescriptors = new(); internal string? Country = null; internal bool Ready { get { return OwnedAppIDs != null && Country != null && UserData != null; }} internal PackageFilter(BotCache botCache, List filterConfigs) { if (filterConfigs.Count == 0) { filterConfigs.Add(new FilterConfig()); } BotCache = botCache; FilterConfigs = filterConfigs; Hash = DeterministicHasher.Hash(FilterConfigs); } internal void UpdateUserDetails(Steam.UserData userData, Steam.UserInfo userInfo) { ImportedIgnoredAppIDs = userData.IgnoredApps.Where(x => x.Value == 0).Select(x => x.Key).ToHashSet(); ImportedIgnoredTags = userData.ExcludedTags.Select(x => x.TagID).ToHashSet(); ImportedIgnoredContentDescriptors = userData.ExcludedContentDescriptorIDs; Country = userInfo.CountryCode; // Get all of the apps that are in each of the owned packages, and merge with explicitly owned apps var ownedAppIDs = userData.OwnedApps; if (ASF.GlobalDatabase != null) { var ownedPackageIDs = userData.OwnedPackages; ownedAppIDs.UnionWith(ASF.GlobalDatabase.PackagesDataReadOnly.Where(x => ownedPackageIDs.Contains(x.Key) && x.Value.AppIDs != null).SelectMany(x => x.Value.AppIDs!).ToHashSet()); } OwnedAppIDs = ownedAppIDs; UserData = userData; } internal bool IsRedeemableApp(FilterableApp app, HashSet? includedAppIDs = null, bool ignoreAlreadyOwned = false) { if (OwnedAppIDs == null) { throw new InvalidOperationException(nameof(OwnedAppIDs)); } if (Country == null) { throw new InvalidOperationException(nameof(Country)); } // It's impossible to tell for certain if an app is redeemable by this account with the information we have here // For an app to be redeemable it needs a package that's also redeemable, but we can't see which packages grant an app // Some examples: Deactivated demo: https://steamdb.info/app/1316010 // App isn't region locked but with package that is: https://steamdb.info/app/2147450 // Free games, but that can only be obtained from bundles with non-free games: https://steamdb.info/app/2119270/ https://steamdb.info/bundle/30994/ if (!ignoreAlreadyOwned && OwnedAppIDs.Contains(app.ID)) { // Already own this app return false; } if (app.MustOwnAppToPurchase > 0 && !OwnedAppIDs.Contains(app.MustOwnAppToPurchase) && (includedAppIDs == null || !includedAppIDs.Contains(app.MustOwnAppToPurchase))) { // Missing a necessary app return false; } if (app.RestrictedCountries != null && app.RestrictedCountries.Contains(Country, StringComparer.OrdinalIgnoreCase)) { // App is restricted in this bot's country return false; } if (app.PurchaseRestrictedCountries != null) { bool isPurchaseRestricted = app.PurchaseRestrictedCountries.Contains(Country, StringComparer.OrdinalIgnoreCase); if (isPurchaseRestricted != app.AllowPurchaseFromRestrictedCountries) { // App is purchase restricted in this bot's country return false; } } return true; } internal bool IsAppWantedByFilter(FilterableApp app, FilterConfig filter, bool ignoreAgeFilters = false) { if (UserData == null) { throw new InvalidOperationException(nameof(UserData)); } if (filter.Types.Count > 0 && app.Type != EAppType.Beta && !app.HasType(filter.Types)) { // Don't require user to specify they want playtests (Beta), this is already implied by the PlaytestMode filter // App isn't a wanted type return false; } if (filter.Categories.Count > 0 && !app.HasCategory(filter.Categories, filter.RequireAllCategories)) { // Unwanted due to missing categories return false; } if (filter.Tags.Count > 0 && !app.HasTag(filter.Tags, filter.RequireAllTags)) { // Unwanted due to missing tags (also check parent app, because parents can have more tags defined) return false; } if (filter.MinReviewScore > 0 && app.ReviewScore < filter.MinReviewScore && app.Type != EAppType.Demo && app.Type != EAppType.Beta) { // Not including demos and playtests here because they don't really have review scores. They can, but only from abnormal behavior // Unwanted due to low or missing review score return false; } if (filter.Languages.Count > 0 && !app.HasLanguage(filter.Languages)) { // Unwanted due to missing supported language return false; } if (filter.Systems.Count > 0 && !app.HasSystem(filter.Systems)) { // Unwanted due to missing supported systems return false; } if (filter.WishlistOnly && !UserData.WishlistedApps.Contains(app.ID) && !UserData.FollowedApps.Contains(app.ID)) { // Unwated to due not being wishlisted or followed on the Steam storefront return false; } if (!ignoreAgeFilters && filter.MaxDaysOld > 0 && DateTime.UtcNow.AddDays(-filter.MaxDaysOld) > app.SteamReleaseDate) { // Unwanted because the app is too old return false; } return true; } internal bool IsAppIgnoredByFilter(FilterableApp app, FilterConfig filter) { if (UserData == null) { throw new InvalidOperationException(nameof(UserData)); } if (app.HasType(filter.IgnoredTypes)) { // App is an unwanted type return true; } if (app.HasTag(filter.IgnoredTags)) { // App contains an unwanted tag return true; } if (app.HasCategory(filter.IgnoredCategories)) { // App contains unwanted categories return true; } if (app.HasContentDescriptor(filter.IgnoredContentDescriptors)) { // App contains an unwanted content descriptor (also check parent app, because parents can have more descriptors defined) return true; } if (app.HasID(filter.IgnoredAppIDs)) { // App is explicity ignored return true; } if (filter.ImportStoreFilters) { if (app.HasTag(ImportedIgnoredTags)) { // App contains a tag which the user has ignored on Steam return true; } if (app.HasContentDescriptor(ImportedIgnoredContentDescriptors)) { // App contains a content descriptor which the user has ignored on Steam return true; } if (app.HasID(ImportedIgnoredAppIDs)) { // User has ignored this app on Steam return true; } } return false; } internal bool IsRedeemablePackage(FilterablePackage package, bool ignoreAlreadyOwned = false) { if (UserData == null) { throw new InvalidOperationException(nameof(UserData)); } if (OwnedAppIDs == null) { throw new InvalidOperationException(nameof(OwnedAppIDs)); } if (Country == null) { throw new InvalidOperationException(nameof(Country)); } if (!ignoreAlreadyOwned && UserData.OwnedPackages.Contains(package.ID)) { // Already own this package return false; } if (!ignoreAlreadyOwned && package.PackageContents.All(x => OwnedAppIDs.Contains(x.ID))) { // Already own all of the apps in this package return false; } if (package.DontGrantIfAppIDOwned > 0 && OwnedAppIDs.Contains(package.DontGrantIfAppIDOwned)) { // Owns an app that blocks activation return false; } if (package.MustOwnAppToPurchase > 0 && !OwnedAppIDs.Contains(package.MustOwnAppToPurchase)) { // Don't own required app return false; } if (package.RestrictedCountries != null) { bool isRestricted = package.RestrictedCountries.Contains(Country, StringComparer.OrdinalIgnoreCase); if (isRestricted != package.OnlyAllowRestrictedCountries) { // Package is restricted in this bot's country return false; } } if (package.PurchaseRestrictedCountries != null) { bool isPurchaseRestricted = package.PurchaseRestrictedCountries.Contains(Country, StringComparer.OrdinalIgnoreCase); if (isPurchaseRestricted != package.AllowPurchaseFromRestrictedCountries) { // Package is purchase restricted in this bot's country return false; } } if (package.PackageContents.Any(app => !IsRedeemableApp(app, package.PackageContentIDs, ignoreAlreadyOwned: true))) { // At least one of the unowned apps in this package isn't redeemable return false; } return true; } internal bool IsPackageWantedByFilter(FilterablePackage package, FilterConfig filter, bool ignoreAgeFilters = false) { bool hasWantedApp = package.PackageContents.Any(app => IsAppWantedByFilter(app, filter, ignoreAgeFilters)); if (!hasWantedApp) { return false; } return true; } internal bool IsPackageIgnoredByFilter(FilterablePackage package, FilterConfig filter) { if (filter.NoCostOnly && package.BillingType != EBillingType.NoCost) { return true; } if (filter.IgnoreFreeWeekends && package.FreeWeekend) { return true; } bool hasIgnoredApp = package.PackageContents.Any(app => IsAppIgnoredByFilter(app, filter)); if (hasIgnoredApp) { return true; } return false; } internal bool IsRedeemablePlaytest(FilterableApp app) { // More than half of playtests we try to join will be invalid. // Some of these will be becase there's no free packages (which we can't determine here), Ex: playtest is activated by key: https://steamdb.info/sub/858277/ // For most, There seems to be no difference at all between invalid playtest and valid ones. The only way to resolve these is to scrape the parent's store page. if (app.Parent == null) { return false; } if (!IsRedeemableApp(app)) { return false; } if (app.Parent.Hidden) { // Hidden app return false; } if (BotCache.WaitlistedPlaytests.Contains(app.Parent.ID)) { // We're already on the waitlist for this playtest return false; } return true; } internal bool IsPlaytestWantedByFilter(FilterableApp app, FilterConfig filter) { if (app.Parent == null) { return false; } if (filter.PlaytestMode == EPlaytestMode.None) { // User doesnt want any playtests return false; } if (!IsAppWantedByFilter(app, filter)) { return false; } // playtest_type 0 = limited (default) bool wantsLimitedPlaytests = (filter.PlaytestMode & EPlaytestMode.Limited) == EPlaytestMode.Limited; if (app.PlayTestType == 0 && !wantsLimitedPlaytests) { // User doesn't want limited playtests return false; } // playtest_type 1 = unlimited bool wantsUnlimitedPlaytests = (filter.PlaytestMode & EPlaytestMode.Unlimited) == EPlaytestMode.Unlimited; if (app.PlayTestType == 1 && !wantsUnlimitedPlaytests) { // User doesn't want unlimited playtests return false; } return true; } internal bool FilterOnlyAllowsPackages(FilterConfig filter) { if (filter.NoCostOnly) { // NoCost is a property value that only applies to packages, so ignore all non-packages return true; } return false; } internal bool IsWantedApp(FilterableApp app) { if (FilterConfigs.Count == 0) { return true; } return FilterConfigs.Any(filter => !FilterOnlyAllowsPackages(filter) && IsAppWantedByFilter(app, filter) && !IsAppIgnoredByFilter(app, filter)); } internal bool IsWantedPackage(FilterablePackage package, bool ignoreAgeFilters = false) { if (FilterConfigs.Count == 0) { return true; } return FilterConfigs.Any(filter => IsPackageWantedByFilter(package, filter, ignoreAgeFilters) && !IsPackageIgnoredByFilter(package, filter)); } internal bool IsWantedPlaytest(FilterableApp app) { if (FilterConfigs.Count == 0) { return false; } return FilterConfigs.Any(filter => !FilterOnlyAllowsPackages(filter) && IsPlaytestWantedByFilter(app, filter) && !IsAppIgnoredByFilter(app, filter)); } internal bool OwnsApp(uint appID) { if (OwnedAppIDs == null) { throw new InvalidOperationException(nameof(OwnedAppIDs)); } return OwnedAppIDs.Contains(appID); } internal bool OwnsSub(uint subID) { if (UserData == null) { throw new InvalidOperationException(nameof(UserData)); } return UserData.OwnedPackages.Contains(subID); } } } ================================================ FILE: FreePackages/PackageQueue/ActivationQueue.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using ArchiSteamFarm.Steam; using FreePackages.Localization; using SteamKit2; namespace FreePackages { internal sealed class ActivationQueue : PackageQueue { private const int DelayBetweenActivationsSeconds = 5; internal readonly uint ActivationsPerPeriod = 25; internal const uint MaxActivationsPerPeriod = 30; // Steam's imposed limit internal const uint ActivationPeriodMinutes = 90; // Steam's imposed limit internal readonly PackageFilter PackageFilter; internal static readonly HashSet ActivationTypes = [EPackageType.App, EPackageType.Sub, EPackageType.Playtest]; internal int ActivationsRemaining => BotCache.Packages.Where(x => ActivationTypes.Contains(x.Type)).Count(); internal ActivationQueue(Bot bot, BotCache botCache, bool pauseWhilePlaying, uint? packageLimit, PackageFilter packageFilter) : base(bot, botCache, pauseWhilePlaying) { PackageFilter = packageFilter; if (packageLimit != null) { ActivationsPerPeriod = Math.Min(packageLimit.Value, MaxActivationsPerPeriod); } } protected override Package? GetNextPackage() => BotCache.GetNextPackage(ActivationTypes); protected override async Task BeforeProcessing(Package package) { // Rate limit reached if (BotCache.NumActivationsPastPeriod() >= ActivationsPerPeriod) { DateTime resumeTime = BotCache.GetLastActivation()!.Value.AddMinutes(ActivationPeriodMinutes + 1); Bot.ArchiLogger.LogGenericInfo(String.Format(Strings.ActivationPaused, String.Format("{0:T}", resumeTime))); return resumeTime; } // User has changed their filters, re-scan packages queued under the old filter to see if they're still wanted if (package.FilterHash != null && package.FilterHash != PackageFilter.Hash) { List appsToRescan = BotCache.Packages.Where(x => x.Type is EPackageType.App or EPackageType.Playtest && x.FilterHash != null && x.FilterHash != PackageFilter.Hash).ToList(); List subsToRescan = BotCache.Packages.Where(x => x.Type is EPackageType.Sub && x.FilterHash != null && x.FilterHash != PackageFilter.Hash).ToList(); List? productInfos = await ProductInfo.GetProductInfo(appIDs: appsToRescan.Select(x => x.ID).ToHashSet(), packageIDs: subsToRescan.Select(x => x.ID).ToHashSet()).ConfigureAwait(false); if (productInfos == null) { Bot.ArchiLogger.LogGenericError(Strings.ProductInfoFetchFailed); return DateTime.Now.AddMinutes(1); } // Recheck all apps not queued with the current filter if (appsToRescan.Count > 0) { List? filterableApps = await FilterableApp.GetFilterables(productInfos, onNonFreeApp: x => false).ConfigureAwait(false); if (filterableApps == null) { Bot.ArchiLogger.LogGenericError(Strings.ProductInfoFetchFailed); return DateTime.Now.AddMinutes(1); } foreach (Package app in appsToRescan) { FilterableApp? filterableApp = filterableApps.FirstOrDefault(x => x.ID == app.ID); if (filterableApp != null) { if (app.Type == EPackageType.App) { if (!PackageFilter.IsWantedApp(filterableApp)) { Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("app/{0}", app.ID), Strings.Unwanted)); BotCache.RemovePackage(app); continue; } } else if (app.Type == EPackageType.Playtest) { if (!PackageFilter.IsWantedPlaytest(filterableApp)) { Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("playtest/{0}", app.ID), Strings.Unwanted)); BotCache.RemovePackage(app); continue; } } } // App either passes the current filter, or its info is missing for some reason app.FilterHash = PackageFilter.Hash; } BotCache.SaveChanges(); } // Recheck all subs not queued with the current filter if (subsToRescan.Count > 0) { List? filterablePackages = await FilterablePackage.GetFilterables(productInfos, onNonFreePackage: x => false).ConfigureAwait(false); if (filterablePackages == null) { Bot.ArchiLogger.LogGenericError(Strings.ProductInfoFetchFailed); return DateTime.Now.AddMinutes(1); } foreach (Package sub in subsToRescan) { FilterablePackage? filterablePackage = filterablePackages.FirstOrDefault(x => x.ID == sub.ID); if (filterablePackage != null) { if (!PackageFilter.IsWantedPackage(filterablePackage)) { Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("sub/{0}", sub.ID), Strings.Unwanted)); BotCache.RemovePackage(sub); continue; } } // Sub either passes the current filter, or its info is missing for some reason sub.FilterHash = PackageFilter.Hash; } BotCache.SaveChanges(); } return DateTime.Now.AddSeconds(1); } return null; } protected override DateTime? HandleResult(Package package, EResult result) { if (result == EResult.RateLimitExceeded) { BotCache.AddActivation(DateTime.Now, MaxActivationsPerPeriod); // However many activations we thought were made, we were wrong. Correct for this by adding a bunch of fake times to our cache DateTime resumeTime = DateTime.Now.AddMinutes(ActivationPeriodMinutes + 1); Bot.ArchiLogger.LogGenericInfo(Strings.RateLimitExceeded); Bot.ArchiLogger.LogGenericInfo(String.Format(Strings.ActivationPaused, String.Format("{0:T}", resumeTime))); return resumeTime; } if (result == EResult.Timeout) { return DateTime.Now.AddMinutes(5); } if (result == EResult.OK || result == EResult.Invalid || result == EResult.AlreadyOwned) { BotCache.RemovePackage(package); } if (ActivationsRemaining > 0) { return DateTime.Now.AddSeconds(DelayBetweenActivationsSeconds); } return null; } } } ================================================ FILE: FreePackages/PackageQueue/Package.cs ================================================ using System; using System.Collections.Generic; using System.Text.Json.Serialization; namespace FreePackages { public sealed class Package { [JsonInclude] [JsonRequired] public EPackageType Type { get; private init; } [JsonInclude] [JsonRequired] public uint ID { get; private init; } [JsonInclude] public ulong? StartTime { get; private init; } = null; [JsonInclude] public int? FilterHash { get; set; } = null; public bool ShouldSerializeStartTime() => StartTime != null; public bool ShouldSerializeFilterHash() => FilterHash != null; [JsonConstructor] public Package(EPackageType type, uint id, ulong? startTime = null, int? filterHash = null) { Type = type; ID = id; StartTime = (startTime > 0) ? startTime : null; FilterHash = filterHash; } } public enum EPackageType { App = 0, Sub = 1, Playtest = 2, RemoveSub = 3, RemoveApp = 4 } public class PackageComparer : IEqualityComparer { public bool Equals(Package? x, Package? y) { return x?.ID == y?.ID && x?.Type == y?.Type; } public int GetHashCode(Package obj) { return HashCode.Combine(obj.ID, obj.Type); } } } ================================================ FILE: FreePackages/PackageQueue/PackageQueue.cs ================================================ using System; using System.Linq; using System.Threading; using System.Threading.Tasks; using ArchiSteamFarm.Core; using ArchiSteamFarm.Steam; using FreePackages.Localization; using SteamKit2; namespace FreePackages { internal abstract class PackageQueue : IDisposable { protected readonly Bot Bot; protected readonly BotCache BotCache; internal readonly bool PauseWhilePlaying = false; private PackageFilter PackageFilter => PackageHandler.Handlers[Bot.BotName].PackageFilter; private Timer Timer; internal PackageQueue(Bot bot, BotCache botCache, bool pauseWhilePlaying) { Bot = bot; BotCache = botCache; PauseWhilePlaying = pauseWhilePlaying; Timer = new Timer(async e => await ProcessQueue().ConfigureAwait(false), null, 0, Timeout.Infinite); } public void Dispose() { Timer.Dispose(); } internal void Start() { UpdateTimer(DateTime.Now.AddMinutes(1)); } private async Task ProcessQueue() { if (!Bot.IsConnectedAndLoggedOn || !PackageFilter.Ready) { UpdateTimer(DateTime.Now.AddMinutes(1)); return; } // Don't activate anything while the user is playing a game (does not apply to ASF card farming) if (PauseWhilePlaying && !Bot.IsPlayingPossible) { UpdateTimer(DateTime.Now.AddMinutes(1)); return; } Package? package = GetNextPackage(); if (package == null) { // No packages to activate UpdateTimer(DateTime.Now.AddMinutes(1)); return; } { DateTime? waitUntil = await BeforeProcessing(package).ConfigureAwait(false); if (waitUntil != null) { UpdateTimer(waitUntil.Value); return; } } EResult result = await ProcessPackage(package).ConfigureAwait(false); { DateTime? waitUntil = HandleResult(package, result); if (waitUntil != null) { UpdateTimer(waitUntil.Value); return; } } UpdateTimer(DateTime.Now.AddMinutes(1)); } protected abstract Package? GetNextPackage(); protected abstract Task BeforeProcessing(Package package); protected abstract DateTime? HandleResult(Package package, EResult result); private async Task ProcessPackage(Package package) { if (package.Type == EPackageType.App) { return await ClaimFreeApp(package.ID).ConfigureAwait(false); } if (package.Type == EPackageType.Sub) { return await ClaimFreeSub(package.ID).ConfigureAwait(false); } if (package.Type == EPackageType.Playtest) { return await ClaimPlaytest(package.ID).ConfigureAwait(false); } if (package.Type == EPackageType.RemoveSub) { return await RemoveSub(package.ID).ConfigureAwait(false); } if (package.Type == EPackageType.RemoveApp) { return await RemoveApp(package.ID).ConfigureAwait(false); } return EResult.Invalid; } private async Task ClaimFreeApp(uint appID) { // One final check before claiming to make sure we still don't own this app if (PackageFilter.OwnsApp(appID)) { Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("app/{0}", appID), EResult.AlreadyOwned)); return EResult.AlreadyOwned; } SteamApps.FreeLicenseCallback response; try { response = await Bot.SteamApps.RequestFreeLicense(appID).ToLongRunningTask().ConfigureAwait(false); } catch (Exception e) { Bot.ArchiLogger.LogGenericException(e); return EResult.Timeout; } if (response.Result != EResult.OK) { Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("app/{0}", appID), response.Result)); if (response.Result == EResult.RateLimitExceeded) { // Note: this is the rate limit for this api, and is unrelated to the package limit // I still treat this like a package rate limit however, as it seems to behave similarly, and doing this will avoid a lot of errors return EResult.RateLimitExceeded; } return EResult.Fail; } if (response.GrantedApps.Count > 0 || response.GrantedPackages.Count > 0) { // When only GrantedPackages is empty we probably tried to activate an app we already own. I don't think it's possible for only GrantedApps to be empty Bot.ArchiLogger.LogGenericInfo(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicenseWithItems, String.Format("app/{0}", appID), response.Result, String.Join(", ", response.GrantedApps.Select(x => $"app/{x}").Union(response.GrantedPackages.Select(x => $"sub/{x}"))))); if (response.GrantedPackages.Count > 0) { BotCache.AddActivation(DateTime.Now, packageIDs: response.GrantedPackages); } return EResult.OK; } // App isn't available (usually not available in this region, which we can't determine ahead of time) // Ignore this AppID if we see it again in a PICS update (will not prevent us from activating it if it's discovered through a SubID or by some other method) BotCache.IgnoreApp(appID); Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("app/{0}", appID), Strings.Unknown)); return EResult.Invalid; } private async Task ClaimFreeSub(uint subID) { // One final check before claiming to make sure we still don't own this package if (PackageFilter.OwnsSub(subID)) { Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("sub/{0}", subID), EResult.AlreadyOwned)); return EResult.AlreadyOwned; } EResult result; EPurchaseResultDetail purchaseResult; try { (result, purchaseResult) = await Bot.Actions.AddFreeLicensePackage(subID).ConfigureAwait(false); } catch (Exception e) { Bot.ArchiLogger.LogGenericException(e); return EResult.Invalid; } if (result == EResult.OK) { Bot.ArchiLogger.LogGenericInfo(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("sub/{0}", subID), String.Format("{0}/{1}", result, purchaseResult))); } else { Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("sub/{0}", subID), String.Format("{0}/{1}", result, purchaseResult))); } if (purchaseResult == EPurchaseResultDetail.RateLimited) { return EResult.RateLimitExceeded; } if (purchaseResult == EPurchaseResultDetail.Timeout) { return EResult.Timeout; } if (result != EResult.OK) { return EResult.Invalid; } BotCache.AddActivation(DateTime.Now, packageIDs: [ subID ]); return EResult.OK; } private async Task ClaimPlaytest(uint appID) { Steam.PlaytestAccessResponse? response = await WebRequest.RequestPlaytestAccess(Bot, appID).ConfigureAwait(false); if (response == null) { // Playtest does not exist currently Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("playtest/{0}", appID), Strings.Invalid)); return EResult.Invalid; } if (response.Success != 1) { // Not sure if/when this happens Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("playtest/{0}", appID), Strings.Failed)); return EResult.Invalid; } if (response.Granted == null) { // Playtest has limited slots, account was added to the waitlist Bot.ArchiLogger.LogGenericInfo(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("playtest/{0}", appID), Strings.Waitlisted)); // This won't show up in our owned apps until we're accepted, save it so we don't attempt to join the playtest again BotCache.AddWaitlistedPlaytest(appID); return EResult.OK; } // Access to unlimited playtest granted Bot.ArchiLogger.LogGenericInfo(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("playtest/{0}", appID), EResult.OK)); return EResult.OK; } private async Task RemoveSub(uint subID) { EResult result; try { result = await Bot.Actions.RemoveLicensePackage(subID).ConfigureAwait(false); } catch (Exception e) { Bot.ArchiLogger.LogGenericException(e); return EResult.Invalid; } if (result == EResult.OK) { Bot.ArchiLogger.LogGenericInfo(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("sub/{0}", subID), result)); } else { Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("sub/{0}", subID), result)); } if (result == EResult.RateLimitExceeded) { return EResult.RateLimitExceeded; } if (result == EResult.Timeout) { return EResult.Timeout; } if (result != EResult.OK) { return EResult.Invalid; } return EResult.OK; } private async Task RemoveApp(uint appID) { EResult result; try { result = await Bot.Actions.RemoveLicenseApp(appID).ConfigureAwait(false); } catch (Exception e) { Bot.ArchiLogger.LogGenericException(e); return EResult.Invalid; } if (result == EResult.OK) { Bot.ArchiLogger.LogGenericInfo(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("app/{0}", appID), result)); } else { Bot.ArchiLogger.LogGenericDebug(String.Format(ArchiSteamFarm.Localization.Strings.BotAddLicense, String.Format("app/{0}", appID), result)); } if (result == EResult.RateLimitExceeded) { return EResult.RateLimitExceeded; } if (result == EResult.Timeout) { return EResult.Timeout; } if (result != EResult.OK) { return EResult.Invalid; } return EResult.OK; } private static int GetMillisecondsFromNow(DateTime then) => Math.Max(0, (int)(then - DateTime.Now).TotalMilliseconds); private void UpdateTimer(DateTime then) => Timer?.Change(GetMillisecondsFromNow(then), Timeout.Infinite); } } ================================================ FILE: FreePackages/PackageQueue/RemovalQueue.cs ================================================ using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using ArchiSteamFarm.Steam; using FreePackages.Localization; using SteamKit2; namespace FreePackages { internal sealed class RemovalQueue(Bot bot, BotCache botCache, bool pauseWhilePlaying) : PackageQueue(bot, botCache, pauseWhilePlaying) { private const int DelayBetweenRemovalsSeconds = 1; private const int RateLimitedCooldownMinutes = 10; internal static readonly HashSet RemovalTypes = [EPackageType.RemoveSub, EPackageType.RemoveApp]; internal int RemovalsRemaining => BotCache.Packages.Where(x => RemovalTypes.Contains(x.Type)).Count(); protected override Package? GetNextPackage() => BotCache.GetNextPackage([EPackageType.RemoveApp]) ?? BotCache.GetNextPackage([EPackageType.RemoveSub]); protected override Task BeforeProcessing(Package package) => Task.FromResult(null); protected override DateTime? HandleResult(Package package, EResult result) { if (result == EResult.RateLimitExceeded) { DateTime resumeTime = DateTime.Now.AddMinutes(RateLimitedCooldownMinutes); Bot.ArchiLogger.LogGenericInfo(String.Format(Strings.RemovalsPaused, String.Format("{0:T}", resumeTime))); return DateTime.Now.AddMinutes(RateLimitedCooldownMinutes); } if (result == EResult.Timeout) { return DateTime.Now.AddMinutes(5); } BotCache.RemovePackage(package); if (RemovalsRemaining > 0) { return DateTime.Now.AddSeconds(DelayBetweenRemovalsSeconds); } return null; } } } ================================================ FILE: FreePackages/WebRequest.cs ================================================ using System; using System.Collections.Generic; using System.Text.RegularExpressions; using System.Threading.Tasks; using AngleSharp.Dom; using ArchiSteamFarm.Helpers.Json; using ArchiSteamFarm.Steam; using ArchiSteamFarm.Steam.Integration; using ArchiSteamFarm.Web.Responses; namespace FreePackages { internal static class WebRequest { internal static async Task GetUserData(Bot bot) { Uri request = new(ArchiWebHandler.SteamStoreURL, "/dynamicstore/userdata/"); ObjectResponse? userDataResponse = await bot.ArchiWebHandler.UrlGetToJsonObjectWithSession(request).ConfigureAwait(false); return userDataResponse?.Content; } internal static async Task RequestPlaytestAccess(Bot bot, uint appID) { Uri request = new(ArchiWebHandler.SteamStoreURL, String.Format("/ajaxrequestplaytestaccess/{0}", appID)); Dictionary data = new(1); // Extra entry for sessionID // Returns 401 error error with body "false" if playtest doesn't exist for appID ObjectResponse? playtestAccessResponse = await bot.ArchiWebHandler.UrlPostToJsonObjectWithSession(request, data: data, maxTries: 1).ConfigureAwait(false); return playtestAccessResponse?.Content; } internal static async Task GetAccountLicenses(Bot bot) { Uri request = new(ArchiWebHandler.SteamStoreURL, "/account/licenses/"); HtmlDocumentResponse? accountLicensesResponse = await bot.ArchiWebHandler.UrlGetToHtmlDocumentWithSession(request).ConfigureAwait(false); return accountLicensesResponse?.Content; } internal static async Task GetUserInfo(Bot bot) { Uri request = new(ArchiWebHandler.SteamStoreURL, ""); HtmlDocumentResponse? storeResponse = await bot.ArchiWebHandler.UrlGetToHtmlDocumentWithSession(request).ConfigureAwait(false); if (storeResponse == null || storeResponse.Content == null) { return null; } try { Regex pageObjRegex = new Regex("data-userinfo=\"({[\\s\\S]*?})\"", RegexOptions.CultureInvariant); Match match = pageObjRegex.Match(storeResponse.Content.Source.Text); if (!match.Success) { throw new Exception(String.Format(ArchiSteamFarm.Localization.Strings.ErrorIsEmpty, nameof(match))); } return match.Groups[1].Value.Replace(""", "\"").ToJsonObject(); } catch (Exception e) { bot.ArchiLogger.LogGenericException(e); return null; } } } } ================================================ FILE: FreePackages.Tests/Apps.cs ================================================ using System.Collections.Generic; using System.IO; using ArchiSteamFarm.Helpers.Json; using Microsoft.IdentityModel.Tokens; using Microsoft.VisualStudio.TestTools.UnitTesting; using SteamKit2; namespace FreePackages.Tests; [TestClass] [DeploymentItem("TestData")] public class Apps { internal PackageFilter PackageFilter; [TestInitialize] public void InitializePackageFilter () { PackageFilter = new PackageFilter(new BotCache(), new List()); PackageFilter.UpdateUserDetails(File.ReadAllText("userdata_empty.json").ToJsonObject(), File.ReadAllText("userinfo_empty.json").ToJsonObject()); PackageFilter.Country = "FOO"; } [TestCleanup] public void CleanupPackageFilter() { PackageFilter.UpdateUserDetails(File.ReadAllText("userdata_empty.json").ToJsonObject(), File.ReadAllText("userinfo_empty.json").ToJsonObject()); PackageFilter.Country = "FOO"; } [TestMethod] public void CanDetectFreeApp() { var app = new FilterableApp(KeyValue.LoadAsText("app_which_is_free.txt")); Assert.IsTrue(app.IsFree()); } [TestMethod] public void CanDetectAvailableAppByReleaseState() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_release_state.txt")); Assert.IsFalse(string.IsNullOrEmpty(app.ReleaseState)); Assert.IsTrue(app.IsAvailable()); } [TestMethod] public void CanDetectAvailableAppByState() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_state.txt")); Assert.IsFalse(string.IsNullOrEmpty(app.State)); Assert.IsTrue(app.IsAvailable()); } [TestMethod] public void CanDetectRedeemableAppWithAppRequirement() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_required_app.txt")); var userData = File.ReadAllText("userdata_empty.json").ToJsonObject(); userData.OwnedApps.Add(1086940); PackageFilter.UpdateUserDetails(userData, File.ReadAllText("userinfo_empty.json").ToJsonObject()); Assert.IsTrue(app.MustOwnAppToPurchase > 0); Assert.IsTrue(PackageFilter.IsRedeemableApp(app)); } [TestMethod] public void CanDetectRedeemableAppWithRestrictedCountry() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_restricted_countries.txt")); Assert.IsTrue(app.RestrictedCountries.Contains("DE")); Assert.IsTrue(PackageFilter.IsRedeemableApp(app)); PackageFilter.Country = "dE"; Assert.IsFalse(PackageFilter.IsRedeemableApp(app)); } [TestMethod] public void CanDetectRedeemableAppWithPurchaseRestrictedCountry() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_purchase_restricted_countries.txt")); Assert.IsTrue(app.AllowPurchaseFromRestrictedCountries); Assert.IsTrue(app.PurchaseRestrictedCountries.Contains("US")); Assert.IsFalse(PackageFilter.IsRedeemableApp(app)); PackageFilter.Country = "uS"; Assert.IsTrue(PackageFilter.IsRedeemableApp(app)); } [TestMethod] public void CanFindAppDLC() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_dlc.txt")); PackageFilter.Country = ""; Assert.IsFalse(string.IsNullOrEmpty(app.ListOfDLC)); } [TestMethod] public void CanDetectNonRedeemablePlaytestWithHiddenParent() { var playtest = new FilterableApp(KeyValue.LoadAsText("playtest_with_hidden_parent.txt")); var playtestParent = KeyValue.LoadAsText("playtest_with_hidden_parent_parent.txt"); playtest.AddParent(playtestParent); Assert.IsTrue(playtest.Parent.Hidden); Assert.IsFalse(PackageFilter.IsRedeemablePlaytest(playtest)); } } ================================================ FILE: FreePackages.Tests/Filters.cs ================================================ using System.Collections.Generic; using System.IO; using ArchiSteamFarm.Helpers.Json; using Microsoft.VisualStudio.TestTools.UnitTesting; using SteamKit2; namespace FreePackages.Tests; [TestClass] [DeploymentItem("TestData")] public class Filters { internal PackageFilter PackageFilter; internal FilterConfig Filter; [TestInitialize] public void InitializePackageFilter () { PackageFilter = new PackageFilter(new BotCache(), new List()); PackageFilter.UpdateUserDetails(File.ReadAllText("userdata_empty.json").ToJsonObject(), File.ReadAllText("userinfo_empty.json").ToJsonObject()); Filter = new FilterConfig(); Filter.IgnoredTypes.Remove("Demo"); } [TestCleanup] public void CleanupPackageFilter() { PackageFilter.UpdateUserDetails(File.ReadAllText("userdata_empty.json").ToJsonObject(), File.ReadAllText("userinfo_empty.json").ToJsonObject()); Filter = new FilterConfig(); Filter.IgnoredTypes.Remove("Demo"); } [TestMethod] public void CanFilterAppByType() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_type.txt")); Filter.Types.Add("Foo"); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.Types.Add("GaMe"); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.IgnoredTypes.Add("GaMe"); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(app, Filter)); } [TestMethod] public void CanFilterAppByTag() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_tags.txt")); Filter.Tags.Add(8000); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.Tags.Add(113); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.RequireAllTags = true; Assert.IsFalse(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.Tags.Remove(8000); Filter.Tags.Add(19); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.IgnoredTags.Add(113); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(app, Filter)); } [TestMethod] public void CanFilterAppAppByParentTag() { var demo = new FilterableApp(KeyValue.LoadAsText("demo_with_fewer_tags_than_parent.txt")); var demoParent = KeyValue.LoadAsText("demo_with_fewer_tags_than_parent_parent.txt"); Filter.Types.Add("Demo"); Filter.Tags.Add(1742); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(demo, Filter)); demo.AddParent(demoParent); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(demo, Filter)); Filter.RequireAllTags = true; Filter.Tags.Add(19); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(demo, Filter)); Filter.Tags.Add(8000); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(demo, Filter)); } [TestMethod] public void CanFilterAppByCategory() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_categories.txt")); Filter.Categories.Add(8000); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.Categories.Add(8); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.RequireAllCategories = true; Assert.IsFalse(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.Categories.Remove(8000); Filter.Categories.Add(1); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.IgnoredCategories.Add(8); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(app, Filter)); } [TestMethod] public void CanFilterAppWithNoCategoryByParentCategory() { var playtest = new FilterableApp(KeyValue.LoadAsText("playtest_with_no_categories.txt")); var playtestParent = KeyValue.LoadAsText("playtest_with_no_categories_parent.txt"); Filter.Categories.Add(2); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(playtest, Filter)); playtest.AddParent(playtestParent); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(playtest, Filter)); Filter.RequireAllCategories = true; Filter.Categories.Add(1); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(playtest, Filter)); Filter.Categories.Add(8000); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(playtest, Filter)); } [TestMethod] public void CanFilterAppByParentCategory() { var demo = new FilterableApp(KeyValue.LoadAsText("demo_with_fewer_categories_than_parent.txt")); var demoParent = KeyValue.LoadAsText("demo_with_fewer_categories_than_parent_parent.txt"); Filter.Categories.Add(22); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(demo, Filter)); demo.AddParent(demoParent); Assert.IsTrue(demo.Parent.Category.Contains(22)); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(demo, Filter)); } [TestMethod] public void CanFilterAppByLanguage() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_language_support.txt")); Filter.Languages.Add("foo"); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.Languages.Add("eNgLiSh"); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); } [TestMethod] public void CanFilterAppWithNoLanguageByParentLanguage() { var playtest = new FilterableApp(KeyValue.LoadAsText("playtest_with_no_languages.txt")); var playtestParent = KeyValue.LoadAsText("playtest_with_no_languages_parent.txt"); Filter.Languages.Add("eNgLiSh"); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(playtest, Filter)); playtest.AddParent(playtestParent); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(playtest, Filter)); } [TestMethod] public void CanFilterAppByParentLanguage() { var demo = new FilterableApp(KeyValue.LoadAsText("demo_with_fewer_languages_than_parent.txt")); var demoParent = KeyValue.LoadAsText("demo_with_fewer_languages_than_parent_parent.txt"); Filter.Languages.Add("fReNcH"); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(demo, Filter)); demo.AddParent(demoParent); Assert.IsTrue(demo.Parent.SupportedLanguages.Contains("french")); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(demo, Filter)); } [TestMethod] public void CanFilterAppByReviewScore() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_review_score.txt")); Filter.MinReviewScore = 10; Assert.IsFalse(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.MinReviewScore = 5; Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); } [TestMethod] public void CanFilterAppByContentDescriptor() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_content_descriptors.txt")); Assert.IsFalse(PackageFilter.IsAppIgnoredByFilter(app, Filter)); Filter.IgnoredContentDescriptors.Add(2); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(app, Filter)); } [TestMethod] public void CanFilterAppAppByParentContentDescriptor() { var demo = new FilterableApp(KeyValue.LoadAsText("demo_with_fewer_content_descriptors_than_parent.txt")); var demoParent = KeyValue.LoadAsText("demo_with_fewer_content_descriptors_than_parent_parent.txt"); Filter.IgnoredContentDescriptors.Add(2); Assert.IsFalse(PackageFilter.IsAppIgnoredByFilter(demo, Filter)); demo.AddParent(demoParent); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(demo, Filter)); } [TestMethod] public void CanFilterAppByID() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_type.txt")); Assert.IsFalse(PackageFilter.IsAppIgnoredByFilter(app, Filter)); Filter.IgnoredAppIDs.Add(440); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(app, Filter)); } [TestMethod] public void CanFilterAppByParentID() { var demo = new FilterableApp(KeyValue.LoadAsText("demo_with_fewer_tags_than_parent.txt")); var demoParent = KeyValue.LoadAsText("demo_with_fewer_tags_than_parent_parent.txt"); Filter.IgnoredAppIDs.Add(400); Assert.IsFalse(PackageFilter.IsAppIgnoredByFilter(demo, Filter)); demo.AddParent(demoParent); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(demo, Filter)); } [TestMethod] public void CanFilterAppByPlaytest() { var playtest = new FilterableApp(KeyValue.LoadAsText("playtest_with_no_waitlist.txt")); playtest.AddParent(KeyValue.LoadAsText("playtest_with_no_waitlist_parent.txt")); Assert.IsFalse(PackageFilter.IsPlaytestWantedByFilter(playtest, Filter)); Filter.PlaytestMode = EPlaytestMode.Unlimited; Assert.IsTrue(PackageFilter.IsPlaytestWantedByFilter(playtest, Filter)); } [TestMethod] public void CanFilterPackageByFreeWeekend() { var package = new FilterablePackage(KeyValue.LoadAsText("package_with_free_weekend.txt")); Assert.IsFalse(PackageFilter.IsPackageIgnoredByFilter(package, Filter)); Filter.IgnoreFreeWeekends = true; Assert.IsTrue(PackageFilter.IsPackageIgnoredByFilter(package, Filter)); } [TestMethod] public void CanFilterPackageByContents() { var package = new FilterablePackage(KeyValue.LoadAsText("package_with_single_app.txt")); var package_app_1 = KeyValue.LoadAsText("package_with_single_app_app_1.txt"); Filter.Types.Add("GaMe"); Filter.IgnoredTypes.Add("GaMe"); Assert.IsFalse(PackageFilter.IsPackageWantedByFilter(package, Filter)); Assert.IsFalse(PackageFilter.IsPackageIgnoredByFilter(package, Filter)); package.AddPackageContents(new List() { package_app_1 }); Assert.IsTrue(PackageFilter.IsPackageWantedByFilter(package, Filter)); Assert.IsTrue(PackageFilter.IsPackageIgnoredByFilter(package, Filter)); } [TestMethod] public void CanFilterByStoreData() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_type.txt")); Filter.ImportStoreFilters = true; Assert.IsFalse(PackageFilter.IsAppIgnoredByFilter(app, Filter)); PackageFilter.UpdateUserDetails(File.ReadAllText("userdata_with_ignored_apps.json").ToJsonObject(), File.ReadAllText("userinfo_empty.json").ToJsonObject()); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(app, Filter)); PackageFilter.UpdateUserDetails(File.ReadAllText("userdata_with_excluded_tags.json").ToJsonObject(), File.ReadAllText("userinfo_empty.json").ToJsonObject()); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(app, Filter)); PackageFilter.UpdateUserDetails(File.ReadAllText("userdata_with_excluded_content_descriptors.json").ToJsonObject(), File.ReadAllText("userinfo_empty.json").ToJsonObject()); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(app, Filter)); } [TestMethod] public void CanUseMultipleFilters() { var app = new FilterableApp(KeyValue.LoadAsText("app_with_type.txt")); var filterA = new FilterConfig(); filterA.Types.Add("Foo"); filterA.IgnoredTypes.Add("Game"); var filterB = new FilterConfig(); filterB.Types.Add("Game"); var packageFilter = new PackageFilter(new BotCache(), new List() { filterA, filterB }); packageFilter.UpdateUserDetails(File.ReadAllText("userdata_empty.json").ToJsonObject(), File.ReadAllText("userinfo_empty.json").ToJsonObject()); Assert.IsFalse(packageFilter.IsAppWantedByFilter(app, filterA)); Assert.IsTrue(packageFilter.IsAppIgnoredByFilter(app, filterA)); Assert.IsTrue(packageFilter.IsAppWantedByFilter(app, filterB)); Assert.IsFalse(packageFilter.IsAppIgnoredByFilter(app, filterB)); Assert.IsTrue(packageFilter.IsWantedApp(app)); } [TestMethod] public void CanFilterAppBySystem() { var deck_verified_app = new FilterableApp(KeyValue.LoadAsText("app_with_deck_verified.txt")); var deck_playable_app = new FilterableApp(KeyValue.LoadAsText("app_with_deck_playable.txt")); var deck_unsuppored_app = new FilterableApp(KeyValue.LoadAsText("app_with_deck_unsupported.txt")); var deck_unknown_app = new FilterableApp(KeyValue.LoadAsText("app_with_deck_unknown.txt")); Assert.AreEqual(deck_verified_app.DeckCompatibility, (uint) 3); Assert.AreEqual(deck_playable_app.DeckCompatibility, (uint) 2); Assert.AreEqual(deck_unsuppored_app.DeckCompatibility, (uint) 1); Assert.AreEqual(deck_unknown_app.DeckCompatibility, (uint) 0); Filter.Systems.Add("DeckVerified"); Filter.Systems.Add("DeckPlayable"); Filter.Systems.Add("DeckUnsupported"); Filter.Systems.Add("DeckUnknown"); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(deck_verified_app, Filter)); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(deck_playable_app, Filter)); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(deck_unsuppored_app, Filter)); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(deck_unknown_app, Filter)); Filter.Systems.Remove("DeckVerified"); Filter.Systems.Remove("DeckPlayable"); Filter.Systems.Remove("DeckUnsupported"); Filter.Systems.Remove("DeckUnknown"); var windows_app = new FilterableApp(KeyValue.LoadAsText("app_with_type.txt")); Filter.Systems.Add("Foo"); Assert.IsFalse(PackageFilter.IsAppWantedByFilter(windows_app, Filter)); Filter.Systems.Add("WiNdOwS"); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(windows_app, Filter)); } [TestMethod] public void CanFilterPackageByNoCost() { var free_package = new FilterablePackage(KeyValue.LoadAsText("package_which_is_free.txt")); var no_cost_package = new FilterablePackage(KeyValue.LoadAsText("package_which_is_no_cost.txt")); Assert.IsFalse(PackageFilter.FilterOnlyAllowsPackages(Filter)); Filter.NoCostOnly = true; Assert.IsTrue(PackageFilter.IsPackageIgnoredByFilter(free_package, Filter)); Assert.IsFalse(PackageFilter.IsPackageIgnoredByFilter(no_cost_package, Filter)); Assert.IsTrue(PackageFilter.FilterOnlyAllowsPackages(Filter)); } [TestMethod] public void CanFilterByWishlist() { var app = new FilterableApp(KeyValue.LoadAsText("app_which_is_free.txt")); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.WishlistOnly = true; Assert.IsFalse(PackageFilter.IsAppWantedByFilter(app, Filter)); PackageFilter.UpdateUserDetails(File.ReadAllText("userdata_with_wishlist_apps.json").ToJsonObject(), File.ReadAllText("userinfo_empty.json").ToJsonObject()); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); PackageFilter.UpdateUserDetails(File.ReadAllText("userdata_with_followed_apps.json").ToJsonObject(), File.ReadAllText("userinfo_empty.json").ToJsonObject()); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); } [TestMethod] public void CanFilterByReleaseDate() { var app = new FilterableApp(KeyValue.LoadAsText("app_which_is_free.txt")); Filter.MaxDaysOld = 0; Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.MaxDaysOld = 1; Assert.IsFalse(PackageFilter.IsAppWantedByFilter(app, Filter)); Filter.MaxDaysOld = 20000; Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, Filter)); } [TestMethod] public void CanFilterDemos() { var defaultFilter = new FilterConfig(); var app = new FilterableApp(KeyValue.LoadAsText("demo_which_will_be_removed.txt")); Assert.IsTrue(PackageFilter.IsAppIgnoredByFilter(app, defaultFilter)); defaultFilter.IgnoredTypes.Remove("Demo"); Assert.IsTrue(PackageFilter.IsAppWantedByFilter(app, defaultFilter)); Assert.IsFalse(PackageFilter.IsAppIgnoredByFilter(app, defaultFilter)); } } ================================================ FILE: FreePackages.Tests/FreePackages.Tests.csproj ================================================ true Always ================================================ FILE: FreePackages.Tests/Packages.cs ================================================ using System; using System.IO; using System.Threading.Tasks; using ArchiSteamFarm.Helpers.Json; using Microsoft.VisualStudio.TestTools.UnitTesting; using SteamKit2; namespace FreePackages.Tests; [DeploymentItem("TestData")] [TestClass] public sealed class Packages : IDisposable { private BotCache? BotCache; private PackageFilter? PackageFilter; private Steam.UserData? UserData; private Steam.UserInfo? UserInfo; [TestInitialize] public async Task InitializePackageFilter () { Dispose(); if (UserData == null) { FileStream fileStream = File.Open("userdata_empty.json", FileMode.Open); await using (fileStream.ConfigureAwait(false)) { UserData = await fileStream.ToJsonObject().ConfigureAwait(false); } if (UserData == null) { throw new InvalidOperationException(nameof(UserData)); } } if (UserInfo == null) { FileStream fileStream = File.Open("userinfo_empty.json", FileMode.Open); await using (fileStream.ConfigureAwait(false)) { UserInfo = await fileStream.ToJsonObject().ConfigureAwait(false); } if (UserInfo == null) { throw new InvalidOperationException(nameof(UserInfo)); } } BotCache = new BotCache(); PackageFilter = new PackageFilter(BotCache, []); PackageFilter.UpdateUserDetails(UserData, UserInfo); PackageFilter.Country = "FOO"; } [TestCleanup] public void CleanupPackageFilter() { if (UserData == null) { throw new InvalidOperationException(nameof(UserData)); } if (UserInfo == null) { throw new InvalidOperationException(nameof(UserInfo)); } if (PackageFilter == null) { throw new InvalidOperationException(nameof(PackageFilter)); } PackageFilter.UpdateUserDetails(UserData, UserInfo); PackageFilter.Country = "FOO"; } [TestMethod] public void CanDetectFreePackage() { KeyValue? kv = KeyValue.LoadAsText("package_which_is_free.txt"); if (kv == null) { throw new InvalidOperationException(nameof(kv)); } FilterablePackage package = new(kv); Assert.IsTrue(package.IsFree()); } [TestMethod] public void CanDetectPackageDemoState() { KeyValue? kv = KeyValue.LoadAsText("package_with_deactivated_demo.txt"); if (kv == null) { throw new InvalidOperationException(nameof(kv)); } FilterablePackage package = new(kv); Assert.IsTrue(package.DeactivatedDemo); } [TestMethod] public void CanDetectPackageTimeRestrictions() { KeyValue? kv = KeyValue.LoadAsText("package_with_timed_activation.txt"); if (kv == null) { throw new InvalidOperationException(nameof(kv)); } FilterablePackage package = new(kv); Assert.IsGreaterThan(0, package.ExpiryTime); Assert.IsGreaterThan(0, package.StartTime); } [TestMethod] public void CanDetectPackageDisallowedApp() { KeyValue? kv = KeyValue.LoadAsText("package_with_disallowed_app.txt"); if (kv == null) { throw new InvalidOperationException(nameof(kv)); } FilterablePackage package = new(kv); Assert.IsGreaterThan(0, package.DontGrantIfAppIDOwned); } [TestMethod] public void CanDetectPackageRestrictedCountry() { KeyValue? kv = KeyValue.LoadAsText("package_with_restricted_countries.txt"); if (kv == null) { throw new InvalidOperationException(nameof(kv)); } FilterablePackage package = new(kv); Assert.IsTrue(package.OnlyAllowRestrictedCountries); Assert.IsNotNull(package.RestrictedCountries); Assert.Contains("DE", package.RestrictedCountries); } [TestMethod] public void CanDetectPackagePurchaseRestrictedCountry() { KeyValue? kv = KeyValue.LoadAsText("package_with_purchase_restricted_countries.txt"); if (kv == null) { throw new InvalidOperationException(nameof(kv)); } FilterablePackage package = new(kv); Assert.IsTrue(package.AllowPurchaseFromRestrictedCountries); Assert.IsNotNull(package.PurchaseRestrictedCountries); Assert.Contains("US", package.PurchaseRestrictedCountries); } public void Dispose() => BotCache?.Dispose(); } ================================================ FILE: FreePackages.Tests/TestData/app_which_is_free.txt ================================================ "appinfo" { "appid" "440" "common" { "icon" "e3f595a92552da3d664ad00277fad2107345f743" "logo" "07385eb55b5ba974aebbe74d3c99626bda7920b8" "logo_small" "07385eb55b5ba974aebbe74d3c99626bda7920b8_thumb" "metacritic_url" "pc/teamfortress2" "name" "Team Fortress 2" "clienticon" "033bdd91842b6aca0633ee1e5f3e6b82f2e8962f" "clienttga" "689dd46bd63e3e460cdd86d936d5de409a291633" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "portuguese" "1" "polish" "1" "danish" "1" "dutch" "1" "finnish" "1" "norwegian" "1" "swedish" "1" "hungarian" "1" "czech" "1" "romanian" "1" "turkish" "1" "brazilian" "1" "bulgarian" "1" "greek" "1" "ukrainian" "1" } "clienticns" "b0780e91df4308b1ad57cc93d6032b4f0e2930cc" "linuxclienticon" "b2659c540592221fcd7675d76a0171f4b3782c1c" "oslist" "windows,macos,linux" "type" "game" "content_descriptors" { "0" "2" "1" "5" } "has_adult_content" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "2" "test_timestamp" "1648771200" "tested_build_id" "7850740" "tests" { "0" { "display" "3" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigNotFullyFunctional" } "1" { "display" "3" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsDoNotMatchDeckDevice" } "2" { "display" "3" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsNotLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } "4" { "display" "1" "token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "1" "small_text" "1" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "market_presence" "1" "metacritic_name" "Team Fortress 2" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "26" "height_pct" "37" } } "store_asset_mtime" "1682961190" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "37" "genres" { "0" "1" "1" "37" } "category" { "category_8" "1" "category_12" "1" "category_13" "1" "category_14" "1" "category_15" "1" "category_17" "1" "category_18" "1" "category_22" "1" "category_27" "1" "category_1" "1" "category_29" "1" "category_30" "1" "category_33" "1" "category_35" "1" "category_45" "1" "category_46" "1" "category_41" "1" "category_42" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "danish" { "supported" "true" } "dutch" { "supported" "true" } "finnish" { "supported" "true" } "french" { "supported" "true" } "german" { "supported" "true" } "italian" { "supported" "true" } "japanese" { "supported" "true" } "norwegian" { "supported" "true" } "polish" { "supported" "true" } "portuguese" { "supported" "true" } "russian" { "supported" "true" } "schinese" { "supported" "true" } "spanish" { "supported" "true" } "swedish" { "supported" "true" } "tchinese" { "supported" "true" } "koreana" { "supported" "true" } "czech" { "supported" "true" } "hungarian" { "supported" "true" } "brazilian" { "supported" "true" } "turkish" { "supported" "true" } "greek" { "supported" "true" } "bulgarian" { "supported" "true" } "romanian" { "supported" "true" } "thai" { "supported" "true" } "ukrainian" { "supported" "true" } } "original_release_date" "1191999600" "steam_release_date" "1191999600" "metacritic_score" "92" "metacritic_fullurl" "https://www.metacritic.com/game/pc/team-fortress-2?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "workshop_visible" "1" "community_hub_visible" "1" "gameid" "440" "exfgls" "1" "store_tags" { "0" "113" "1" "620519" "2" "3859" "3" "1663" "4" "1774" "5" "19" "6" "4155" "7" "5711" "8" "4136" "9" "3839" "10" "3843" "11" "3878" "12" "4195" "13" "4202" "14" "1685" "15" "1719" "16" "5752" "17" "1708" "18" "4562" "19" "1702" } "review_score" "8" "review_percentage" "93" } "extended" { "developer" "Valve" "developer_url" "http://www.valvesoftware.com/" "gamedir" "tf" "gamemanualurl" "http://store.steampowered.com/manual/440/" "homepage" "http://www.teamfortress.com/" "icon" "steam/games/icon_tf2" "icon2" "steam/games/icon_tf2" "isfreeapp" "1" "languages" "english,german,french,spanish,russian" "loadallbeforelaunch" "1" "minclientversion" "1393366296" "noservers" "0" "primarycache" "441" "primarycache_linux" "452" "requiressse" "1" "serverbrowsername" "Team Fortress 2" "sourcegame" "1" "state" "eStateAvailable" "vacmacmodulecache" "160" "vacmodulecache" "202" "vacmodulefilename" "sourceinit.dat" "validoslist" "windows,macos,linux" "deckresolutionoverride" "Native" "publisher" "Valve" "aliases" "tf2" "listofdlc" "456,457,458,459,217221,217222" } "config" { "verifyupdates" "1" "signedfiles" { "hl2.exe" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "client.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "engine.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "server.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "prec.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100BA240326DFC66BFDC28782BD644FC3BAB284F4A07554E17A8DA6CCA0B4AFBFC9BAB2938846D7595BC7A560FF6215C670C74EEB9D118DE9FC0E8ED0A18DD24D8DBAE8B950C6C062BA5DEFDECB967745C53433839EB7B1A6CA340D0E48273E18AB87106FBD22AC32B2776092E924D3C414DC3328735E984E4A1B1B4E72B0F41017020111" "sourcevr.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" } "usemms" "" "systemprofile" "1" "checkforupdatesbeforelaunch" "1" "installdir" "Team Fortress 2" "launch" { "0" { "executable" "hl2.exe" "arguments" "-steam -game tf" "vacmodulefilename" "resource\\sourceinit.dat" "config" { "oslist" "windows" } } "1" { "executable" "hl2_osx" "arguments" "-steam -game tf" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game tf -steam" "config" { "oslist" "linux" } } } "vrcompositorsupport" "0" "steamcontrollertemplateindex" "1" "steamcontrollerconfigdetails" { "1172518660" { "controller_type" "controller_steamcontroller_gordon" "enabled_branches" "default" } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2125279140" { "controller_type" "controller_mobile_touch" "enabled_branches" "default" "use_action_block" "false" } } "uselaunchcommandline" "1" } "depots" { "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish,brazilian,bulgarian,greek,ukrainian" "workshopdepot" "440" "hasdepotsindlc" "1" "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "441" { "systemdefined" "1" "manifests" { "public" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "pre_07_25_23_demos" { "gid" "2023276112389133529" "size" "26125661395" "download" "11978937568" } "pre_jungleinferno_demos" { "gid" "7707612755534478338" "size" "18855865767" "download" "7735778976" } "pre_smissmas_2022_demos" { "gid" "314077012305764573" "size" "24749544116" "download" "10985537760" } "prerelease" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "vscript_test" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } } } "440" { "systemdefined" "1" "manifests" { "public" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_07_25_23_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_jungleinferno_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_smissmas_2022_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "prerelease" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "vscript_test" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } } } "232251" { "config" { "oslist" "windows" } "systemdefined" "1" "manifests" { "public" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "pre_07_25_23_demos" { "gid" "1093030316367308660" "size" "585005817" "download" "467050320" } "pre_jungleinferno_demos" { "gid" "2174530283606128348" "size" "562700702" "download" "445092848" } "pre_smissmas_2022_demos" { "gid" "8319568912250137931" "size" "584144460" "download" "466735776" } "prerelease" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "vscript_test" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } } } "232252" { "config" { "oslist" "macos" } "systemdefined" "1" "manifests" { "public" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "pre_07_25_23_demos" { "gid" "4845664414220472500" "size" "510895405" "download" "391271824" } "pre_jungleinferno_demos" { "gid" "8624037758464932425" "size" "485750759" "download" "370815712" } "pre_smissmas_2022_demos" { "gid" "2262584799279223344" "size" "509176417" "download" "390890000" } "prerelease" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "vscript_test" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } } } "232253" { "config" { "oslist" "linux" } "systemdefined" "1" "manifests" { "public" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "pre_07_25_23_demos" { "gid" "8481848623592128300" "size" "562481508" "download" "446661232" } "pre_jungleinferno_demos" { "gid" "3512165917877440762" "size" "536705326" "download" "424011840" } "pre_smissmas_2022_demos" { "gid" "2039032268643181297" "size" "560994616" "download" "446299360" } "prerelease" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "vscript_test" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } } } "444" { "config" { "lowviolence" "1" } "manifests" { "public" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_07_25_23_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_jungleinferno_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_smissmas_2022_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "prerelease" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "vscript_test" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } } } "445" { "config" { "language" "russian" } "manifests" { "public" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_07_25_23_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_jungleinferno_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_smissmas_2022_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "prerelease" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "vscript_test" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } } } "446" { "config" { "language" "german" } "manifests" { "public" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_07_25_23_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_jungleinferno_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_smissmas_2022_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "prerelease" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "vscript_test" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } } } "448" { "config" { "language" "french" } "manifests" { "public" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_07_25_23_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_jungleinferno_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_smissmas_2022_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "prerelease" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "vscript_test" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } } } "449" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_07_25_23_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_jungleinferno_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_smissmas_2022_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "prerelease" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "vscript_test" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } } } "branches" { "public" { "buildid" "12558449" "timeupdated" "1698450187" } "pre_07_25_23_demos" { "buildid" "11753452" "description" "Pre-07-25-23 Demo Playback" "timeupdated" "1690416239" } "pre_jungleinferno_demos" { "buildid" "2119861" "timeupdated" "1690827460" } "pre_smissmas_2022_demos" { "buildid" "9872056" "description" "Pre-Smissmas 2022 Demo Playback" "timeupdated" "1690827525" } "prerelease" { "buildid" "12558449" "timeupdated" "1698450253" } "vscript_test" { "buildid" "12558449" "description" "VScript beta. Cannot connect to public servers or matchmaking." "timeupdated" "1698450262" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "1000" "hidecloudui" "0" } "sysreqs" { "macos" { "supported" "1" "wants_fast_gpu" "1" "intel900" "warn" "intelx3100" "warn" "8086" { "27a6" "warn" "2a02" "warn" } "10de" { "009d" "deny" "0391" "deny" "0393" "deny" "0395" "deny" } } "macos104" { "supported" "0" "os_min" "macos1058" } "macos105" { "supported" "0" "os_min" "macos1058" } "macos106" { "supported" "0" "os_min" "macos1063" } } "localization" { "richpresence" { "english" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Main Menu" "#tf_richpresence_state_searchinggeneric" "Searching for a Match" "#tf_richpresence_state_searchingmatchgroup" "Searching - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In Match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Joining Match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Joining {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Joining Community Server" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Special Event" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "bulgarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Главно меню" "#tf_richpresence_state_searchinggeneric" "Търсене за мач" "#tf_richpresence_state_searchingmatchgroup" "Търсене — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "В мач — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Присъединяване към мач" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Присъединяване — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Общност — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Присъединяване към обществен сървър" "#tf_richpresence_matchgroup_competitive6v6" "Съревнователна" "#tf_richpresence_matchgroup_casual" "Неангажираща" "#tf_richpresence_matchgroup_specialevent" "Специално събитие" "#tf_richpresence_matchgroup_mannup" "Щателни Манневри" "#tf_richpresence_matchgroup_bootcamp" "Тренировъчен лагер" } } "danish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmenu" "#tf_richpresence_state_searchinggeneric" "Søger efter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søger - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I en kamp - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Slutter til en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Slutter til {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Fællesskab - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Slutter til en fællesskabsserver" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Særlig begivenhed" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Træning" } } "french" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Cherche un match" "#tf_richpresence_state_searchingmatchgroup" "Recherche - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Dans un match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Rejoint un match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Rejoint un match {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Serveur de la communauté - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Rejoint un serveur de la communauté" "#tf_richpresence_matchgroup_competitive6v6" "Compétitif" "#tf_richpresence_matchgroup_casual" "Occasionnel" "#tf_richpresence_matchgroup_specialevent" "Événement spécial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Camp d'entraînement" } } "german" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hauptmenü" "#tf_richpresence_state_searchinggeneric" "Suche nach Spiel läuft" "#tf_richpresence_state_searchingmatchgroup" "Suche läuft – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Im Spiel – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Spielbeitritt erfolgt" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Sie treten {#TF_RichPresence_MatchGroup_%matchgrouploc%} bei" "#tf_richpresence_state_playingcommunity" "Community – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Verbindung zum Communityserver erfolgt" "#tf_richpresence_matchgroup_competitive6v6" "Wettkampf" "#tf_richpresence_matchgroup_casual" "Gelegenheitsspiel" "#tf_richpresence_matchgroup_specialevent" "Sonderevent" "#tf_richpresence_matchgroup_mannup" "Mann-Up" "#tf_richpresence_matchgroup_bootcamp" "Training" } } "hungarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Főmenüben" "#tf_richpresence_state_searchinggeneric" "Meccset keres" "#tf_richpresence_state_searchingmatchgroup" "Keres - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Meccsen - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Meccshez csatlakozik" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Csatlakozik: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Közösség - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Közösségi szerverhez csatlakozik" "#tf_richpresence_matchgroup_competitive6v6" "Versengő" "#tf_richpresence_matchgroup_casual" "Könnyed" "#tf_richpresence_matchgroup_specialevent" "Különleges esemény" "#tf_richpresence_matchgroup_mannup" "„Mannj rá”" "#tf_richpresence_matchgroup_bootcamp" "Kiképzés" } } "italian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principale" "#tf_richpresence_state_searchinggeneric" "In cerca di una partita" "#tf_richpresence_state_searchingmatchgroup" "Ricerca in corso - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In partita - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Unione a una partita" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Unione a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunità - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Unione a un server della Comunità" "#tf_richpresence_matchgroup_competitive6v6" "Competitiva" "#tf_richpresence_matchgroup_casual" "Leggera" "#tf_richpresence_matchgroup_specialevent" "Evento speciale" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Addestramento" } } "polish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu główne" "#tf_richpresence_state_searchinggeneric" "Wyszukiwanie gry" "#tf_richpresence_state_searchingmatchgroup" "Wyszukiwanie - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "W grze - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Dołączanie do gry" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Dołączanie do trybu „{#TF_RichPresence_MatchGroup_%matchgrouploc%}”" "#tf_richpresence_state_playingcommunity" "Gra społeczności - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Dołączanie do serwera społeczności" "#tf_richpresence_matchgroup_competitive6v6" "Rankingowy" "#tf_richpresence_matchgroup_casual" "Swobodny" "#tf_richpresence_matchgroup_specialevent" "Wydarzenie specjalne" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Trening" } } "russian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "В главном меню" "#tf_richpresence_state_searchinggeneric" "Ищет игру" "#tf_richpresence_state_searchingmatchgroup" "Поиск ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playinggeneric" "В игре: %currentmap%" "#tf_richpresence_state_loadinggeneric" "Заходит на сервер" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%}: %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Заходит на сервер ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playingcommunity" "Сервер сообщества: %currentmap%" "#tf_richpresence_state_loadingcommunity" "Заходит на сервер сообщества" "#tf_richpresence_matchgroup_competitive6v6" "Соревновательная игра" "#tf_richpresence_matchgroup_casual" "Обычная игра" "#tf_richpresence_matchgroup_specialevent" "Праздничный режим" "#tf_richpresence_matchgroup_mannup" "МАННёвры" "#tf_richpresence_matchgroup_bootcamp" "Учебка" } } "spanish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } "thai" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "เมนูหลัก" "#tf_richpresence_state_searchinggeneric" "กำลังค้นหาแมตช์" "#tf_richpresence_state_searchingmatchgroup" "กำลังค้นหา - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "อยู่ในแมตช์ - %currentmap%" "#tf_richpresence_state_loadinggeneric" "กำลังเข้าร่วมแมตช์" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "กำลังเข้าร่วม {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "ชุมชน - %currentmap%" "#tf_richpresence_state_loadingcommunity" "กำลังเข้าร่วมเซิร์ฟเวอร์ชุมชน" "#tf_richpresence_matchgroup_competitive6v6" "การแข่งขัน" "#tf_richpresence_matchgroup_casual" "แคชชวล" "#tf_richpresence_matchgroup_specialevent" "กิจกรรมพิเศษ" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "บูทแคมป์" } } "turkish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Ana Menü" "#tf_richpresence_state_searchinggeneric" "Maç Aranıyor" "#tf_richpresence_state_searchingmatchgroup" "Aranıyor - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Maçta - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Maça Katılınıyor" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Katılınıyor {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Topluluk - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Topluluk Sunucusuna Katılınıyor" "#tf_richpresence_matchgroup_competitive6v6" "Rekabetçi" "#tf_richpresence_matchgroup_casual" "Basit Eğlence" "#tf_richpresence_matchgroup_specialevent" "Özel Etkinlik" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Eğitim" } } "brazilian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Buscando partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Em partida — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Entrando em partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Entrando em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor da comunidade — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Entrando em servidor da comunidade" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Treino (MvM)" } } "czech" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hlavní menu" "#tf_richpresence_state_searchinggeneric" "Vyhledávání zápasu" "#tf_richpresence_state_searchingmatchgroup" "Vyhledávání – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Zápas – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Připojování do zápasu" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Připojování – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Komunitní server – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Připojování ke komunitnímu serveru" "#tf_richpresence_matchgroup_competitive6v6" "Kompetitivní" "#tf_richpresence_matchgroup_casual" "Nenáročný" "#tf_richpresence_matchgroup_specialevent" "Speciální událost" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "finnish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Päävalikko" "#tf_richpresence_state_searchinggeneric" "Etsii peliä" "#tf_richpresence_state_searchingmatchgroup" "Etsii - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Pelissä - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Liittymässä peliin" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Liittyy {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Yhteisö - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Liittymässä yhteisöpalvelimelle" "#tf_richpresence_matchgroup_competitive6v6" "Kilpailullinen" "#tf_richpresence_matchgroup_casual" "Tavallinen" "#tf_richpresence_matchgroup_specialevent" "Erikoistapahtuma" "#tf_richpresence_matchgroup_mannup" "Miehisty-tila" "#tf_richpresence_matchgroup_bootcamp" "Harjoitusleiri" } } "portuguese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "A procurar partida" "#tf_richpresence_state_searchingmatchgroup" "A procurar - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Numa partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "A entrar numa partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "A entrar em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor comunitário - %currentmap%" "#tf_richpresence_state_loadingcommunity" "A entrar num servidor comunitário" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Iniciação" } } "ukrainian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Головне меню" "#tf_richpresence_state_searchinggeneric" "Пошук матчу" "#tf_richpresence_state_searchingmatchgroup" "Пошук — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "У матчі — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Приєднується до матчу" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Приєднується до {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Спільнота — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Приєднується до сервера спільноти" "#tf_richpresence_matchgroup_competitive6v6" "Змагальний режим" "#tf_richpresence_matchgroup_casual" "Звичайний режим" "#tf_richpresence_matchgroup_specialevent" "Особлива подія" "#tf_richpresence_matchgroup_mannup" "«Манневри»" "#tf_richpresence_matchgroup_bootcamp" "«Тренувальний табір»" } } "swedish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Huvudmeny" "#tf_richpresence_state_searchinggeneric" "Söker efter en match" "#tf_richpresence_state_searchingmatchgroup" "Söker - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Går med i match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Går med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Gemenskap - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Går med i gemenskapserver" "#tf_richpresence_matchgroup_competitive6v6" "Tävlingsinriktat" "#tf_richpresence_matchgroup_casual" "Vanligt" "#tf_richpresence_matchgroup_specialevent" "Specialevent" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Träningsläger" } } "greek" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Κύριο μενού" "#tf_richpresence_state_searchinggeneric" "Αναζήτηση αγώνα" "#tf_richpresence_state_searchingmatchgroup" "Αναζήτηση - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Σε αγώνα - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Σύνδεση σε αγώνα" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Σύνδεση σε {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Κοινότητα - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Σύνδεση σε διακομιστή κοινότητας" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Ειδικό συμβάν" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "norwegian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmeny" "#tf_richpresence_state_searchinggeneric" "Søker etter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søker – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I kamp – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Blir med i en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Blir med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Samfunn – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Blir med på samfunnstjener" "#tf_richpresence_matchgroup_competitive6v6" "Konkurransespilling" "#tf_richpresence_matchgroup_casual" "Avslappet" "#tf_richpresence_matchgroup_specialevent" "Spesielt arrangement" "#tf_richpresence_matchgroup_mannup" "Mann deg opp" "#tf_richpresence_matchgroup_bootcamp" "Treningsleir" } } "schinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主菜单" "#tf_richpresence_state_searchinggeneric" "正在搜索比赛" "#tf_richpresence_state_searchingmatchgroup" "正在搜索 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比赛中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "正在加入比赛" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "正在加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "社区服务器 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "正在加入社区服务器" "#tf_richpresence_matchgroup_competitive6v6" "竞技模式" "#tf_richpresence_matchgroup_casual" "休闲模式" "#tf_richpresence_matchgroup_specialevent" "特别活动" "#tf_richpresence_matchgroup_mannup" "曼恩奇现" "#tf_richpresence_matchgroup_bootcamp" "新兵训练营" } } "dutch" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hoofdmenu" "#tf_richpresence_state_searchinggeneric" "Naar een spel aan het zoeken" "#tf_richpresence_state_searchingmatchgroup" "Zoeken - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In spel - %currentmap%" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_matchgroup_competitive6v6" "Competitief" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Speciaal evenement" "#tf_richpresence_matchgroup_mannup" "Vermann je" "#tf_richpresence_matchgroup_bootcamp" "Trainingskamp" } } "japanese" { "tokens" { "#tf_richpresence_state_mainmenu" "メインメニュー" "#tf_richpresence_state_loadinggeneric" "マッチに参加しています" "#tf_richpresence_matchgroup_competitive6v6" "対戦" "#tf_richpresence_matchgroup_casual" "カジュアル" "#tf_richpresence_matchgroup_specialevent" "スペシャルイベント" "#tf_richpresence_matchgroup_bootcamp" "ブート・キャンプ" } } "tchinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主選單" "#tf_richpresence_state_searchinggeneric" "搜尋比賽中" "#tf_richpresence_state_searchingmatchgroup" "搜尋中 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比賽中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "加入比賽中" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%} 中" "#tf_richpresence_state_playingcommunity" "社群 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "加入社群伺服器中" "#tf_richpresence_matchgroup_competitive6v6" "競技模式" "#tf_richpresence_matchgroup_casual" "休閒模式" "#tf_richpresence_matchgroup_specialevent" "特殊活動" "#tf_richpresence_matchgroup_mannup" "曼恩對決機器曼起來模式" "#tf_richpresence_matchgroup_bootcamp" "曼恩對決機器訓練營" } } "vietnamese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Đại sảnh" "#tf_richpresence_state_searchinggeneric" "Đang tìm trận đấu" "#tf_richpresence_state_searchingmatchgroup" "Đang tìm - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Đang chơi - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Đang tham gia trận" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Đang tham gia {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Cộng đồng - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Đang tham gia máy chủ cộng đồng" "#tf_richpresence_matchgroup_competitive6v6" "Tranh đấu" "#tf_richpresence_matchgroup_casual" "Đơn giản" "#tf_richpresence_matchgroup_specialevent" "Sự kiện đặc biệt" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "latam" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_categories.txt ================================================ "appinfo" { "appid" "440" "common" { "icon" "e3f595a92552da3d664ad00277fad2107345f743" "logo" "07385eb55b5ba974aebbe74d3c99626bda7920b8" "logo_small" "07385eb55b5ba974aebbe74d3c99626bda7920b8_thumb" "metacritic_url" "pc/teamfortress2" "name" "Team Fortress 2" "clienticon" "033bdd91842b6aca0633ee1e5f3e6b82f2e8962f" "clienttga" "689dd46bd63e3e460cdd86d936d5de409a291633" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "portuguese" "1" "polish" "1" "danish" "1" "dutch" "1" "finnish" "1" "norwegian" "1" "swedish" "1" "hungarian" "1" "czech" "1" "romanian" "1" "turkish" "1" "brazilian" "1" "bulgarian" "1" "greek" "1" "ukrainian" "1" } "clienticns" "b0780e91df4308b1ad57cc93d6032b4f0e2930cc" "linuxclienticon" "b2659c540592221fcd7675d76a0171f4b3782c1c" "oslist" "windows,macos,linux" "type" "game" "content_descriptors" { "0" "2" "1" "5" } "has_adult_content" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "2" "test_timestamp" "1648771200" "tested_build_id" "7850740" "tests" { "0" { "display" "3" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigNotFullyFunctional" } "1" { "display" "3" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsDoNotMatchDeckDevice" } "2" { "display" "3" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsNotLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } "4" { "display" "1" "token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "1" "small_text" "1" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "market_presence" "1" "metacritic_name" "Team Fortress 2" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "26" "height_pct" "37" } } "store_asset_mtime" "1682961190" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "37" "genres" { "0" "1" "1" "37" } "category" { "category_8" "1" "category_12" "1" "category_13" "1" "category_14" "1" "category_15" "1" "category_17" "1" "category_18" "1" "category_22" "1" "category_27" "1" "category_1" "1" "category_29" "1" "category_30" "1" "category_33" "1" "category_35" "1" "category_45" "1" "category_46" "1" "category_41" "1" "category_42" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "danish" { "supported" "true" } "dutch" { "supported" "true" } "finnish" { "supported" "true" } "french" { "supported" "true" } "german" { "supported" "true" } "italian" { "supported" "true" } "japanese" { "supported" "true" } "norwegian" { "supported" "true" } "polish" { "supported" "true" } "portuguese" { "supported" "true" } "russian" { "supported" "true" } "schinese" { "supported" "true" } "spanish" { "supported" "true" } "swedish" { "supported" "true" } "tchinese" { "supported" "true" } "koreana" { "supported" "true" } "czech" { "supported" "true" } "hungarian" { "supported" "true" } "brazilian" { "supported" "true" } "turkish" { "supported" "true" } "greek" { "supported" "true" } "bulgarian" { "supported" "true" } "romanian" { "supported" "true" } "thai" { "supported" "true" } "ukrainian" { "supported" "true" } } "original_release_date" "1191999600" "steam_release_date" "1191999600" "metacritic_score" "92" "metacritic_fullurl" "https://www.metacritic.com/game/pc/team-fortress-2?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "workshop_visible" "1" "community_hub_visible" "1" "gameid" "440" "exfgls" "1" "store_tags" { "0" "113" "1" "620519" "2" "3859" "3" "1663" "4" "1774" "5" "19" "6" "4155" "7" "5711" "8" "4136" "9" "3839" "10" "3843" "11" "3878" "12" "4195" "13" "4202" "14" "1685" "15" "1719" "16" "5752" "17" "1708" "18" "4562" "19" "1702" } "review_score" "8" "review_percentage" "93" } "extended" { "developer" "Valve" "developer_url" "http://www.valvesoftware.com/" "gamedir" "tf" "gamemanualurl" "http://store.steampowered.com/manual/440/" "homepage" "http://www.teamfortress.com/" "icon" "steam/games/icon_tf2" "icon2" "steam/games/icon_tf2" "isfreeapp" "1" "languages" "english,german,french,spanish,russian" "loadallbeforelaunch" "1" "minclientversion" "1393366296" "noservers" "0" "primarycache" "441" "primarycache_linux" "452" "requiressse" "1" "serverbrowsername" "Team Fortress 2" "sourcegame" "1" "state" "eStateAvailable" "vacmacmodulecache" "160" "vacmodulecache" "202" "vacmodulefilename" "sourceinit.dat" "validoslist" "windows,macos,linux" "deckresolutionoverride" "Native" "publisher" "Valve" "aliases" "tf2" "listofdlc" "456,457,458,459,217221,217222" } "config" { "verifyupdates" "1" "signedfiles" { "hl2.exe" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "client.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "engine.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "server.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "prec.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100BA240326DFC66BFDC28782BD644FC3BAB284F4A07554E17A8DA6CCA0B4AFBFC9BAB2938846D7595BC7A560FF6215C670C74EEB9D118DE9FC0E8ED0A18DD24D8DBAE8B950C6C062BA5DEFDECB967745C53433839EB7B1A6CA340D0E48273E18AB87106FBD22AC32B2776092E924D3C414DC3328735E984E4A1B1B4E72B0F41017020111" "sourcevr.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" } "usemms" "" "systemprofile" "1" "checkforupdatesbeforelaunch" "1" "installdir" "Team Fortress 2" "launch" { "0" { "executable" "hl2.exe" "arguments" "-steam -game tf" "vacmodulefilename" "resource\\sourceinit.dat" "config" { "oslist" "windows" } } "1" { "executable" "hl2_osx" "arguments" "-steam -game tf" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game tf -steam" "config" { "oslist" "linux" } } } "vrcompositorsupport" "0" "steamcontrollertemplateindex" "1" "steamcontrollerconfigdetails" { "1172518660" { "controller_type" "controller_steamcontroller_gordon" "enabled_branches" "default" } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2125279140" { "controller_type" "controller_mobile_touch" "enabled_branches" "default" "use_action_block" "false" } } "uselaunchcommandline" "1" } "depots" { "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish,brazilian,bulgarian,greek,ukrainian" "workshopdepot" "440" "hasdepotsindlc" "1" "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "441" { "systemdefined" "1" "manifests" { "public" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "pre_07_25_23_demos" { "gid" "2023276112389133529" "size" "26125661395" "download" "11978937568" } "pre_jungleinferno_demos" { "gid" "7707612755534478338" "size" "18855865767" "download" "7735778976" } "pre_smissmas_2022_demos" { "gid" "314077012305764573" "size" "24749544116" "download" "10985537760" } "prerelease" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "vscript_test" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } } } "440" { "systemdefined" "1" "manifests" { "public" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_07_25_23_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_jungleinferno_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_smissmas_2022_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "prerelease" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "vscript_test" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } } } "232251" { "config" { "oslist" "windows" } "systemdefined" "1" "manifests" { "public" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "pre_07_25_23_demos" { "gid" "1093030316367308660" "size" "585005817" "download" "467050320" } "pre_jungleinferno_demos" { "gid" "2174530283606128348" "size" "562700702" "download" "445092848" } "pre_smissmas_2022_demos" { "gid" "8319568912250137931" "size" "584144460" "download" "466735776" } "prerelease" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "vscript_test" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } } } "232252" { "config" { "oslist" "macos" } "systemdefined" "1" "manifests" { "public" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "pre_07_25_23_demos" { "gid" "4845664414220472500" "size" "510895405" "download" "391271824" } "pre_jungleinferno_demos" { "gid" "8624037758464932425" "size" "485750759" "download" "370815712" } "pre_smissmas_2022_demos" { "gid" "2262584799279223344" "size" "509176417" "download" "390890000" } "prerelease" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "vscript_test" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } } } "232253" { "config" { "oslist" "linux" } "systemdefined" "1" "manifests" { "public" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "pre_07_25_23_demos" { "gid" "8481848623592128300" "size" "562481508" "download" "446661232" } "pre_jungleinferno_demos" { "gid" "3512165917877440762" "size" "536705326" "download" "424011840" } "pre_smissmas_2022_demos" { "gid" "2039032268643181297" "size" "560994616" "download" "446299360" } "prerelease" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "vscript_test" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } } } "444" { "config" { "lowviolence" "1" } "manifests" { "public" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_07_25_23_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_jungleinferno_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_smissmas_2022_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "prerelease" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "vscript_test" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } } } "445" { "config" { "language" "russian" } "manifests" { "public" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_07_25_23_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_jungleinferno_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_smissmas_2022_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "prerelease" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "vscript_test" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } } } "446" { "config" { "language" "german" } "manifests" { "public" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_07_25_23_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_jungleinferno_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_smissmas_2022_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "prerelease" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "vscript_test" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } } } "448" { "config" { "language" "french" } "manifests" { "public" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_07_25_23_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_jungleinferno_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_smissmas_2022_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "prerelease" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "vscript_test" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } } } "449" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_07_25_23_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_jungleinferno_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_smissmas_2022_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "prerelease" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "vscript_test" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } } } "branches" { "public" { "buildid" "12558449" "timeupdated" "1698450187" } "pre_07_25_23_demos" { "buildid" "11753452" "description" "Pre-07-25-23 Demo Playback" "timeupdated" "1690416239" } "pre_jungleinferno_demos" { "buildid" "2119861" "timeupdated" "1690827460" } "pre_smissmas_2022_demos" { "buildid" "9872056" "description" "Pre-Smissmas 2022 Demo Playback" "timeupdated" "1690827525" } "prerelease" { "buildid" "12558449" "timeupdated" "1698450253" } "vscript_test" { "buildid" "12558449" "description" "VScript beta. Cannot connect to public servers or matchmaking." "timeupdated" "1698450262" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "1000" "hidecloudui" "0" } "sysreqs" { "macos" { "supported" "1" "wants_fast_gpu" "1" "intel900" "warn" "intelx3100" "warn" "8086" { "27a6" "warn" "2a02" "warn" } "10de" { "009d" "deny" "0391" "deny" "0393" "deny" "0395" "deny" } } "macos104" { "supported" "0" "os_min" "macos1058" } "macos105" { "supported" "0" "os_min" "macos1058" } "macos106" { "supported" "0" "os_min" "macos1063" } } "localization" { "richpresence" { "english" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Main Menu" "#tf_richpresence_state_searchinggeneric" "Searching for a Match" "#tf_richpresence_state_searchingmatchgroup" "Searching - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In Match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Joining Match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Joining {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Joining Community Server" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Special Event" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "bulgarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Главно меню" "#tf_richpresence_state_searchinggeneric" "Търсене за мач" "#tf_richpresence_state_searchingmatchgroup" "Търсене — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "В мач — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Присъединяване към мач" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Присъединяване — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Общност — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Присъединяване към обществен сървър" "#tf_richpresence_matchgroup_competitive6v6" "Съревнователна" "#tf_richpresence_matchgroup_casual" "Неангажираща" "#tf_richpresence_matchgroup_specialevent" "Специално събитие" "#tf_richpresence_matchgroup_mannup" "Щателни Манневри" "#tf_richpresence_matchgroup_bootcamp" "Тренировъчен лагер" } } "danish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmenu" "#tf_richpresence_state_searchinggeneric" "Søger efter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søger - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I en kamp - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Slutter til en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Slutter til {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Fællesskab - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Slutter til en fællesskabsserver" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Særlig begivenhed" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Træning" } } "french" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Cherche un match" "#tf_richpresence_state_searchingmatchgroup" "Recherche - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Dans un match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Rejoint un match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Rejoint un match {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Serveur de la communauté - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Rejoint un serveur de la communauté" "#tf_richpresence_matchgroup_competitive6v6" "Compétitif" "#tf_richpresence_matchgroup_casual" "Occasionnel" "#tf_richpresence_matchgroup_specialevent" "Événement spécial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Camp d'entraînement" } } "german" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hauptmenü" "#tf_richpresence_state_searchinggeneric" "Suche nach Spiel läuft" "#tf_richpresence_state_searchingmatchgroup" "Suche läuft – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Im Spiel – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Spielbeitritt erfolgt" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Sie treten {#TF_RichPresence_MatchGroup_%matchgrouploc%} bei" "#tf_richpresence_state_playingcommunity" "Community – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Verbindung zum Communityserver erfolgt" "#tf_richpresence_matchgroup_competitive6v6" "Wettkampf" "#tf_richpresence_matchgroup_casual" "Gelegenheitsspiel" "#tf_richpresence_matchgroup_specialevent" "Sonderevent" "#tf_richpresence_matchgroup_mannup" "Mann-Up" "#tf_richpresence_matchgroup_bootcamp" "Training" } } "hungarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Főmenüben" "#tf_richpresence_state_searchinggeneric" "Meccset keres" "#tf_richpresence_state_searchingmatchgroup" "Keres - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Meccsen - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Meccshez csatlakozik" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Csatlakozik: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Közösség - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Közösségi szerverhez csatlakozik" "#tf_richpresence_matchgroup_competitive6v6" "Versengő" "#tf_richpresence_matchgroup_casual" "Könnyed" "#tf_richpresence_matchgroup_specialevent" "Különleges esemény" "#tf_richpresence_matchgroup_mannup" "„Mannj rá”" "#tf_richpresence_matchgroup_bootcamp" "Kiképzés" } } "italian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principale" "#tf_richpresence_state_searchinggeneric" "In cerca di una partita" "#tf_richpresence_state_searchingmatchgroup" "Ricerca in corso - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In partita - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Unione a una partita" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Unione a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunità - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Unione a un server della Comunità" "#tf_richpresence_matchgroup_competitive6v6" "Competitiva" "#tf_richpresence_matchgroup_casual" "Leggera" "#tf_richpresence_matchgroup_specialevent" "Evento speciale" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Addestramento" } } "polish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu główne" "#tf_richpresence_state_searchinggeneric" "Wyszukiwanie gry" "#tf_richpresence_state_searchingmatchgroup" "Wyszukiwanie - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "W grze - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Dołączanie do gry" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Dołączanie do trybu „{#TF_RichPresence_MatchGroup_%matchgrouploc%}”" "#tf_richpresence_state_playingcommunity" "Gra społeczności - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Dołączanie do serwera społeczności" "#tf_richpresence_matchgroup_competitive6v6" "Rankingowy" "#tf_richpresence_matchgroup_casual" "Swobodny" "#tf_richpresence_matchgroup_specialevent" "Wydarzenie specjalne" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Trening" } } "russian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "В главном меню" "#tf_richpresence_state_searchinggeneric" "Ищет игру" "#tf_richpresence_state_searchingmatchgroup" "Поиск ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playinggeneric" "В игре: %currentmap%" "#tf_richpresence_state_loadinggeneric" "Заходит на сервер" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%}: %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Заходит на сервер ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playingcommunity" "Сервер сообщества: %currentmap%" "#tf_richpresence_state_loadingcommunity" "Заходит на сервер сообщества" "#tf_richpresence_matchgroup_competitive6v6" "Соревновательная игра" "#tf_richpresence_matchgroup_casual" "Обычная игра" "#tf_richpresence_matchgroup_specialevent" "Праздничный режим" "#tf_richpresence_matchgroup_mannup" "МАННёвры" "#tf_richpresence_matchgroup_bootcamp" "Учебка" } } "spanish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } "thai" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "เมนูหลัก" "#tf_richpresence_state_searchinggeneric" "กำลังค้นหาแมตช์" "#tf_richpresence_state_searchingmatchgroup" "กำลังค้นหา - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "อยู่ในแมตช์ - %currentmap%" "#tf_richpresence_state_loadinggeneric" "กำลังเข้าร่วมแมตช์" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "กำลังเข้าร่วม {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "ชุมชน - %currentmap%" "#tf_richpresence_state_loadingcommunity" "กำลังเข้าร่วมเซิร์ฟเวอร์ชุมชน" "#tf_richpresence_matchgroup_competitive6v6" "การแข่งขัน" "#tf_richpresence_matchgroup_casual" "แคชชวล" "#tf_richpresence_matchgroup_specialevent" "กิจกรรมพิเศษ" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "บูทแคมป์" } } "turkish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Ana Menü" "#tf_richpresence_state_searchinggeneric" "Maç Aranıyor" "#tf_richpresence_state_searchingmatchgroup" "Aranıyor - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Maçta - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Maça Katılınıyor" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Katılınıyor {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Topluluk - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Topluluk Sunucusuna Katılınıyor" "#tf_richpresence_matchgroup_competitive6v6" "Rekabetçi" "#tf_richpresence_matchgroup_casual" "Basit Eğlence" "#tf_richpresence_matchgroup_specialevent" "Özel Etkinlik" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Eğitim" } } "brazilian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Buscando partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Em partida — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Entrando em partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Entrando em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor da comunidade — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Entrando em servidor da comunidade" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Treino (MvM)" } } "czech" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hlavní menu" "#tf_richpresence_state_searchinggeneric" "Vyhledávání zápasu" "#tf_richpresence_state_searchingmatchgroup" "Vyhledávání – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Zápas – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Připojování do zápasu" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Připojování – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Komunitní server – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Připojování ke komunitnímu serveru" "#tf_richpresence_matchgroup_competitive6v6" "Kompetitivní" "#tf_richpresence_matchgroup_casual" "Nenáročný" "#tf_richpresence_matchgroup_specialevent" "Speciální událost" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "finnish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Päävalikko" "#tf_richpresence_state_searchinggeneric" "Etsii peliä" "#tf_richpresence_state_searchingmatchgroup" "Etsii - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Pelissä - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Liittymässä peliin" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Liittyy {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Yhteisö - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Liittymässä yhteisöpalvelimelle" "#tf_richpresence_matchgroup_competitive6v6" "Kilpailullinen" "#tf_richpresence_matchgroup_casual" "Tavallinen" "#tf_richpresence_matchgroup_specialevent" "Erikoistapahtuma" "#tf_richpresence_matchgroup_mannup" "Miehisty-tila" "#tf_richpresence_matchgroup_bootcamp" "Harjoitusleiri" } } "portuguese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "A procurar partida" "#tf_richpresence_state_searchingmatchgroup" "A procurar - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Numa partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "A entrar numa partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "A entrar em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor comunitário - %currentmap%" "#tf_richpresence_state_loadingcommunity" "A entrar num servidor comunitário" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Iniciação" } } "ukrainian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Головне меню" "#tf_richpresence_state_searchinggeneric" "Пошук матчу" "#tf_richpresence_state_searchingmatchgroup" "Пошук — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "У матчі — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Приєднується до матчу" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Приєднується до {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Спільнота — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Приєднується до сервера спільноти" "#tf_richpresence_matchgroup_competitive6v6" "Змагальний режим" "#tf_richpresence_matchgroup_casual" "Звичайний режим" "#tf_richpresence_matchgroup_specialevent" "Особлива подія" "#tf_richpresence_matchgroup_mannup" "«Манневри»" "#tf_richpresence_matchgroup_bootcamp" "«Тренувальний табір»" } } "swedish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Huvudmeny" "#tf_richpresence_state_searchinggeneric" "Söker efter en match" "#tf_richpresence_state_searchingmatchgroup" "Söker - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Går med i match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Går med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Gemenskap - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Går med i gemenskapserver" "#tf_richpresence_matchgroup_competitive6v6" "Tävlingsinriktat" "#tf_richpresence_matchgroup_casual" "Vanligt" "#tf_richpresence_matchgroup_specialevent" "Specialevent" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Träningsläger" } } "greek" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Κύριο μενού" "#tf_richpresence_state_searchinggeneric" "Αναζήτηση αγώνα" "#tf_richpresence_state_searchingmatchgroup" "Αναζήτηση - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Σε αγώνα - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Σύνδεση σε αγώνα" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Σύνδεση σε {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Κοινότητα - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Σύνδεση σε διακομιστή κοινότητας" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Ειδικό συμβάν" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "norwegian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmeny" "#tf_richpresence_state_searchinggeneric" "Søker etter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søker – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I kamp – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Blir med i en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Blir med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Samfunn – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Blir med på samfunnstjener" "#tf_richpresence_matchgroup_competitive6v6" "Konkurransespilling" "#tf_richpresence_matchgroup_casual" "Avslappet" "#tf_richpresence_matchgroup_specialevent" "Spesielt arrangement" "#tf_richpresence_matchgroup_mannup" "Mann deg opp" "#tf_richpresence_matchgroup_bootcamp" "Treningsleir" } } "schinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主菜单" "#tf_richpresence_state_searchinggeneric" "正在搜索比赛" "#tf_richpresence_state_searchingmatchgroup" "正在搜索 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比赛中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "正在加入比赛" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "正在加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "社区服务器 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "正在加入社区服务器" "#tf_richpresence_matchgroup_competitive6v6" "竞技模式" "#tf_richpresence_matchgroup_casual" "休闲模式" "#tf_richpresence_matchgroup_specialevent" "特别活动" "#tf_richpresence_matchgroup_mannup" "曼恩奇现" "#tf_richpresence_matchgroup_bootcamp" "新兵训练营" } } "dutch" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hoofdmenu" "#tf_richpresence_state_searchinggeneric" "Naar een spel aan het zoeken" "#tf_richpresence_state_searchingmatchgroup" "Zoeken - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In spel - %currentmap%" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_matchgroup_competitive6v6" "Competitief" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Speciaal evenement" "#tf_richpresence_matchgroup_mannup" "Vermann je" "#tf_richpresence_matchgroup_bootcamp" "Trainingskamp" } } "japanese" { "tokens" { "#tf_richpresence_state_mainmenu" "メインメニュー" "#tf_richpresence_state_loadinggeneric" "マッチに参加しています" "#tf_richpresence_matchgroup_competitive6v6" "対戦" "#tf_richpresence_matchgroup_casual" "カジュアル" "#tf_richpresence_matchgroup_specialevent" "スペシャルイベント" "#tf_richpresence_matchgroup_bootcamp" "ブート・キャンプ" } } "tchinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主選單" "#tf_richpresence_state_searchinggeneric" "搜尋比賽中" "#tf_richpresence_state_searchingmatchgroup" "搜尋中 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比賽中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "加入比賽中" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%} 中" "#tf_richpresence_state_playingcommunity" "社群 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "加入社群伺服器中" "#tf_richpresence_matchgroup_competitive6v6" "競技模式" "#tf_richpresence_matchgroup_casual" "休閒模式" "#tf_richpresence_matchgroup_specialevent" "特殊活動" "#tf_richpresence_matchgroup_mannup" "曼恩對決機器曼起來模式" "#tf_richpresence_matchgroup_bootcamp" "曼恩對決機器訓練營" } } "vietnamese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Đại sảnh" "#tf_richpresence_state_searchinggeneric" "Đang tìm trận đấu" "#tf_richpresence_state_searchingmatchgroup" "Đang tìm - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Đang chơi - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Đang tham gia trận" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Đang tham gia {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Cộng đồng - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Đang tham gia máy chủ cộng đồng" "#tf_richpresence_matchgroup_competitive6v6" "Tranh đấu" "#tf_richpresence_matchgroup_casual" "Đơn giản" "#tf_richpresence_matchgroup_specialevent" "Sự kiện đặc biệt" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "latam" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_content_descriptors.txt ================================================ "appinfo" { "appid" "440" "common" { "icon" "e3f595a92552da3d664ad00277fad2107345f743" "logo" "07385eb55b5ba974aebbe74d3c99626bda7920b8" "logo_small" "07385eb55b5ba974aebbe74d3c99626bda7920b8_thumb" "metacritic_url" "pc/teamfortress2" "name" "Team Fortress 2" "clienticon" "033bdd91842b6aca0633ee1e5f3e6b82f2e8962f" "clienttga" "689dd46bd63e3e460cdd86d936d5de409a291633" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "portuguese" "1" "polish" "1" "danish" "1" "dutch" "1" "finnish" "1" "norwegian" "1" "swedish" "1" "hungarian" "1" "czech" "1" "romanian" "1" "turkish" "1" "brazilian" "1" "bulgarian" "1" "greek" "1" "ukrainian" "1" } "clienticns" "b0780e91df4308b1ad57cc93d6032b4f0e2930cc" "linuxclienticon" "b2659c540592221fcd7675d76a0171f4b3782c1c" "oslist" "windows,macos,linux" "type" "game" "content_descriptors" { "0" "2" "1" "5" } "has_adult_content" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "2" "test_timestamp" "1648771200" "tested_build_id" "7850740" "tests" { "0" { "display" "3" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigNotFullyFunctional" } "1" { "display" "3" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsDoNotMatchDeckDevice" } "2" { "display" "3" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsNotLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } "4" { "display" "1" "token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "1" "small_text" "1" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "market_presence" "1" "metacritic_name" "Team Fortress 2" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "26" "height_pct" "37" } } "store_asset_mtime" "1682961190" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "37" "genres" { "0" "1" "1" "37" } "category" { "category_8" "1" "category_12" "1" "category_13" "1" "category_14" "1" "category_15" "1" "category_17" "1" "category_18" "1" "category_22" "1" "category_27" "1" "category_1" "1" "category_29" "1" "category_30" "1" "category_33" "1" "category_35" "1" "category_45" "1" "category_46" "1" "category_41" "1" "category_42" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "danish" { "supported" "true" } "dutch" { "supported" "true" } "finnish" { "supported" "true" } "french" { "supported" "true" } "german" { "supported" "true" } "italian" { "supported" "true" } "japanese" { "supported" "true" } "norwegian" { "supported" "true" } "polish" { "supported" "true" } "portuguese" { "supported" "true" } "russian" { "supported" "true" } "schinese" { "supported" "true" } "spanish" { "supported" "true" } "swedish" { "supported" "true" } "tchinese" { "supported" "true" } "koreana" { "supported" "true" } "czech" { "supported" "true" } "hungarian" { "supported" "true" } "brazilian" { "supported" "true" } "turkish" { "supported" "true" } "greek" { "supported" "true" } "bulgarian" { "supported" "true" } "romanian" { "supported" "true" } "thai" { "supported" "true" } "ukrainian" { "supported" "true" } } "original_release_date" "1191999600" "steam_release_date" "1191999600" "metacritic_score" "92" "metacritic_fullurl" "https://www.metacritic.com/game/pc/team-fortress-2?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "workshop_visible" "1" "community_hub_visible" "1" "gameid" "440" "exfgls" "1" "store_tags" { "0" "113" "1" "620519" "2" "3859" "3" "1663" "4" "1774" "5" "19" "6" "4155" "7" "5711" "8" "4136" "9" "3839" "10" "3843" "11" "3878" "12" "4195" "13" "4202" "14" "1685" "15" "1719" "16" "5752" "17" "1708" "18" "4562" "19" "1702" } "review_score" "8" "review_percentage" "93" } "extended" { "developer" "Valve" "developer_url" "http://www.valvesoftware.com/" "gamedir" "tf" "gamemanualurl" "http://store.steampowered.com/manual/440/" "homepage" "http://www.teamfortress.com/" "icon" "steam/games/icon_tf2" "icon2" "steam/games/icon_tf2" "isfreeapp" "1" "languages" "english,german,french,spanish,russian" "loadallbeforelaunch" "1" "minclientversion" "1393366296" "noservers" "0" "primarycache" "441" "primarycache_linux" "452" "requiressse" "1" "serverbrowsername" "Team Fortress 2" "sourcegame" "1" "state" "eStateAvailable" "vacmacmodulecache" "160" "vacmodulecache" "202" "vacmodulefilename" "sourceinit.dat" "validoslist" "windows,macos,linux" "deckresolutionoverride" "Native" "publisher" "Valve" "aliases" "tf2" "listofdlc" "456,457,458,459,217221,217222" } "config" { "verifyupdates" "1" "signedfiles" { "hl2.exe" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "client.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "engine.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "server.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "prec.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100BA240326DFC66BFDC28782BD644FC3BAB284F4A07554E17A8DA6CCA0B4AFBFC9BAB2938846D7595BC7A560FF6215C670C74EEB9D118DE9FC0E8ED0A18DD24D8DBAE8B950C6C062BA5DEFDECB967745C53433839EB7B1A6CA340D0E48273E18AB87106FBD22AC32B2776092E924D3C414DC3328735E984E4A1B1B4E72B0F41017020111" "sourcevr.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" } "usemms" "" "systemprofile" "1" "checkforupdatesbeforelaunch" "1" "installdir" "Team Fortress 2" "launch" { "0" { "executable" "hl2.exe" "arguments" "-steam -game tf" "vacmodulefilename" "resource\\sourceinit.dat" "config" { "oslist" "windows" } } "1" { "executable" "hl2_osx" "arguments" "-steam -game tf" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game tf -steam" "config" { "oslist" "linux" } } } "vrcompositorsupport" "0" "steamcontrollertemplateindex" "1" "steamcontrollerconfigdetails" { "1172518660" { "controller_type" "controller_steamcontroller_gordon" "enabled_branches" "default" } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2125279140" { "controller_type" "controller_mobile_touch" "enabled_branches" "default" "use_action_block" "false" } } "uselaunchcommandline" "1" } "depots" { "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish,brazilian,bulgarian,greek,ukrainian" "workshopdepot" "440" "hasdepotsindlc" "1" "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "441" { "systemdefined" "1" "manifests" { "public" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "pre_07_25_23_demos" { "gid" "2023276112389133529" "size" "26125661395" "download" "11978937568" } "pre_jungleinferno_demos" { "gid" "7707612755534478338" "size" "18855865767" "download" "7735778976" } "pre_smissmas_2022_demos" { "gid" "314077012305764573" "size" "24749544116" "download" "10985537760" } "prerelease" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "vscript_test" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } } } "440" { "systemdefined" "1" "manifests" { "public" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_07_25_23_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_jungleinferno_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_smissmas_2022_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "prerelease" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "vscript_test" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } } } "232251" { "config" { "oslist" "windows" } "systemdefined" "1" "manifests" { "public" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "pre_07_25_23_demos" { "gid" "1093030316367308660" "size" "585005817" "download" "467050320" } "pre_jungleinferno_demos" { "gid" "2174530283606128348" "size" "562700702" "download" "445092848" } "pre_smissmas_2022_demos" { "gid" "8319568912250137931" "size" "584144460" "download" "466735776" } "prerelease" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "vscript_test" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } } } "232252" { "config" { "oslist" "macos" } "systemdefined" "1" "manifests" { "public" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "pre_07_25_23_demos" { "gid" "4845664414220472500" "size" "510895405" "download" "391271824" } "pre_jungleinferno_demos" { "gid" "8624037758464932425" "size" "485750759" "download" "370815712" } "pre_smissmas_2022_demos" { "gid" "2262584799279223344" "size" "509176417" "download" "390890000" } "prerelease" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "vscript_test" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } } } "232253" { "config" { "oslist" "linux" } "systemdefined" "1" "manifests" { "public" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "pre_07_25_23_demos" { "gid" "8481848623592128300" "size" "562481508" "download" "446661232" } "pre_jungleinferno_demos" { "gid" "3512165917877440762" "size" "536705326" "download" "424011840" } "pre_smissmas_2022_demos" { "gid" "2039032268643181297" "size" "560994616" "download" "446299360" } "prerelease" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "vscript_test" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } } } "444" { "config" { "lowviolence" "1" } "manifests" { "public" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_07_25_23_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_jungleinferno_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_smissmas_2022_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "prerelease" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "vscript_test" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } } } "445" { "config" { "language" "russian" } "manifests" { "public" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_07_25_23_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_jungleinferno_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_smissmas_2022_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "prerelease" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "vscript_test" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } } } "446" { "config" { "language" "german" } "manifests" { "public" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_07_25_23_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_jungleinferno_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_smissmas_2022_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "prerelease" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "vscript_test" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } } } "448" { "config" { "language" "french" } "manifests" { "public" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_07_25_23_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_jungleinferno_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_smissmas_2022_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "prerelease" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "vscript_test" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } } } "449" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_07_25_23_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_jungleinferno_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_smissmas_2022_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "prerelease" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "vscript_test" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } } } "branches" { "public" { "buildid" "12558449" "timeupdated" "1698450187" } "pre_07_25_23_demos" { "buildid" "11753452" "description" "Pre-07-25-23 Demo Playback" "timeupdated" "1690416239" } "pre_jungleinferno_demos" { "buildid" "2119861" "timeupdated" "1690827460" } "pre_smissmas_2022_demos" { "buildid" "9872056" "description" "Pre-Smissmas 2022 Demo Playback" "timeupdated" "1690827525" } "prerelease" { "buildid" "12558449" "timeupdated" "1698450253" } "vscript_test" { "buildid" "12558449" "description" "VScript beta. Cannot connect to public servers or matchmaking." "timeupdated" "1698450262" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "1000" "hidecloudui" "0" } "sysreqs" { "macos" { "supported" "1" "wants_fast_gpu" "1" "intel900" "warn" "intelx3100" "warn" "8086" { "27a6" "warn" "2a02" "warn" } "10de" { "009d" "deny" "0391" "deny" "0393" "deny" "0395" "deny" } } "macos104" { "supported" "0" "os_min" "macos1058" } "macos105" { "supported" "0" "os_min" "macos1058" } "macos106" { "supported" "0" "os_min" "macos1063" } } "localization" { "richpresence" { "english" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Main Menu" "#tf_richpresence_state_searchinggeneric" "Searching for a Match" "#tf_richpresence_state_searchingmatchgroup" "Searching - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In Match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Joining Match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Joining {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Joining Community Server" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Special Event" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "bulgarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Главно меню" "#tf_richpresence_state_searchinggeneric" "Търсене за мач" "#tf_richpresence_state_searchingmatchgroup" "Търсене — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "В мач — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Присъединяване към мач" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Присъединяване — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Общност — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Присъединяване към обществен сървър" "#tf_richpresence_matchgroup_competitive6v6" "Съревнователна" "#tf_richpresence_matchgroup_casual" "Неангажираща" "#tf_richpresence_matchgroup_specialevent" "Специално събитие" "#tf_richpresence_matchgroup_mannup" "Щателни Манневри" "#tf_richpresence_matchgroup_bootcamp" "Тренировъчен лагер" } } "danish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmenu" "#tf_richpresence_state_searchinggeneric" "Søger efter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søger - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I en kamp - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Slutter til en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Slutter til {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Fællesskab - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Slutter til en fællesskabsserver" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Særlig begivenhed" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Træning" } } "french" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Cherche un match" "#tf_richpresence_state_searchingmatchgroup" "Recherche - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Dans un match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Rejoint un match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Rejoint un match {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Serveur de la communauté - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Rejoint un serveur de la communauté" "#tf_richpresence_matchgroup_competitive6v6" "Compétitif" "#tf_richpresence_matchgroup_casual" "Occasionnel" "#tf_richpresence_matchgroup_specialevent" "Événement spécial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Camp d'entraînement" } } "german" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hauptmenü" "#tf_richpresence_state_searchinggeneric" "Suche nach Spiel läuft" "#tf_richpresence_state_searchingmatchgroup" "Suche läuft – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Im Spiel – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Spielbeitritt erfolgt" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Sie treten {#TF_RichPresence_MatchGroup_%matchgrouploc%} bei" "#tf_richpresence_state_playingcommunity" "Community – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Verbindung zum Communityserver erfolgt" "#tf_richpresence_matchgroup_competitive6v6" "Wettkampf" "#tf_richpresence_matchgroup_casual" "Gelegenheitsspiel" "#tf_richpresence_matchgroup_specialevent" "Sonderevent" "#tf_richpresence_matchgroup_mannup" "Mann-Up" "#tf_richpresence_matchgroup_bootcamp" "Training" } } "hungarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Főmenüben" "#tf_richpresence_state_searchinggeneric" "Meccset keres" "#tf_richpresence_state_searchingmatchgroup" "Keres - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Meccsen - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Meccshez csatlakozik" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Csatlakozik: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Közösség - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Közösségi szerverhez csatlakozik" "#tf_richpresence_matchgroup_competitive6v6" "Versengő" "#tf_richpresence_matchgroup_casual" "Könnyed" "#tf_richpresence_matchgroup_specialevent" "Különleges esemény" "#tf_richpresence_matchgroup_mannup" "„Mannj rá”" "#tf_richpresence_matchgroup_bootcamp" "Kiképzés" } } "italian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principale" "#tf_richpresence_state_searchinggeneric" "In cerca di una partita" "#tf_richpresence_state_searchingmatchgroup" "Ricerca in corso - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In partita - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Unione a una partita" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Unione a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunità - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Unione a un server della Comunità" "#tf_richpresence_matchgroup_competitive6v6" "Competitiva" "#tf_richpresence_matchgroup_casual" "Leggera" "#tf_richpresence_matchgroup_specialevent" "Evento speciale" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Addestramento" } } "polish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu główne" "#tf_richpresence_state_searchinggeneric" "Wyszukiwanie gry" "#tf_richpresence_state_searchingmatchgroup" "Wyszukiwanie - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "W grze - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Dołączanie do gry" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Dołączanie do trybu „{#TF_RichPresence_MatchGroup_%matchgrouploc%}”" "#tf_richpresence_state_playingcommunity" "Gra społeczności - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Dołączanie do serwera społeczności" "#tf_richpresence_matchgroup_competitive6v6" "Rankingowy" "#tf_richpresence_matchgroup_casual" "Swobodny" "#tf_richpresence_matchgroup_specialevent" "Wydarzenie specjalne" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Trening" } } "russian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "В главном меню" "#tf_richpresence_state_searchinggeneric" "Ищет игру" "#tf_richpresence_state_searchingmatchgroup" "Поиск ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playinggeneric" "В игре: %currentmap%" "#tf_richpresence_state_loadinggeneric" "Заходит на сервер" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%}: %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Заходит на сервер ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playingcommunity" "Сервер сообщества: %currentmap%" "#tf_richpresence_state_loadingcommunity" "Заходит на сервер сообщества" "#tf_richpresence_matchgroup_competitive6v6" "Соревновательная игра" "#tf_richpresence_matchgroup_casual" "Обычная игра" "#tf_richpresence_matchgroup_specialevent" "Праздничный режим" "#tf_richpresence_matchgroup_mannup" "МАННёвры" "#tf_richpresence_matchgroup_bootcamp" "Учебка" } } "spanish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } "thai" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "เมนูหลัก" "#tf_richpresence_state_searchinggeneric" "กำลังค้นหาแมตช์" "#tf_richpresence_state_searchingmatchgroup" "กำลังค้นหา - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "อยู่ในแมตช์ - %currentmap%" "#tf_richpresence_state_loadinggeneric" "กำลังเข้าร่วมแมตช์" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "กำลังเข้าร่วม {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "ชุมชน - %currentmap%" "#tf_richpresence_state_loadingcommunity" "กำลังเข้าร่วมเซิร์ฟเวอร์ชุมชน" "#tf_richpresence_matchgroup_competitive6v6" "การแข่งขัน" "#tf_richpresence_matchgroup_casual" "แคชชวล" "#tf_richpresence_matchgroup_specialevent" "กิจกรรมพิเศษ" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "บูทแคมป์" } } "turkish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Ana Menü" "#tf_richpresence_state_searchinggeneric" "Maç Aranıyor" "#tf_richpresence_state_searchingmatchgroup" "Aranıyor - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Maçta - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Maça Katılınıyor" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Katılınıyor {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Topluluk - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Topluluk Sunucusuna Katılınıyor" "#tf_richpresence_matchgroup_competitive6v6" "Rekabetçi" "#tf_richpresence_matchgroup_casual" "Basit Eğlence" "#tf_richpresence_matchgroup_specialevent" "Özel Etkinlik" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Eğitim" } } "brazilian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Buscando partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Em partida — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Entrando em partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Entrando em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor da comunidade — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Entrando em servidor da comunidade" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Treino (MvM)" } } "czech" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hlavní menu" "#tf_richpresence_state_searchinggeneric" "Vyhledávání zápasu" "#tf_richpresence_state_searchingmatchgroup" "Vyhledávání – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Zápas – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Připojování do zápasu" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Připojování – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Komunitní server – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Připojování ke komunitnímu serveru" "#tf_richpresence_matchgroup_competitive6v6" "Kompetitivní" "#tf_richpresence_matchgroup_casual" "Nenáročný" "#tf_richpresence_matchgroup_specialevent" "Speciální událost" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "finnish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Päävalikko" "#tf_richpresence_state_searchinggeneric" "Etsii peliä" "#tf_richpresence_state_searchingmatchgroup" "Etsii - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Pelissä - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Liittymässä peliin" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Liittyy {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Yhteisö - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Liittymässä yhteisöpalvelimelle" "#tf_richpresence_matchgroup_competitive6v6" "Kilpailullinen" "#tf_richpresence_matchgroup_casual" "Tavallinen" "#tf_richpresence_matchgroup_specialevent" "Erikoistapahtuma" "#tf_richpresence_matchgroup_mannup" "Miehisty-tila" "#tf_richpresence_matchgroup_bootcamp" "Harjoitusleiri" } } "portuguese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "A procurar partida" "#tf_richpresence_state_searchingmatchgroup" "A procurar - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Numa partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "A entrar numa partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "A entrar em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor comunitário - %currentmap%" "#tf_richpresence_state_loadingcommunity" "A entrar num servidor comunitário" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Iniciação" } } "ukrainian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Головне меню" "#tf_richpresence_state_searchinggeneric" "Пошук матчу" "#tf_richpresence_state_searchingmatchgroup" "Пошук — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "У матчі — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Приєднується до матчу" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Приєднується до {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Спільнота — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Приєднується до сервера спільноти" "#tf_richpresence_matchgroup_competitive6v6" "Змагальний режим" "#tf_richpresence_matchgroup_casual" "Звичайний режим" "#tf_richpresence_matchgroup_specialevent" "Особлива подія" "#tf_richpresence_matchgroup_mannup" "«Манневри»" "#tf_richpresence_matchgroup_bootcamp" "«Тренувальний табір»" } } "swedish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Huvudmeny" "#tf_richpresence_state_searchinggeneric" "Söker efter en match" "#tf_richpresence_state_searchingmatchgroup" "Söker - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Går med i match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Går med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Gemenskap - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Går med i gemenskapserver" "#tf_richpresence_matchgroup_competitive6v6" "Tävlingsinriktat" "#tf_richpresence_matchgroup_casual" "Vanligt" "#tf_richpresence_matchgroup_specialevent" "Specialevent" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Träningsläger" } } "greek" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Κύριο μενού" "#tf_richpresence_state_searchinggeneric" "Αναζήτηση αγώνα" "#tf_richpresence_state_searchingmatchgroup" "Αναζήτηση - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Σε αγώνα - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Σύνδεση σε αγώνα" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Σύνδεση σε {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Κοινότητα - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Σύνδεση σε διακομιστή κοινότητας" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Ειδικό συμβάν" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "norwegian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmeny" "#tf_richpresence_state_searchinggeneric" "Søker etter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søker – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I kamp – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Blir med i en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Blir med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Samfunn – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Blir med på samfunnstjener" "#tf_richpresence_matchgroup_competitive6v6" "Konkurransespilling" "#tf_richpresence_matchgroup_casual" "Avslappet" "#tf_richpresence_matchgroup_specialevent" "Spesielt arrangement" "#tf_richpresence_matchgroup_mannup" "Mann deg opp" "#tf_richpresence_matchgroup_bootcamp" "Treningsleir" } } "schinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主菜单" "#tf_richpresence_state_searchinggeneric" "正在搜索比赛" "#tf_richpresence_state_searchingmatchgroup" "正在搜索 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比赛中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "正在加入比赛" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "正在加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "社区服务器 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "正在加入社区服务器" "#tf_richpresence_matchgroup_competitive6v6" "竞技模式" "#tf_richpresence_matchgroup_casual" "休闲模式" "#tf_richpresence_matchgroup_specialevent" "特别活动" "#tf_richpresence_matchgroup_mannup" "曼恩奇现" "#tf_richpresence_matchgroup_bootcamp" "新兵训练营" } } "dutch" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hoofdmenu" "#tf_richpresence_state_searchinggeneric" "Naar een spel aan het zoeken" "#tf_richpresence_state_searchingmatchgroup" "Zoeken - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In spel - %currentmap%" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_matchgroup_competitive6v6" "Competitief" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Speciaal evenement" "#tf_richpresence_matchgroup_mannup" "Vermann je" "#tf_richpresence_matchgroup_bootcamp" "Trainingskamp" } } "japanese" { "tokens" { "#tf_richpresence_state_mainmenu" "メインメニュー" "#tf_richpresence_state_loadinggeneric" "マッチに参加しています" "#tf_richpresence_matchgroup_competitive6v6" "対戦" "#tf_richpresence_matchgroup_casual" "カジュアル" "#tf_richpresence_matchgroup_specialevent" "スペシャルイベント" "#tf_richpresence_matchgroup_bootcamp" "ブート・キャンプ" } } "tchinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主選單" "#tf_richpresence_state_searchinggeneric" "搜尋比賽中" "#tf_richpresence_state_searchingmatchgroup" "搜尋中 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比賽中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "加入比賽中" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%} 中" "#tf_richpresence_state_playingcommunity" "社群 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "加入社群伺服器中" "#tf_richpresence_matchgroup_competitive6v6" "競技模式" "#tf_richpresence_matchgroup_casual" "休閒模式" "#tf_richpresence_matchgroup_specialevent" "特殊活動" "#tf_richpresence_matchgroup_mannup" "曼恩對決機器曼起來模式" "#tf_richpresence_matchgroup_bootcamp" "曼恩對決機器訓練營" } } "vietnamese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Đại sảnh" "#tf_richpresence_state_searchinggeneric" "Đang tìm trận đấu" "#tf_richpresence_state_searchingmatchgroup" "Đang tìm - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Đang chơi - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Đang tham gia trận" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Đang tham gia {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Cộng đồng - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Đang tham gia máy chủ cộng đồng" "#tf_richpresence_matchgroup_competitive6v6" "Tranh đấu" "#tf_richpresence_matchgroup_casual" "Đơn giản" "#tf_richpresence_matchgroup_specialevent" "Sự kiện đặc biệt" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "latam" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_deck_playable.txt ================================================ "appinfo" { "appid" "30" "common" { "clienticon" "d2b202e0eeb70d84fdb80f6cf886c03064011f49" "clienttga" "f89e24166fc51b47372557351043e2ae32f7b9a0" "icon" "aadc0ce51ff6ba2042d633f8ec033b0de62091d0" "logo" "beff21c4d29d2579e794c930bae599cd0c8a8f17" "logo_small" "591ab1f034305bf66c0d2c62e8358ebc2815247c" "metacritic_url" "pc/dayofdefeat" "name" "Day of Defeat" "clienticns" "e2fcc3b38e0ac80bf1beea5910d8b98563ae32f5" "oslist" "windows,macos,linux" "linuxclienticon" "51025cd4fbf5f16f3e330b0623190c8bd3a43aed" "type" "game" "steam_deck_compatibility" { "category" "2" "test_timestamp" "1652745600" "tested_build_id" "5424802" "tests" { "0" { "display" "3" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigNotFullyFunctional" } "1" { "display" "3" "token" "#SteamDeckVerified_TestResult_TextInputDoesNotAutomaticallyInvokesKeyboard" } "2" { "display" "3" "token" "#SteamDeckVerified_TestResult_NativeResolutionNotSupported" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsLegible" } "4" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "1" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "0" "non_deck_display_glyphs" "0" "small_text" "0" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "proton-stable" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "metacritic_name" "Day of Defeat" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomCenter" "width_pct" "37" "height_pct" "50" } } "store_asset_mtime" "1364859574" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "1" "genres" { "0" "1" } "category" { "category_1" "1" "category_8" "1" } "supported_languages" { "english" { "supported" "true" } "french" { "supported" "true" } "german" { "supported" "true" } "italian" { "supported" "true" } "spanish" { "supported" "true" } } "steam_release_date" "1051772400" "metacritic_score" "79" "metacritic_fullurl" "https://www.metacritic.com/game/pc/day-of-defeat?ftag=MCD-06-10aaa1f" "community_hub_visible" "1" "gameid" "30" "store_tags" { "0" "1663" "1" "4150" "2" "3859" "3" "1774" "4" "19" "5" "1678" "6" "5711" "7" "1693" "8" "3839" "9" "4155" "10" "4168" "11" "3987" "12" "1708" "13" "4182" "14" "1685" "15" "4004" "16" "4026" "17" "3916" "18" "9" "19" "5382" } "review_score" "8" "review_percentage" "89" } "extended" { "dependantonapp" "70" "developer" "Valve" "gamedir" "dod" "homepage" "http://www.dayofdefeat.com/" "icon" "steam/games/icon_dod" "icon2" "steam/games/icon_dod_dull" "order" "14" "primarycache" "31" "serverbrowsername" "Day of Defeat" "vacmacmodulecache" "160" "vacmodulecache" "202" "vacmodulefilename" "sourceinit.dat" "developer_url" "http://www.valvesoftware.com/" "publisher" "Valve" } "config" { "installdir" "Half-Life" "launch" { "0" { "executable" "hl.exe" "arguments" "-steam -game dod" "vacmodulefilename" "resource\\sourceinit.dat" "config" { "oslist" "windows" } } "1" { "executable" "hl.sh" "arguments" "-steam -game dod" "vacmodulefilename" "resource\\sourceinit_macos.dat" "config" { "oslist" "macos" } } "2" { "executable" "hl.sh" "arguments" "-steam -game dod" "config" { "oslist" "linux" } } } "systemprofile" "1" "contenttype" "3" "convertgcfs" "1" } "depots" { "1" { "systemdefined" "1" "config" { "language" "" } "depotfromapp" "70" "sharedinstall" "2" } "31" { "systemdefined" "1" "manifests" { "public" { "gid" "3826716661969602728" "size" "391387184" "download" "233925568" } "beta" { "gid" "3826716661969602728" "size" "391387184" "download" "233925568" } } } "3" { "systemdefined" "1" "config" { "language" "" } "depotfromapp" "70" "sharedinstall" "2" } "9" { "config" { "oslist" "macos" "language" "" } "systemdefined" "1" "depotfromapp" "70" "sharedinstall" "2" } "8" { "config" { "oslist" "linux" "language" "" } "systemdefined" "1" "depotfromapp" "70" "sharedinstall" "2" } "2" { "config" { "oslist" "windows" "language" "" } "systemdefined" "1" "depotfromapp" "70" "sharedinstall" "2" } "6" { "config" { "lowviolence" "1" "language" "" } "depotfromapp" "70" "sharedinstall" "2" } "72" { "config" { "language" "french" } "depotfromapp" "70" "sharedinstall" "2" } "73" { "config" { "language" "italian" } "depotfromapp" "70" "sharedinstall" "2" } "74" { "config" { "language" "german" } "depotfromapp" "70" "sharedinstall" "2" } "75" { "config" { "language" "spanish" } "depotfromapp" "70" "sharedinstall" "2" } "77" { "config" { "language" "schinese" } "depotfromapp" "70" "sharedinstall" "2" } "78" { "config" { "language" "koreana" } "depotfromapp" "70" "sharedinstall" "2" } "79" { "config" { "language" "tchinese" } "depotfromapp" "70" "sharedinstall" "2" } "141" { "config" { "language" "russian" } "depotfromapp" "70" "sharedinstall" "2" } "32" { "config" { "language" "french" } "manifests" { "public" { "gid" "4900573185183522700" "size" "4713627" "download" "3595456" } "beta" { "gid" "4900573185183522700" "size" "4713627" "download" "3595456" } } } "33" { "config" { "language" "italian" } "manifests" { "public" { "gid" "3999480029339495281" "size" "4722898" "download" "3594576" } "beta" { "gid" "3999480029339495281" "size" "4722898" "download" "3594576" } } } "34" { "config" { "language" "german" } "manifests" { "public" { "gid" "6589552847600003522" "size" "4715435" "download" "3595376" } "beta" { "gid" "6589552847600003522" "size" "4715435" "download" "3595376" } } } "35" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "783796907033752286" "size" "4715185" "download" "3593024" } "beta" { "gid" "783796907033752286" "size" "4715185" "download" "3593024" } } } "overridescddb" "1" "branches" { "public" { "buildid" "5424802" "timeupdated" "1597791632" } "beta" { "buildid" "5424802" "description" "SteamPipe beta" "timeupdated" "1597789902" } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_deck_unknown.txt ================================================ "appinfo" { "appid" "1449570" "common" { "name" "The Godkiller - Chapter 1" "type" "Game" "oslist" "windows,macos" "osarch" "64" "osextended" "macos64" "logo" "b78da74c67e28465eacc544a73c080d7911bd2b7" "logo_small" "b78da74c67e28465eacc544a73c080d7911bd2b7_thumb" "icon" "df7c384136a9238fb2e6bb64f0e3b088cf89b093" "clienticon" "cc86603c8e78c3be9e0db868fba59d40cf58db11" "clienttga" "56fbea877b170a0b694fdaeced136e27d0599353" "releasestate" "released" "content_descriptors" { "0" "5" } "has_adult_content" "1" "controller_support" "full" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "28.139534883720927" "height_pct" "50" } } "store_asset_mtime" "1639703272" "associations" { "0" { "type" "developer" "name" "Seespace Labs" } "1" { "type" "publisher" "name" "Seespace Labs" } "2" { "type" "franchise" "name" "The Godkiller" } } "primary_genre" "25" "genres" { "0" "25" "1" "23" } "category" { "category_2" "1" "category_28" "1" "category_22" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } } "steam_release_date" "1640997940" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "1449570" "store_tags" { "0" "3834" "1" "71389" "2" "14139" "3" "1730" "4" "1664" "5" "7208" "6" "1697" "7" "4791" "8" "5923" "9" "1710" "10" "4137" "11" "1742" "12" "4252" "13" "5030" "14" "6129" "15" "15277" "16" "21" "17" "4145" "18" "7569" "19" "4182" } "review_score" "7" "review_percentage" "80" } "extended" { "developer" "Seespace Labs" "publisher" "Seespace Labs" "homepage" "https://seespacelabs.com/the-godkiller" } "config" { "installdir" "The Godkiller - Chapter 1" "launch" { "0" { "executable" "TheGodkiller.exe" "type" "default" "config" { "oslist" "windows" "osarch" "64" } } "1" { "executable" "GKMac.app" "type" "default" "config" { "oslist" "macos" } } } "steamcontrollertemplateindex" "4" } "depots" { "1449572" { "config" { "oslist" "windows" "osarch" "64" } "manifests" { "public" { "gid" "6045382254555983484" "size" "1848353385" "download" "539606832" } } } "1449573" { "config" { "oslist" "macos" "osarch" "64" } "manifests" { "public" { "gid" "175808732097216509" "size" "2572486826" "download" "1243113664" } } } "branches" { "public" { "buildid" "8297538" "timeupdated" "1646186033" } } } "ufs" { "quota" "10000000" "maxnumfiles" "100" "hidecloudui" "1" "ignoreexternalfiles" "1" } } ================================================ FILE: FreePackages.Tests/TestData/app_with_deck_unsupported.txt ================================================ "appinfo" { "appid" "43160" "common" { "name" "Metro: Last Light Complete Edition" "logo" "b110ee3812ac0cad68505772019cf2bdc3ce1cc3" "logo_small" "b110ee3812ac0cad68505772019cf2bdc3ce1cc3_thumb" "icon" "7b84b80d2cebe41ba87c59b28e2473d3b33e797d" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "spanish" "1" "russian" "1" "japanese" "1" "polish" "1" "dutch" "1" "czech" "1" } "releasestate" "released" "type" "Game" "clienticon" "a66bfc0a3fcba6b814df2ff64b04cf8d16f477fe" "clienttga" "b96eeeab55cf5b71bc58d0548a207fe03f80c23f" "oslist" "windows,macos,linux" "clienticns" "6f4e6d5fdfe9cdc34d3d8a2a09f1df42e74da32e" "linuxclienticon" "9d95a8d796929052af12950d6d5e18a0b4e990ff" "content_descriptors" { "0" "5" } "has_adult_content" "1" "steam_deck_compatibility" { "category" "1" "test_timestamp" "1685145600" "tested_build_id" "372939" "tests" { "0" { "display" "2" "token" "#SteamDeckVerified_TestResult_UnsupportedGraphicsPerformance" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "0" "small_text" "0" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "proton-8.0-2" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "metacritic_name" "Metro: Last Light" "controller_support" "full" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "100" "height_pct" "100" } } "store_asset_mtime" "1683818273" "associations" { "0" { "type" "developer" "name" "4A Games" } "1" { "type" "publisher" "name" "Deep Silver" } "2" { "type" "franchise" "name" "Metro" } } "primary_genre" "1" "genres" { "0" "1" } "category" { "category_2" "1" "category_22" "1" "category_28" "1" "category_29" "1" "category_23" "1" "category_43" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "czech" { "supported" "true" "subtitles" "true" } "dutch" { "supported" "true" "subtitles" "true" } "french" { "supported" "true" "full_audio" "true" "subtitles" "true" } "german" { "supported" "true" "full_audio" "true" "subtitles" "true" } "italian" { "supported" "true" "full_audio" "true" "subtitles" "true" } "polish" { "supported" "true" "subtitles" "true" } "russian" { "supported" "true" "full_audio" "true" "subtitles" "true" } "spanish" { "supported" "true" "full_audio" "true" "subtitles" "true" } "ukrainian" { "supported" "true" "full_audio" "true" "subtitles" "true" } } "metacritic_score" "82" "metacritic_fullurl" "https://www.metacritic.com/game/pc/metro-last-light?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "43160" "store_tags" { "0" "3835" "1" "1663" "2" "4166" "3" "19" "4" "1687" "5" "1774" "6" "1667" "7" "4182" "8" "3934" "9" "1742" "10" "3796" "11" "3839" "12" "21" "13" "6650" "14" "1756" "15" "3859" "16" "3942" "17" "1662" "18" "4342" "19" "3978" } "review_score" "8" "review_percentage" "93" } "extended" { "developer" "4A Games" "gamedir" "ValveTestApp43160" "homepage" "http://www.enterthemetro.com/" "icon" "" "noservers" "0" "sourcegame" "1" "state" "eStateAvailable" "visibleonlywhensubscribed" "1" "publisher" "Deep Silver" "gamemanualurl" "https://store.steampowered.com/manual/43160/" "listofdlc" "43163,222801,222802,222803,222804,222805,222806,222807,238340,239180,239181,239182" } "config" { "contenttype" "3" "installdir" "Metro Last Light" "launch" { "0" { "executable" "./MetroLL.exe" "workingdir" "./" "config" { "oslist" "windows" } } "1" { "executable" "./MetroLL.app" "workingdir" "./" "config" { "oslist" "macos" } } "2" { "executable" "./MetroLL" "workingdir" "./" "config" { "oslist" "linux" } } } } "depots" { "228983" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "229032" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "overridescddb" "1" "preloadonly" "1" "markdlcdepots" "1" "43161" { "systemdefined" "1" "config" { "oslist" "windows" } "manifests" { "public" { "gid" "172735055028682614" "size" "9978747300" "download" "18933030115282" } } "encryptedmanifests" { "ds_internal" { "gid" "640314220ACA263D504E164AD74C0975" "size" "E1B8385CA7E18F4D72489154D82832B8" "download" "1CEF766A6BA299EAEF04AC9CFF6FEEBA" } "internal_testing" { "gid" "2D5C2B11FBA750C62993BE0432D051D4" "size" "1C2723366FBDC4626897E69EB44A563D" "download" "3675C3F6F7F341FBF4332C35CCE2045C" } "linux" { "gid" "68BAF65632773DD9FBFD7BD1FF3B2D33" "size" "87D29929693C3F0FAE0BDB0CEEE04E14" "download" "D05165121B7BED1259E1D31DD37E5E37" } "linux_drm" { "gid" "8BEF3BC5BCA0FEC8FE60163E802C3DB3" "size" "A09EB61046BB6C0894E8BD2B0BBA3EE4" "download" "92FFE1484BC8EB4F05515058C3C43EAE" } "linux_drm_ext" { "gid" "22899C5DDB1C0142549EC0D2D6423E4E" "size" "4652621285BC82BD27C269AD851FFBF8" "download" "ED11DDF88068A6F67D10F4DF5A1FBE7E" } "mac" { "gid" "7F40FB3BB92BD19A97CA25F91A32B941" "size" "71B46BFCF035DF5338D553A1D11FEE0D" "download" "8E7A55E6F489F7ABF3B103CA19747BF3" } "mac_drm" { "gid" "A2B409CD955BD13D13D6C01A7C545F37" "size" "CC514E901C9360734EF3389835D2752E" "download" "A2E8A7F7A94748BA56D5606D5E95051F" } "marketing" { "gid" "C5F8F1776683FA985B34242FBB492F94" "size" "57D9A0A7DAE14E51E0CCA25A627C6F47" "download" "884C6B0F0871139302756BF9C201CFC6" } "newmerge" { "gid" "EFA04B056A59EAA66A0D36186F4AE1F0" "size" "51E1537048B0D93E5B7E698512AB97B1" "download" "2D821930A5D7E5ED9C09F8614A070BFA" } "nvidia_test" { "gid" "0161000D8CA38605CC8D2DDDA72663A7" "size" "00A6B7C941F7CF950AC4B36C821D9D41" "download" "B71623937F4AAD4533F9D77E268F1A5C" } "rating" { "gid" "01E486D523412B87F1FA3C1014312D2E" "size" "F9529BB58F3B74DF959D01D1F3063F71" "download" "8A2AEE1237C465E65AF56221206ABFE0" } "rating_kor" { "gid" "BA8E3B445B87AA1F017CB1128B95B6BF" "size" "66A5973DB72F70D9BE92CECDD218E806" "download" "4F20C84F000D0A16BD5E4A7724B6D55C" } "ukrainian_version" { "gid" "193F03A9CE3BA97C88F290714FB4648D" "size" "4A1538CB3232EAE8C1AEC09111927C86" "download" "6E7A7CD45FBE611C261DE44180D2D990" } } } "43162" { "systemdefined" "1" "config" { "oslist" "windows" } "manifests" { "public" { "gid" "8931438170091183706" "size" "24044152" "download" "53995886394" } } "encryptedmanifests" { "ds_internal" { "gid" "2FEC9A68A115ADD71FB1F28A2D160D28" "size" "49917FA7C3210B225AD32F2614AA9A80" "download" "1CEF766A6BA299EAEF04AC9CFF6FEEBA" } "internal_testing" { "gid" "608D4E84BC292F1F658057D75FEF77DE" "size" "3B474F84EFE19B99A3A615020F381121" "download" "71B12E99790CD467E216AD798A80B4DF" } "linux" { "gid" "BD0D6AB3802B48EE902D2D42EC92DD13" "size" "CB71C3DEF9FE3B0207056DE93130C028" "download" "D05165121B7BED1259E1D31DD37E5E37" } "linux_drm" { "gid" "34FEA845F243281FD6CEA69F1D4B2471" "size" "5D53AD0B4F8B57A2D99B710D3138FC53" "download" "92FFE1484BC8EB4F05515058C3C43EAE" } "linux_drm_ext" { "gid" "08AB7A9135FA158B7D4DF32A47EC57D3" "size" "D9A1E29FDB88D2FE27824408020BA54F" "download" "ED11DDF88068A6F67D10F4DF5A1FBE7E" } "mac" { "gid" "D0F12A3916F99B5CD516C3B258A619BB" "size" "E663DD6287355F9D3C5D5971D76FC6CB" "download" "8E7A55E6F489F7ABF3B103CA19747BF3" } "mac_drm" { "gid" "AEC441CC706BF7D2E63DAB3C09A7FF0F" "size" "74FC742951C3592306A1D4742D21919C" "download" "A2E8A7F7A94748BA56D5606D5E95051F" } "marketing" { "gid" "6FB19CBED256AA9A5F22CFC33A51DF96" "size" "C8A80EAE64B9F57BD71DEFFFFC41E94E" "download" "884C6B0F0871139302756BF9C201CFC6" } "newmerge" { "gid" "08D134B10504CE4F35DFB3D5A1D4F394" "size" "278D4A044DA29706A677C2C1258C4794" "download" "2D821930A5D7E5ED9C09F8614A070BFA" } "nvidia_test" { "gid" "48C97FD660E5599682927840CE4DA915" "size" "F6886B7CF5812F1155B12884A1E542C5" "download" "447DB99BA49D1107955A039EE0AAA400" } "rating" { "gid" "10F0A43FF5B99CB03D5F901AB7D4E269" "size" "8206AF0C85323C1961E2E392C34F2AB0" "download" "8A2AEE1237C465E65AF56221206ABFE0" } "rating_kor" { "gid" "8A973E4CC6205EF4DAC89BCACD182A27" "size" "7D4A24A3ACCA64D00B3FFA53C2A4C0F7" "download" "4F20C84F000D0A16BD5E4A7724B6D55C" } "ukrainian_version" { "gid" "0FF99B07E8B0DFD22A7A6CBFA2648520" "size" "3BD6A8947ED797BA85DC985D0BCB50B7" "download" "ABE6A23609A92B51AC70E1254FF2A7D4" } } } "43163" { "manifests" { "public" { "gid" "26228404254479279" "size" "6183226" "download" "30" } } "encryptedmanifests" { "ds_internal" { "gid" "E7A98DA0BDAC22743D8A9E69BD701104" "size" "B9B408493AD0CEEF7947314E8854C91A" "download" "1CEF766A6BA299EAEF04AC9CFF6FEEBA" } "internal_testing" { "gid" "C7647AE4FEDDB88500F5B6ED38E32610" "size" "415B0464E82768106F60724D50C75985" "download" "4FF181B94CF19E52D2408FF135D7063E" } "linux" { "gid" "2F476E5CC753436BC8A7246ABAC0126F" "size" "98CF7350F2627CCBDAF1A52C794937DF" "download" "D05165121B7BED1259E1D31DD37E5E37" } "linux_drm" { "gid" "0DD6467E85C2E447B3D56AD1C5A5F8B8" "size" "AA783FBCC404647EF3DB40CED3DB4379" "download" "92FFE1484BC8EB4F05515058C3C43EAE" } "linux_drm_ext" { "gid" "A986D018BBB05C303E195A79E4E41201" "size" "47CDA3BD47A775E9C0318038BC6514B4" "download" "ED11DDF88068A6F67D10F4DF5A1FBE7E" } "mac" { "gid" "008635694E16AF2DE0798897DBEA8822" "size" "4BF222B06AB181B72EC6131C42689E31" "download" "8E7A55E6F489F7ABF3B103CA19747BF3" } "mac_drm" { "gid" "AA9D2C59BBB30396454497F6AF797872" "size" "12FF603F8B147584ED5612A94D9B5826" "download" "A2E8A7F7A94748BA56D5606D5E95051F" } "marketing" { "gid" "791E48CFD8BE3221875AEE59971CF5B5" "size" "8CC2E9392720BAA423654137C450B560" "download" "884C6B0F0871139302756BF9C201CFC6" } "newmerge" { "gid" "42C42B84A0F97A02032D56787D258B26" "size" "16C50FC79B2633CE9353A7DA9B8B5FE6" "download" "2D821930A5D7E5ED9C09F8614A070BFA" } "nvidia_test" { "gid" "1D2152757460A9A4FF518581FC1D2EB2" "size" "43C88FB9D938DF15ACAF1EAF91A9CD52" "download" "6C16459920416C7EF162465D78CDF41F" } "ukrainian_version" { "gid" "6A5BD75B368D983CBDD87183D010A924" "size" "80108D7C6EBC286F5DC96BBC81281FFF" "download" "10A88D076C4525FF043E52E1D047C633" } } "dlcappid" "43163" } "43164" { "config" { "oslist" "macos" } "systemdefined" "1" "manifests" { "public" { "gid" "8074282923124235513" "size" "9614286648" "download" "17352972032185" } } "encryptedmanifests" { "internal_testing" { "gid" "9088E9F12BC6590D466F368F71B09536" "size" "B90D5C86B1A06ACA59E74A3A2651724C" "download" "3009DE21478B5FB5322E62722DEE3EA3" } "linux" { "gid" "88A7E28C901FC5EAF4A2D0CB41F41B44" "size" "0FF4FADC79F6A60801D0A5A1F95D572A" "download" "D05165121B7BED1259E1D31DD37E5E37" } "linux_drm" { "gid" "41828F3539085606949058C1EE0061A2" "size" "2C533C4A3C62EC8FD52E1ABA6DE5ED1D" "download" "92FFE1484BC8EB4F05515058C3C43EAE" } "linux_drm_ext" { "gid" "4926B35F524D714540EC8DCA211483F3" "size" "A7DD70C6D42DFAF95053EA51D0639857" "download" "ED11DDF88068A6F67D10F4DF5A1FBE7E" } "mac" { "gid" "501EF6B623338DCA92E4192B3A6BA38B" "size" "58DE0DD7273E251CD232D668E9D75225" "download" "8E7A55E6F489F7ABF3B103CA19747BF3" } "mac_drm" { "gid" "6AA8D9593EE47362D2F53F74F73C508A" "size" "10F4F3E241376D4218BEA3F39A3E5058" "download" "643A30566B4E303D57FFFB76D70FA19B" } "newmerge" { "gid" "3686E056F01568E6ACF5210965A2C1B3" "size" "F127DCBC6F48EFA0D3DA1817B8F36480" "download" "2D821930A5D7E5ED9C09F8614A070BFA" } "nvidia_test" { "gid" "8C73CCC4D3868D3430256F32F2B75234" "size" "AA82E19A6470EAE56B75C549CE0DEC47" "download" "49977C68A431E4341767825538799AA1" } "ukrainian_version" { "gid" "69E574474CC2D0E714402D1FDBEF63DE" "size" "F7D1A655C4A8D36CEFE98A7ED181DB05" "download" "4A911FAB2C407988719F0FECEA545459" } } } "43165" { "config" { "oslist" "linux" } "systemdefined" "1" "manifests" { "public" { "gid" "1924185578284204221" "size" "9582603657" "download" "0" } } "encryptedmanifests" { "internal_testing" { "gid" "D65B9C28826445609D67C0DA09E0AF1B" "size" "31408AF4FEC166B72DF676170696EA3D" "download" "A902999F4116F21582AECD2465A69197" } "linux" { "gid" "B0BBAAFF9B33518F6BDA2C7000E2648B" "size" "F13D00A6D6E1120F9C5C0FA21D57F4C1" "download" "D05165121B7BED1259E1D31DD37E5E37" } "linux_drm" { "gid" "B200BA236D0E0D45D0A008D68EF7ED76" "size" "A3C8F6ECE5C8070F611EE226677C449F" "download" "92FFE1484BC8EB4F05515058C3C43EAE" } "linux_drm_ext" { "gid" "78B586F9F1B80940619D207C6F8D1298" "size" "B9565B73417291140FF62569C8C22A34" "download" "ED11DDF88068A6F67D10F4DF5A1FBE7E" } "mac_drm" { "gid" "075C3A1D3BEF985702D6C7B6A5712F97" "size" "1F0BD12B519A08FB389D00ACF286306B" "download" "A2E8A7F7A94748BA56D5606D5E95051F" } "newmerge" { "gid" "033282FFE2726FEDFC188DE40BF7C7DA" "size" "3F5E96029F74AF3F0838CBC896AEE3C5" "download" "2D821930A5D7E5ED9C09F8614A070BFA" } "nvidia_test" { "gid" "AD53835CFD6B978DC752C4E929ED0132" "size" "6A076A43E1C15577D3EAF884AA3F9B05" "download" "48B5C075C23694C169F351C13029AB4E" } "ukrainian_version" { "gid" "922D73FCBD159C8A1411593FDCF50213" "size" "810E7A62CB857580344EB1BFC0BD36FA" "download" "94AE82E38FEAD7ADE9BEDD5D68B2A02E" } } } "branches" { "public" { "buildid" "372939" } "ds_internal" { "buildid" "75522" "pwdrequired" "1" } "internal_testing" { "buildid" "372939" "pwdrequired" "1" } "linux" { "buildid" "138054" "pwdrequired" "1" } "linux_drm" { "buildid" "172821" "pwdrequired" "1" } "linux_drm_ext" { "buildid" "259252" "pwdrequired" "1" } "mac" { "buildid" "115521" "pwdrequired" "1" } "mac_drm" { "buildid" "327310" "pwdrequired" "1" } "marketing" { "buildid" "126510" "pwdrequired" "1" } "newmerge" { "buildid" "138152" "pwdrequired" "1" } "nvidia_test" { "buildid" "372939" "pwdrequired" "1" } "rating" { "buildid" "47810" "pwdrequired" "1" } "rating_kor" { "buildid" "51449" "pwdrequired" "1" } "ukrainian_version" { "buildid" "338171" "pwdrequired" "1" } } } "ufs" { "quota" "104857600" "maxnumfiles" "1000" "savefiles" { "0" { "root" "WinMyDocuments" "path" "/4a games/Metro LL" "pattern" "auto_save" "platforms" { "1" "Windows" } "recursive" "1" } "4" { "root" "WinMyDocuments" "path" "/4a games/Metro LL" "pattern" "*.player" "platforms" { "1" "Windows" } "recursive" "1" } "6" { "root" "MacAppSupport" "path" "/MetroLL" "pattern" "auto_save" "platforms" { "1" "MacOS" } "recursive" "1" } "7" { "root" "gameinstall" "path" "/" "pattern" "auto_save" "platforms" { "1" "Linux" } "recursive" "1" } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_deck_verified.txt ================================================ "appinfo" { "appid" "1086940" "common" { "name" "Baldur's Gate 3" "type" "Game" "releasestate" "released" "clienticon" "ea19a7ce2af83c0240e775d79d3b690751a062c1" "clienttga" "a4cd79e3b930b890d17473ea7f0e40e2144fcfca" "icon" "d866cae7ea1e471fdbc206287111f1b642373bd9" "oslist" "windows,macos" "osarch" "64" "osextended" "macos64,macosapplesilicon" "eulas" { "0" { "id" "1086940_eula_0" "name" "Baldur's Gate 3 EULA" "url" "https://store.steampowered.com//eula/1086940_eula_0" "version" "3" } } "logo" "a8c254f3aaa272a8cd3222b76fc6cdb2358b4587" "logo_small" "a8c254f3aaa272a8cd3222b76fc6cdb2358b4587_thumb" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "polish" "1" "turkish" "1" "brazilian" "1" "ukrainian" "1" "latam" "1" } "content_descriptors" { "0" "1" "1" "2" "2" "5" } "has_adult_content" "1" "has_adult_content_sex" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "3" "test_timestamp" "1701820800" "tested_build_id" "12857746" "tests" { "0" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigFullyFunctional" } "1" { "display" "4" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsMatchDeckDevice" } "2" { "display" "4" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "0" "non_deck_display_glyphs" "0" "small_text" "0" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "proton-experimental" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "metacritic_name" "Baldur's Gate 3" "controllertagwizard" "1" "controller_support" "full" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "CenterCenter" "width_pct" "42.59539141078173" "height_pct" "72.26394372050225" } } "store_asset_mtime" "1701769448" "associations" { "0" { "type" "developer" "name" "Larian Studios" } "1" { "type" "publisher" "name" "Larian Studios" } "2" { "type" "franchise" "name" "Baldur's Gate" } } "primary_genre" "3" "genres" { "0" "25" "1" "3" "2" "2" } "category" { "category_2" "1" "category_1" "1" "category_38" "1" "category_23" "1" "category_48" "1" "category_9" "1" "category_45" "1" "category_46" "1" "category_22" "1" "category_28" "1" "category_55" "1" "category_56" "1" "category_57" "1" "category_58" "1" "category_59" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "french" { "supported" "true" "subtitles" "true" } "german" { "supported" "true" "subtitles" "true" } "spanish" { "supported" "true" "subtitles" "true" } "polish" { "supported" "true" "subtitles" "true" } "russian" { "supported" "true" "subtitles" "true" } "schinese" { "supported" "true" "subtitles" "true" } "turkish" { "supported" "true" "subtitles" "true" } "brazilian" { "supported" "true" "subtitles" "true" } "italian" { "supported" "true" "subtitles" "true" } "latam" { "supported" "true" "subtitles" "true" } "tchinese" { "supported" "true" "subtitles" "true" } "ukrainian" { "supported" "true" "subtitles" "true" } "koreana" { "supported" "true" "subtitles" "true" } } "steam_release_date" "1691074800" "metacritic_score" "96" "metacritic_fullurl" "https://www.metacritic.com/game/pc/baldurs-gate-3?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "1086940" "store_tags" { "0" "122" "1" "6426" "2" "1742" "3" "4747" "4" "4325" "5" "14153" "6" "21" "7" "4474" "8" "1684" "9" "3843" "10" "3859" "11" "4947" "12" "9" "13" "4182" "14" "4508" "15" "4155" "16" "4604" "17" "3993" "18" "7481" "19" "1687" } "review_score" "9" "review_percentage" "96" } "extended" { "developer" "Larian Studios" "publisher" "Larian Studios" "homepage" "https://baldursgate3.game" "listofdlc" "2378500,2378510" "dlcavailableonstore" "1" } "config" { "installdir" "Baldurs Gate 3" "launch" { "0" { "executable" "Launcher\\LariLauncher.exe" "workingdir" "bin" "type" "default" "config" { "oslist" "windows" } } "1" { "executable" "Baldur's Gate 3.app" "type" "default" "config" { "oslist" "macos" } } } "steamcontrollertemplateindex" "2" "steamdecktouchscreen" "1" } "depots" { "baselanguages" "" "228989" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "1086941" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "4130367362850438109" "size" "143391970325" "download" "115048734816" } } "encryptedmanifests" { "agerating" { "gid" "E4B2C2D1DADE1F8D2F89F9AE8A3D2770" "size" "EFEDF90B8CBD2FD9D75E8CEDD92570FD" "download" "41588BDEF002D25D840CAD43AABD7765" } "baseline" { "gid" "25362C10C2DB19CEABB843BF76A13AB9" "size" "077C2AAED380E8601FE470CDB65B8F1A" "download" "6F1A860F3881A13D036058192EAF7C75" } "ch_main" { "gid" "BEA12C7A2ED1BA86548B1706A63ECC12" "size" "60D9923763D404061266405D2140D87F" "download" "E605F118C694F8F50F044D341EE0D2A0" } "ch_rc" { "gid" "A5EA28049859FF9055F7469753DA6CD4" "size" "C376558611FBA7AF3782AB43F38E8CFA" "download" "7B1E0FFB18B50D1A4C7009AD7C2586E2" } "compat" { "gid" "E65A2C9D51E43473BC29FFC5F0B67ED7" "size" "B1FCCC9A2435652BEF2346E26971EDEB" "download" "50753BAE0C029891796B304467DEEF80" } "dlss" { "gid" "7D1D71C29D6E57C6A04A9C1C21D59C6A" "size" "9C4169DCF6B789105E2ED4011A69B8A1" "download" "C28FE105DAA9FA0D4ED11C36B1114A5C" } "mac_test2" { "gid" "2D4211D7E8DC6F5B1D6B712144A48E31" "size" "226AFD87D78F4145AB331F0D15EE555F" "download" "87D37F1A7B9C41AA72A6E8C009E79F26" } "mac_test3" { "gid" "E510BC43C1C0F2FB925DDCE6344AA8A1" "size" "5E89FD4800485DD03094D1E20D7B9C79" "download" "51E30980E631528AD3076CA2A85FCE6C" } "playtesting" { "gid" "8CA15714297D2E804D2A234909BE160B" "size" "D26E6284B5468F1AF9AC9A22272B4F75" "download" "4BC86A407BCBB5DEE45D7E1767EDA6F4" } "pt_bcn" { "gid" "5E902B50444B42BA2DD36F73D23F24E0" "size" "6B31413AF2788904032265521B8316B6" "download" "A017FB37171C0BD7D5E2DBCDDF244CA4" } "pt_dub" { "gid" "FAA7C88E58562D27FA029EF13A46699D" "size" "A11993C7D94AA9C55A34A0FB089E2069" "download" "9AA7BFB6FC2A74EDB7F77092CD384A65" } "pt_gf" { "gid" "F8B46813F35C7F9C2C018DCA576115D9" "size" "27D251E7AA0D58026C1FA1B37C9C88F9" "download" "04EC1EC8C9B6D30A6EA19C680E21BB60" } "pt_gnt" { "gid" "4DFB5A5464364194F02ACFDA8204774B" "size" "8223737B3DEDE6C70114D6782BC85041" "download" "D21D73D7DB50BA650971510A7C6DB704" } "pt_kl" { "gid" "B6812DA509326ABF189B2E5A9D026DFF" "size" "78A992517226028AD8AA3169EAC388B3" "download" "872AA500F19581C8D85771F775E73DF1" } "pt_qbc" { "gid" "E194B2FD72FC9588AED3B5594B10171D" "size" "521827312F2C809E3F85D2A15D2448C7" "download" "95747A0F693B3085EC79F8AB47F5FDD8" } "qaprio" { "gid" "429E66E08F4146ED77EE21784F9F0541" "size" "A7A712C9F0D039599D8406CCB4FE150F" "download" "287B1C887526C15A043DCDEF541DFE09" } "release" { "gid" "83A08461B847F01B4B3730C7D463EA44" "size" "F3B55479441F86CED596FC4D9EB694B7" "download" "372200E1B883B8B10C007DF060C5844C" } "release_hf1" { "gid" "7AF0456A13BDD78BF2C1F0B2D2A13008" "size" "A3BE50DC4D27E775E89DF6748648670B" "download" "854F8EC330D77A78B09066FF63CE810E" } "release_hf2" { "gid" "89B4AA1AC5847092B166EF7C6EF38F8A" "size" "7A14D8335CD66DDE0F4A841AA6D7FCC3" "download" "6E82259324E9FCABBDBC05AA437585D4" } "release_hf2.1" { "gid" "4A66D1FAC14F5F89CC796F51710EF472" "size" "0934C5CD5EF31C4453A02667A5420979" "download" "5760D101A8F6042D01844BE28C273F00" } "release_hf3" { "gid" "BEFB4361B427775FAC6D4E31E814C03B" "size" "8B87AE4250C375527FC0897E77F16D1C" "download" "57E94AF304EFE14BC5944F1D8242F5E2" } "release_hf4" { "gid" "36404F0FF08E5725947BBA5D53AC93B0" "size" "2C2678DE75E2EF82FA4F63CF092DEB61" "download" "20AA6ED852E3B802647BDBD7B4520BCB" } "release_patch1" { "gid" "F532467AB08551B7CD01E364B6AAC5D1" "size" "808C7BD34390CABE047876CD12DBD7D7" "download" "135E06B30908FADDB79F1E010FC946B2" } "release_patch2" { "gid" "EA46820D353CE8A3BC6A8414792A603E" "size" "C54B3B54C60B828D8E15E1E3F85B6E8E" "download" "A68424831AB73569D93A6606947B63A8" } "release_patch3" { "gid" "3BADF4B698A67799DEA697DCB9440596" "size" "548A7A750F65A9DBD9C4A6F335E09522" "download" "FDA08C19E2AD14618690B64639E711EF" } "release_patch3_hf1" { "gid" "EE7C4659A69DFFBAC5F6A386FE6F676F" "size" "1D3BC098C0BBF1293DE739399F5713B1" "download" "3FF48E10924EA91DEAF20EF26CE886AC" } "release_patch3_hf2" { "gid" "C37DF918C62FB3B6E5B1F66C2B1B5FBA" "size" "F59E6481AF093890EDF28D375459711A" "download" "30ED53CDC592206F1DF66BAE08A4C6C3" } "release_patch3_hf3" { "gid" "1FDFA8B1A708D316CF914A6CEB7F7EF8" "size" "DD155FC49673F81BE601E0FBA8C558C0" "download" "DE9E3E50975C9F24EB1E6346A1465481" } "release_patch4" { "gid" "E3A67253E39B4F32424A80B8C3F0257C" "size" "90FEAC53DBDA05FC321645AC888186BA" "download" "032E014F1525EAE258CAD673D1AEE385" } "release_patch4_hf1" { "gid" "7C46B81A030D9D1F0C26528F103DD108" "size" "9C0E211A47FBBD1C23BE96FA85C04389" "download" "A4F15132583EBE0183B3D814FF514B10" } "release_patch4_hf3v2" { "gid" "CB6079E0BC10D470FE0695EEF95A973A" "size" "46A691CB74CDB0416954C622C6A1B94F" "download" "4F854CBD93D1C08D1B20F545F8B011DB" } "release_patch5" { "gid" "73026D88EFC0EAA2ADC98CBDCC0DDDDB" "size" "C1248A4AD86739ACD8A294F2C4850CD0" "download" "CAFBC84F2D2F7F8C0129D720D741D0DA" } "release_patch5_hf1" { "gid" "523BCC57F3201B0324110BD8302F2FD2" "size" "03CB18D328AD92689B95F7C876823E77" "download" "8E7E7884A22809F761C48FBACC8F9ADD" } "release_patch5_hf2" { "gid" "2FC102B671F8936A1A0EE4B97AE4A5B6" "size" "83B22C79775D32CE0D3BD2056C604AC1" "download" "443C2ED7ED3BC0F3A4DCD075C80C1702" } "release_patch5_hf3" { "gid" "DAF01A62A84CDDED4B3D1965E629DAED" "size" "5F233A5D7DCCB2EC3E4A368C590B3389" "download" "70CFC1206D0195D0E1AC2062E7D78F7A" } "summer2020_loca" { "gid" "5F135777F63E86971BB24D8BBA53A2D0" "size" "A457415B8784847E1EF3EA036BE74825" "download" "1F0E2391A3D5552FBD558D38C225FEFF" } "temp" { "gid" "E1912CEE9D5AE4F51E575935761B35EC" "size" "1D7D44562F32DB69270BD08038FFF514" "download" "99C983EC616A6C4E050F6BDD476C1DBA" } "testbranch" { "gid" "79B0171C230B28A94E18AC2187AF6346" "size" "E4A91AD56074C616BA203DB852316BF5" "download" "33DF39B240A10D8D7A99CA3587B6E2DC" } } } "1086942" { "config" { "language" "english" "oslist" "windows" } "manifests" { "public" { "gid" "17875152607970122" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "C56CA96F704AD75B1773612C4029DCEB" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "baseline" { "gid" "DF76437AEE6A8F25E04E3C20B3127AD1" "size" "5847AB920AE50B03586B3EBDD4FAFB80" "download" "E5C33F04760FA64194957A6D0DBFE8BB" } "ch_main" { "gid" "F8D87C4B259F22F644B80AC588E5B2C8" "size" "AD8062173DDDCC75D21F68D9CF86CEF2" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "F62D2BBD3F8636882B2B56A1CBBFC1B8" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "BCFA59EDAF1CFEE180522806C1945F50" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "6F8D7381D5573F034E4FC02A48A233A8" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test2" { "gid" "F02E9C1BFE0176838B7C0E8BE3E1CBE1" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "51F2E49EC3D45B47045B3F5FBBE5536C" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "F74F0D8F66C216892124648C651E8822" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "88105F5E8361A35984A590E4D87ECE7B" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "B09A5A942ED32BA01918105DDBA4EF93" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "3A0A1D467427812B1B7AD4057EA7F9DE" "size" "56DB2935C18F1B9BC7562552F8C7D468" "download" "5F83776DB7021651B99D1B14015A0648" } "pt_gnt" { "gid" "E265A9DA5D0416F19600D9EDA85D854E" "size" "EE9AAAF888D21E81F37F54B45F0F91EF" "download" "39CA42EF9583DABE0E257DC599693B19" } "pt_kl" { "gid" "3CBD7C1116EC0AEE859833C2F5D7212E" "size" "6E03523319BD32B57873A848BD7B5624" "download" "C50A325D39C9341C054DCFFBAF7C5CA9" } "pt_qbc" { "gid" "DB9F29B26F6D97EC19088A32EAECDEE6" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "F0895C2CE504EDF81E5CF754DD161AAC" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "A57EA9264A78383875A0BF0F87CC78B8" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "EC31DED23234A28CD72ADA5E58F23798" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "3AA5D6A8CC6F91F4BB1A880A61C4DE8B" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "82BE827E2E96D5FB59825688EA7E5222" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "A59D53E14E4B28D02AF04FD34CD0BB3B" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "FD275726C1BD417BAB67105FB0526ACA" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "8035E9C1EDD5199C60DC703B94013CB3" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "FF8689E4F186AC97D8381EF8C1EF4D1F" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "2AB614C33FDA06E167A2BDDD595835A2" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "3F64DEF3F207251BBD8DBDAC1966AA7A" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "22119B16F73651254C3A6EAA7838A201" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "B80CF787B409935DC2237FDAF582810F" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "635F0D0F6098E00FFF1CE9D7936D7093" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "796F76BF83CE2945E7C2C74DB9BA41F0" "size" "A8EE6F7EE25F370812728B2BBD2272C9" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "9B9A2E0491FD0206EBE73DF40DEF0E3C" "size" "FAB79ECB889337A1DBB0DCB2C7C2A3FA" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "9DF2F41BF47DDC46C7B5A205A83CD8C2" "size" "BD581E4A78E73DC1BDB241360EBAF0C5" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "84731CC0DFAFAA8C6E67E82BF1BDEBB0" "size" "F8243A284E262FBDD9A679E2877EAD97" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "D17B658BC8EA578B2FB5606C41A28875" "size" "8516FA12DBEAF9FCC5F1AEBF6A2571E3" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "4EA06F4A92B24FBA1EE244AABBD81345" "size" "2DD405CBDE1319C482B560ABAD9AA816" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } "summer2020_loca" { "gid" "378E7D8607B8C9235E91342D001F0886" "size" "6246098743FFEB3002BC73A8CFD81EF5" "download" "8A45007A58BC842B635BC9AFCF64CBD6" } "temp" { "gid" "D3D423B2B08D90B3540D16F721508E4C" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "CEE64AD264AA714AC06F0145533F1ABB" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1086943" { "config" { "language" "french" "oslist" "windows" } "manifests" { "public" { "gid" "8008735149058056307" "size" "15717546" "download" "13555952" } } "encryptedmanifests" { "agerating" { "gid" "656C8506ACFE5760A63A4AEF5D86FD77" "size" "B4EB596C2BBD74E02BAE9D87466F4E9F" "download" "BC341D237E586AB2C479032DB9C74D81" } "baseline" { "gid" "85E778C27BBBB7E30D4C26462968204A" "size" "C598670816950C3679929088155AE634" "download" "7C4E2C1CD4267FA5A4C1B5C6278FB901" } "ch_main" { "gid" "888967BE9E01A7D5C34618D6CBF190A6" "size" "5BF367E27EADFA77F3E0E447AF7E8885" "download" "2B66A6F94E38C4754E0112B3534D39BB" } "ch_rc" { "gid" "CCAAA2D05A96370CE50E4EF4141BCC93" "size" "0EF9A7C3A14644B13D5DF21AD1C63B1F" "download" "802F58D89C895CA205F3ECA76AA95534" } "compat" { "gid" "F7EB52B7C8BEC33400D158F2339F0A47" "size" "CB388ED38029E01860E8643E1214B8CF" "download" "7FB4124F1A9D7964A47ACA3B24CCE1DA" } "dlss" { "gid" "686585CF6390E6A2DC41EBAC0301CC34" "size" "E7F33EDAE2D96083053F5F1E89CD3B7B" "download" "FBE27DB75CB7F17C873D8427A072C737" } "mac_test2" { "gid" "62A503A0FFF5595B096FA2FD8B1034C4" "size" "87E75C2458F098837C41313E6BD773B3" "download" "4A18260811DE2F9C5F2C5C351B8D0B9B" } "mac_test3" { "gid" "31AA384AF17F39B89A05979B72A39950" "size" "864C47B6A662B9D065A8038677FCC752" "download" "A6A4129FCF7414CACCCF7560B16B3FEE" } "playtesting" { "gid" "DACACFAC84C5D467970E1CEC380574CD" "size" "B33C71ACFB3FCDFCEF6E5BC2C54F59D8" "download" "966F7DEAC01C23804437595AC917F77E" } "pt_bcn" { "gid" "2183D59CC41F4F586ADE078EC6BDA2F5" "size" "0D74CD957B93759EAAD6BE982FC3169B" "download" "7E23EB32D226A6A1C68EF4FB1B9B7E6D" } "pt_dub" { "gid" "89FCCE9F9EF6985754783F64CC5C93CD" "size" "81B02228C0295C9893FA8E0AF764D4DA" "download" "07A8C581666E6A0BAB915B0D8DD73567" } "pt_gf" { "gid" "7E19D555EC06C3CFAB0558D1BEBCA8CD" "size" "8459CFAFF43278E80223EEC1C3CC12B4" "download" "7644608610F682AF1354421472225452" } "pt_gnt" { "gid" "414CBE0FC1CBAF724ABAC42BB89701B1" "size" "13F9D55DD012F0AF107A78DDF21F33F3" "download" "2A136C556D27F08B281D25F3C59AD218" } "pt_kl" { "gid" "9990550F29788CE5E71490B037CA1351" "size" "1B0A30D5B4F3853BC0B4F608ABAAAFEF" "download" "0121C0E99C841EAFEA90AEBCC4C419B3" } "pt_qbc" { "gid" "9901645A984EE4FFCB7AFBCB0C6B2AF6" "size" "28F2D5F1C9643E766B879F9C379839EF" "download" "C9C7FB13FEDA1CACB7AAA0D254146C34" } "qaprio" { "gid" "0F6F5D32B99EC81DE548C9F94058FEAB" "size" "2CEAC019001390E01F3DAEA9D56C4965" "download" "0EF6EFF048352A26F755FD247F520C20" } "release" { "gid" "CCF8FE6EF7E7801AB586482BA8966F18" "size" "68B44460C913BA23DA05F4F8BFC2B4B7" "download" "EBE24C2110E46D10968B8CC21C44B0EB" } "release_hf1" { "gid" "706F2C1E9E3752E54009102026D5EC79" "size" "03F850FDE8BB839B670CF7BFCEE4B0A0" "download" "C206D074269406A2F0AFCDABF3ADAD35" } "release_hf2" { "gid" "9E2988CAFE7CF7FCC9AFC924AB588705" "size" "5476E280FAE56410A385F6E3321A1491" "download" "9BE3A502D45F365991DC8390B2E8765D" } "release_hf2.1" { "gid" "5BEEF3ED1BB9534ECBC1CF12A19B0405" "size" "C0A84FA21CB43126C375E49D991BD301" "download" "ED927C36B7C15D4FB6F26CE3C91DB742" } "release_hf3" { "gid" "5786E85FB3CA6CD5BB9D59E7F4E459AB" "size" "F79A936885B8B84B57BBE43C5BFC1987" "download" "003C122C3C6562C2F62B51D5E724E0CE" } "release_hf4" { "gid" "D1E66904B40E4578B1263997321406F4" "size" "91B033CDE7211BF79EEE4EB624D8435D" "download" "E3842B500F46BF901EF0C6E89E927287" } "release_patch1" { "gid" "F151B6F11A9EFFB1A8FCA268151E6CFA" "size" "5058C5C56721102D5787379DDD3674D4" "download" "4DAC07F976ED79579B8DD7DD17D49295" } "release_patch2" { "gid" "BA77EE887A6B27FE58F49070FFE5A275" "size" "692647159AB0C562C86045818E63EAB0" "download" "326FE1B140AFAFD5E5A65DB742776A18" } "release_patch3" { "gid" "9BF5D6EEE08CF519A578742DB9E821E8" "size" "F5E053C20E17B7884D9FE29A3E555908" "download" "09E5839F7401B4283EBDB3D6811928D6" } "release_patch3_hf1" { "gid" "1DBB4655F2E409131EA1CD854FC74112" "size" "6AF2074F066CC72DD5C87E23DC25ADD5" "download" "82D7B146B60246B6E58377ACD377A7EB" } "release_patch3_hf2" { "gid" "FAB96A1854E4743D2E0EABDDDF5BC9FF" "size" "985B6EE024FE8673B8E8530EC87B67CC" "download" "3C20B44DD9059D2D4B8026159E817CF7" } "release_patch3_hf3" { "gid" "B304D45C4281374D725198060C08564D" "size" "D2FA1AD5AAC9A88F048C4AE703380BFB" "download" "2ED6FD6B3D6653D35749945690DFFA45" } "release_patch4" { "gid" "36DAC36F8EA97273EF9FE2606047C073" "size" "65781814403FBDC70333D783E0E88644" "download" "86E9ADC9594216F700609B80976804E1" } "release_patch4_hf1" { "gid" "14A050A6F2EED69E3FDC7A1946A9D1BC" "size" "214C50DF5252348993E5AAF879EC4C89" "download" "F0F8296F3FFB209F727C4873EEB1924D" } "release_patch4_hf3v2" { "gid" "24E4B36C18CB67985646B57A39C78246" "size" "C636439E5D0706CBD99F3F91A38B5480" "download" "055A312B80274598BEB44AF9DBA26EEA" } "release_patch5" { "gid" "765725631A56AE7B6A691A7F747357E7" "size" "EC421E2505857DC89F7A0D54C4CA6489" "download" "7E7150BBE1EB4F9D3716342093FC413E" } "release_patch5_hf1" { "gid" "4AA32459847CEDE8E3B92A7F3626650A" "size" "C435DF5D51A7D776F66F98108CF7BF72" "download" "C5A8228233C122D99640E3BFBA97A086" } "release_patch5_hf2" { "gid" "0B761F1F91442642DA93DB8FA643DC03" "size" "AD962742ECB8A53367D46A6B58ED277E" "download" "ADC39C074456E885F446BD9C9A423040" } "release_patch5_hf3" { "gid" "A4218F5C76D33157A6A50C557234719E" "size" "07BCA82FD306641E5C41D2FDE7C82F52" "download" "2045868AB6BC00AC324F31F3D5AAAC26" } "summer2020_loca" { "gid" "2F67578F0BE1F4D0E9023535AB4D397E" "size" "0B1555A59EE4F7AEB55AE3C6E87888BF" "download" "C7803AA2BEB19AC91A0D1855F96CEB22" } "temp" { "gid" "BE340115D96F27A1B93785B035AE8085" "size" "09A38165BC033722ED5354C1D1A6CC10" "download" "36962297343A7D9C478165B3E1763CBF" } "testbranch" { "gid" "B8B1BB8711BB5758865CAE4C0DC4020A" "size" "9820031A4F0789D82490CD38283E331C" "download" "5E96EF6E4920D44926BCEA38BF3D7391" } } } "1086944" { "config" { "language" "german" "oslist" "windows" } "manifests" { "public" { "gid" "9208400364782728522" "size" "14234918" "download" "12330800" } } "encryptedmanifests" { "agerating" { "gid" "126EBB9C3D4513AD0149B393CBECBFD7" "size" "1A73BC8590467ACBE3109C0E16363FDF" "download" "B71C64576A8AB1C097D0B17D11564CFB" } "baseline" { "gid" "561E996EF91C9D2E348F59915BFA61C8" "size" "70AB7AC3690AF17DB4C4AE7130797FA6" "download" "900B594927500CB0F1CAF8DB81701756" } "ch_main" { "gid" "8FF34DEEFAC32EBDE9C6A98678785FBA" "size" "85C432E57935D9E0A15A7A8F7F07C710" "download" "5822689C2F24E82897375880B11CC555" } "ch_rc" { "gid" "32CF7E91F9837FF41258737BA3A95E3E" "size" "B2826D402F47B19512E2039DBCE2335B" "download" "278F469BB5F60A3470AFFDD54F5D16DF" } "compat" { "gid" "9371791E2EA07FBA88E8D4EA1BAF0261" "size" "19D85BA44CC52D8E3A6627E5FBC20A46" "download" "48FF78FB707F3D94A87B17A8E90D10BE" } "dlss" { "gid" "4E443712500BAB3D7E4D6AA0D61C7B14" "size" "A8A87421CBBC7DEA6B92F5582E72F822" "download" "82C48A63C6E1095FE097259B7BE26E4F" } "mac_test2" { "gid" "87247FCBC6EE2CBBA06F1D45D06E6CB2" "size" "C582DB01D9E339247315F7DBF6AC9B27" "download" "FC11864B7E957EB2ECFD27055DF8C157" } "mac_test3" { "gid" "5488C73F601F47B3C4A0DBEEE4BF98F9" "size" "7B6B3330B1B7B83465350B28B6FEACE1" "download" "92C011C645622F46BA9F052F2C9417DE" } "playtesting" { "gid" "0F3C5E82A3AB2971FC26451AEC5FE127" "size" "C4212B7802CD315183B936EEEAB7DD0F" "download" "EA3AAEFDC37C16043CF574AC6CD17A9F" } "pt_bcn" { "gid" "791D5B0899F45F72C9BD486DC952247C" "size" "D0B2A177B1C56708814F4DC11CBB0AF3" "download" "A62303AFA43064A68B561C816C7D7819" } "pt_dub" { "gid" "14ADC08DE3E4237E2FBD281AFB14112C" "size" "E1A08EE7982A4751513C8C59DF265896" "download" "87FAF22D10D4D679154B1770644B0742" } "pt_gf" { "gid" "32FD0FCC7F967B6F8C0AFF9FDC958BAC" "size" "8AB482C646988B86BF5B21E679EB86FA" "download" "15ADC32E8AD3F0DFF5A997647B46B3CD" } "pt_gnt" { "gid" "9C70F5A3D3C1EF482F22222FE725D60E" "size" "A89146259699383F86BCDC2617AD25AD" "download" "923E91B13D982E878CE9B33BEC18E742" } "pt_kl" { "gid" "F71E35C6F739BDD9942BA5ABE308F963" "size" "BC465BA5A7C280A2E740E0DDCD0A13C1" "download" "F773C5AC2D9FF5B55493DCA19FD94079" } "pt_qbc" { "gid" "A3B65437D3959C89C15F356B5650E8D0" "size" "6E7E307691690B192379B4CB4C360A86" "download" "C0800E86D6B9CBEB3ECC1B79110D77CE" } "qaprio" { "gid" "4937346E8E1F60B99DE3F0BF587E40E8" "size" "C73417B4D6EE359A66A0184ECD2B922F" "download" "1A1B1A06531B81B5CD43C628A8BB6CE8" } "release" { "gid" "CFA84DD236CD61A8A69CCB1C0E9B244D" "size" "6730ADE5B2DFFE46389630AA1CE8DB42" "download" "C02ACABEFE2E8DFFB5692DA2346BF54B" } "release_hf1" { "gid" "51B04F019DA3F17F1E8C5480995460E4" "size" "CFFA2347AC6256A727B0EBD42AC0E524" "download" "82DC0C90CBC2370B8923EF752D28BCB4" } "release_hf2" { "gid" "A82DBC8A50C66224851E0D9E5FB9B4EB" "size" "A872F4976C10CB9B6087E83EC3B7F1E8" "download" "B915376EA5E47E924C549EC781BBD5B4" } "release_hf2.1" { "gid" "DA70E36059B80704D9D0112C2B09644F" "size" "8E5F4D99FA53EF36E308A4B0F2DB3423" "download" "1384D04FC413E29BC4BF0CE96BDC4495" } "release_hf3" { "gid" "12BE0280ED6E81B56D407D8F829D69C3" "size" "6FDA9F1DBB7855BFC1EA9AEF0F21DFF4" "download" "5C268897815EEC5D5995417C584FBD83" } "release_hf4" { "gid" "451D1B3298C52D2A977EA15A27DE181D" "size" "6691CC84297FF40CB414F132B554669A" "download" "1BCB7718CA5965A9BEE9C1BA5DF6A722" } "release_patch1" { "gid" "5AA637B436459345854BB6D7C3174463" "size" "10B4FE1FDD0BCC4FDF597ECA9B9D5494" "download" "B5041F61330298A525305AAB50A1CB82" } "release_patch2" { "gid" "224BFE01A1590C979E41B27101B6734F" "size" "30923E9A79902098AFF7768CD5C01627" "download" "E7B8C314B3A823F9C1D4F885A63CE3C2" } "release_patch3" { "gid" "F3F615C5A524257D97831D185163B589" "size" "6D41C31EBA9B9667261CE6C4A10ED865" "download" "03C8A34DB0428AA35D1326796575F044" } "release_patch3_hf1" { "gid" "FF22EC9FA09A2CA62018AB429CB1AE9D" "size" "3239237BE4EA61483D4FC578E0C01C24" "download" "51512C861C144FA9C3082758A0732A71" } "release_patch3_hf2" { "gid" "E9F8E6E206D6955590CBFFDBDA20A137" "size" "2A6087D570B80402427CD57D550FFD3D" "download" "56D7C9E0C4F484986E16636D40A72784" } "release_patch3_hf3" { "gid" "C4EBD3A3CC809F5641593427C0759543" "size" "49A4C4ECE23CF448B06D25D26CAC4533" "download" "2A008510DC618FE3269BDE466F1C78C2" } "release_patch4" { "gid" "166AEBB1A42130A249BEFE58C78A4C02" "size" "490009A0E1D44AE7437BD421E8AFB28E" "download" "9138B6AB3675F7B130D73D4E3E9D7B2E" } "release_patch4_hf1" { "gid" "7DFF0FBA69FC4568A745FBCE44ED471C" "size" "84F5866467CC9B0A86ECCFD274A94CF9" "download" "CDE579C8D90A5D6809CB19234297BEE1" } "release_patch4_hf3v2" { "gid" "DFF31900F3803BE24176FD1D387E14F3" "size" "C4135CF12D843B67007212A4AA8E84B8" "download" "EDBB2AF0BF7034409002E248665637D4" } "release_patch5" { "gid" "92379DF7B929B233B38E2606D7EF0CF0" "size" "F6AE6279A892BF0E60F25E0576D5E9BD" "download" "B7A1377649E8AF066FBD1372A3433CE0" } "release_patch5_hf1" { "gid" "CAAAAE090340EAC50FC692284CA3103C" "size" "9896431A50EFCA3ECC0A9457B2470DE9" "download" "7AE5AE9D4F7C8E86A175F7FEFD530A42" } "release_patch5_hf2" { "gid" "F601A82EC876254D91A6D833EA9E39A1" "size" "86B707E54783771F7D363A744870960A" "download" "37556B91CE6FB68F083FA927991092B9" } "release_patch5_hf3" { "gid" "EF95477E3930C11423E213D7EAE2AD56" "size" "3768F44480A3269FC53D777386BDCFE6" "download" "4CDFAB32096F3A40736D200B271230F6" } "summer2020_loca" { "gid" "0A29A8B656CD33C75E1E9A8AA091BF7E" "size" "98C794A18FE5D5578FB37953020D60C7" "download" "0A4D8AECAD0D2308096E13B21D5E9499" } "temp" { "gid" "8FDB203F917696096645FBE1C03A8015" "size" "2E3EACEDF075579D72D4F25B818065BE" "download" "7682F65F13FE3E9F095CD2E453E25018" } "testbranch" { "gid" "77647A887F29F06C128C8F3A96798D4C" "size" "B1ABF7127752018D01C6754278E08B94" "download" "93C6F751F66F1D01D2D11CBD073C6DF3" } } } "1086945" { "config" { "language" "polish" "oslist" "windows" } "manifests" { "public" { "gid" "8945067527389837312" "size" "15436458" "download" "13380160" } } "encryptedmanifests" { "agerating" { "gid" "F4549D79565A8F329CCB7DE530B16AE3" "size" "C2B0923AF8E569E7EF32DC584D203921" "download" "274FED2BD1EE2474EE3A94BDA9D302EC" } "baseline" { "gid" "7BC531FF90AC7E04705E54897A77B9BB" "size" "18ABCCB9CEBD5D511860208EEBC34AAC" "download" "62E8316CD522A02ECC8F796606506437" } "ch_main" { "gid" "C14EE98E439E621ABF881089109BEDE7" "size" "0ECF94D6ECA748B9653228394A847A06" "download" "793334C61D947766B3FEC487F81C862E" } "ch_rc" { "gid" "259FC255795907647F78D0B4D80B288A" "size" "35DB64E1A05731C391DDD07BF3078933" "download" "5D03392D52109905646E759416EC0A54" } "compat" { "gid" "9A2B8F1B6A3AEF7CD95D4D17655D27DF" "size" "71B8230C05F3BBD4C467377AFD5F75C6" "download" "C52937A0C33291032FF0D95E9535E4CA" } "dlss" { "gid" "25D99CEEE7582DCBC771A15F2EA706D2" "size" "6A39E5DF29E7DA09536CCB7469825695" "download" "6D2CE2C47BC74E5026358EEFF9AC5AC1" } "mac_test2" { "gid" "8051FFAB6DB4628ED0863BE46565079D" "size" "B155EB44DAE8FFD1E796987815E7B349" "download" "B93C5AC10E45C14969B59ABDAC5C680A" } "mac_test3" { "gid" "53A51768C5DE42231BA4DEC7FE54603A" "size" "0F312AD91D7D482B27D7CFDEA1D06B3A" "download" "D8712212B208EA0308B9301CBE463FCD" } "playtesting" { "gid" "787F0E2620F782CB72F542AE5E2BE60F" "size" "E5BC1868FE1B9C592DE95A3AD889945C" "download" "107E84038F12CAB96F1742E7858DD1AB" } "pt_bcn" { "gid" "2C88C9BB42C2E89331D11905B2560DA1" "size" "2AC5F9551EE5257AC182C586C8A202CC" "download" "84198ADFA0109D8DEA0FBF7902B5D189" } "pt_dub" { "gid" "6FE407C113B458AE9D847F47BDB10E3F" "size" "4E3871D554D87C687D10E64237EBB08C" "download" "B9A09ACFD24587D0CCB69A600228287B" } "pt_gf" { "gid" "F0F58625659DE4906CF697D706EC7699" "size" "E34400C1845249FED80BB6B7E7FEC924" "download" "79C40B15D0049DC8BAE18671426494FA" } "pt_gnt" { "gid" "4E73AF71F1A186B7AA351F6539636F1A" "size" "D822D484B9ACF179F35650D938C5A60A" "download" "83048F5E2FF60DE5636F287E70A23748" } "pt_kl" { "gid" "E26D36891E4D718B90C7DEF00A9929B5" "size" "91282080FD2785DDB970663C1CE90173" "download" "8B3BF41D50544E96CAE9712429CD0513" } "pt_qbc" { "gid" "56B9CB64F2A99F5FAB04A13C338109A1" "size" "E31989F009A08C8A1E4D286FA94F3698" "download" "5291C069390E7A4B21AF76309DF90E27" } "qaprio" { "gid" "6AC81C4CE2A4CA3C892BA17D902E0620" "size" "1CB1D54B600BD2F3A2728A37C3558068" "download" "7B5491BBC41B80BD602CB7BB24C7EDCC" } "release" { "gid" "99DAFEECA4C06C0AFB732E3705A0E0AC" "size" "00FA9F7BFD84ECDCEB22C450EBDA4DFF" "download" "F99373194F612641713975F3453A69B8" } "release_hf1" { "gid" "42C2BD790F2597BEA6296BB5A2E1E2CB" "size" "538DB8C16D3B46480B337E503D0E15D8" "download" "5EDC2863E1AEBA716BE28FA95D9DD75D" } "release_hf2" { "gid" "E34830315EE963EC08870020739041FE" "size" "F7D74C514E40610BF572F85409BA9BB0" "download" "A5AC45FA6F29BED7F8CEFC11AB801470" } "release_hf2.1" { "gid" "2D4E2DA8F14FA746A43CB837B77C9107" "size" "2E2BBDB6906C03FA5F9747FE058454EB" "download" "758662CD7FF9280E48EB5CAA632397DD" } "release_hf3" { "gid" "437FBC86E7C921027DAAB1EF839BF540" "size" "2CC67F7D9A50DFE29C1CD036145B385A" "download" "315BA605A71BD19857317A7B3154371F" } "release_hf4" { "gid" "B295413A2AD2E256428EAE4F675AE1EF" "size" "0A55FC4A0AF14FC9BC8CC699C8EB50CA" "download" "DFB7F381D7C35F96617FA06CD5EEC32B" } "release_patch1" { "gid" "791F8FF5E8C9AAA4BDFE5E8372F6C64E" "size" "E906D5E8495C28CD321A789446F38BC7" "download" "17F28D23CCD1257088F606B262DA0B5E" } "release_patch2" { "gid" "AE1C01530DA3CCF68019FDC62D20DD76" "size" "965F34F2ED638EB4A3209ED44D81881A" "download" "37C2E6D8E5C82ED45A2D50F6718B2A7D" } "release_patch3" { "gid" "4CDEF9FEF959BEE4E137A8F07CE2FBB1" "size" "EA07AC79AC38764789663330AC01BCAF" "download" "516C9DBA305F14A233272A6F645578EB" } "release_patch3_hf1" { "gid" "19B7A4CF8D57DB32F260A6C2AFB785A9" "size" "F65DEA5289FA9857B7763C461E8B402B" "download" "5F3B8E749439045DACC918BF6C64AE89" } "release_patch3_hf2" { "gid" "AF3948C0352DC193AD371B53C60DA788" "size" "250EF83632B3B97DB74C005B702F017C" "download" "5AE0EE090C29D84B04B1207BEA6ABD44" } "release_patch3_hf3" { "gid" "DB8242E02E766706E55096310D3D5D4A" "size" "25F99C73818EDAF65A7183C33097E5D8" "download" "9CF7C4F92F86DBCB2D1C2E62D012443D" } "release_patch4" { "gid" "C3F9C3AB9588B8019E1F067D5B4A2E86" "size" "6D2A0C85BC0B6CB5FD99EE97C90F2BF3" "download" "73769ED0759C561D7F952560816E764B" } "release_patch4_hf1" { "gid" "CADE7099BFFB955BE121B888BEA23A70" "size" "DE7DDDECBCD050C9EA38A7E90D8BA77A" "download" "F8C4CC44298F3129FE8C8343F091AD4C" } "release_patch4_hf3v2" { "gid" "35CA1EA8C412E0C33B8AAE437192911D" "size" "28C009105E96206AC5A8504FD1827645" "download" "FC74BFE9AB1A5076C52F5E193FC19A24" } "release_patch5" { "gid" "0DE73AF90510D5F40AAC26CF58EF9D15" "size" "4D6906D4A05008B57F02E6216E53D8AE" "download" "5057817AC51E05F35A66D55F91419D61" } "release_patch5_hf1" { "gid" "51E1816D82275B523D008C94D70D5066" "size" "98C45D47BCCA96FDEC612485B5F09F3B" "download" "606829DB48375DD32F2D3A90E92A1D0A" } "release_patch5_hf2" { "gid" "42EC30CE873C66C49A924B47C439EDDE" "size" "9C45C9ED106D8570B7C85B1547DA324E" "download" "36EE2BAE54138D46D71AC6921472896A" } "release_patch5_hf3" { "gid" "2F46832143FD7B4994969D4CFC794AE4" "size" "6E4B8F864268DB2BCE5C4F17E4E44DAA" "download" "67C65B88E83522F5BB062915FE0E1B8C" } "summer2020_loca" { "gid" "589D2FDD887AC150AD70D427293E0B2E" "size" "07FBCC71C09066E711573FBE97A1CFBB" "download" "1FBC09656AAC0F46739C3C7A0B02AA24" } "temp" { "gid" "C06A292C6874B89A7DBCB736427AE3EA" "size" "10B39799CB3A0EF1A2DA2E30B3505ABF" "download" "10664E59653AA6DB841B0F95C68070F5" } "testbranch" { "gid" "55CD828E0F8DE861C0D144C925B80947" "size" "C6CB9ADC2295CAFE68B745107AF28ACD" "download" "3AE83872AD4A976F57BC9A3A9F188ABE" } } } "1086946" { "config" { "language" "russian" "oslist" "windows" } "manifests" { "public" { "gid" "7402602084701025686" "size" "16723183" "download" "14585056" } } "encryptedmanifests" { "agerating" { "gid" "CE969B88F82CCACB81988C1382D037D0" "size" "E2D090D14E9D8AEC1A9B92C1D24E595D" "download" "906CBD63F6D84FFD28FBB0FF03D7C364" } "baseline" { "gid" "B1D7CBDBD331AF080B755A85814EC2ED" "size" "2B7A1BF83E2CEF2A8096E33EFD48D90B" "download" "CA30B103B44E0B0D292DE856D0E91B50" } "ch_main" { "gid" "AE202AEE69CA759AFB56CCFAA2DBC80F" "size" "F150A7ABDE12EC9A85E68724A91937C6" "download" "4A9D1F07AEFA58209A0433FD08FA5EEC" } "ch_rc" { "gid" "F4C131EE665497B4689002234D85D9A3" "size" "8591C8F323239F09CBB016EA71F206BC" "download" "40B5EC694CA928EAC2E769FD362D6AD1" } "compat" { "gid" "77CCB8BF9C9E45944B5F994D1F9C76C0" "size" "324176814825C088E2FD8EAA0C3E0208" "download" "56542712006523DA7283EAE367A35811" } "dlss" { "gid" "E2F7CC7A02249C59190CE0B2D0FF02B9" "size" "2F268AEB60329EC9D8D9593EBFE8EDDF" "download" "1F7FEF6C1E828A5632257F784ABB6BF4" } "mac_test2" { "gid" "2E38CCEF2E36A366FBFF2BB043D0801D" "size" "EB839198B30DB702F0BB8F87D724A739" "download" "5B43952A223B91DF1B509864C98D32BB" } "mac_test3" { "gid" "5ED1B7C0C7E5D055BD776B4DDE72FDB8" "size" "329BAA241112B920C827B3CD7C1052FF" "download" "18D9EA1A4D9539E3E1F79C6159051822" } "playtesting" { "gid" "0EBD0728DB3D3DD0281AD7E8CEBA807B" "size" "0F132BE03F9792D5DC7E8CFA15A4ED8A" "download" "136B316146A12369F5B5F0B66361E46E" } "pt_bcn" { "gid" "8293A137BEB76FFA79A4AC692DA51194" "size" "9DF25EFDB77B5A497137A93A2A6C1A46" "download" "AA8BA8502FD56480B0ED9E81F280AB5C" } "pt_dub" { "gid" "E712F519640A2D8E69A0B8A121D0D6A8" "size" "71489A658AC81F61CE76BC91FCBBCDE7" "download" "F3BE200C61381F9A9EF9517824B5C279" } "pt_gf" { "gid" "B06152D8503180FEB9034C55996A87E9" "size" "F0B1619FBCE274D2C316F768678A30E2" "download" "E762A4148F5700C44C305CE0CE274864" } "pt_gnt" { "gid" "FCA5FBBC2268205722406CBBA0A09754" "size" "55034AB1DD26D138F27D13BEBE70DE7B" "download" "7C6A3AD168ED36D19C34379C11F6936C" } "pt_kl" { "gid" "C54BAE6E71E9909B8F65E5DC1CAFB187" "size" "044BE4D1BC0B75B9EC10DF22B4962E79" "download" "8A8C3B7235319D688340DDFBC566D82D" } "pt_qbc" { "gid" "0A266DA311176731D91F781C1CFDFC64" "size" "1ED1CDE394DD6351DC36A14D95C60057" "download" "D77A1F9D991B0ECACFBA14ED463B680E" } "qaprio" { "gid" "958A826F6B4F5D1E4A79CEF98135EA1D" "size" "1EFBE3ACF3DEF9F52A4410886E2C36D0" "download" "7EAF758F27595774CAB985011A15061B" } "release" { "gid" "F33AD7F4BFB135BB037F857A60FB7BFD" "size" "D385A1B40A0AF2F31FE3FD98EEDC80C4" "download" "6EF679289AB4881EF0809E933E2F4BC4" } "release_hf1" { "gid" "11804B9A4811885F74BB1789933D4DB0" "size" "6CEA4258C60B7CC75AC3C2831A07E3DE" "download" "A23680FDDB542750E07DF3FF047B6715" } "release_hf2" { "gid" "E82F9CC15680BDF196ACAC3840CBD193" "size" "7240BBDD0E67598827BD8C637E953739" "download" "6D4CB4F0EF05D5F87BB2318EB28BEC67" } "release_hf2.1" { "gid" "36E8E802555A25366061601375124C38" "size" "B5269A7DBEFE0477084F2F9389CF62C1" "download" "DC842DCE2CBF1C32AA12F4F752AB8A10" } "release_hf3" { "gid" "11B27A059A835030DDB8644A395E28D0" "size" "6D75753B35551D0BA752A20F3F3AC53F" "download" "C1B062D53F144D4D88EA88EBA8807C94" } "release_hf4" { "gid" "7AD5B0AFD1CEE8E04950A6F8B60227E0" "size" "0BF560A05E39BFE7B33185C839154BE5" "download" "2152F8A21865F7A65F840B87C8ADB618" } "release_patch1" { "gid" "BC181C6CFB28F3AAD85376ED71910F30" "size" "F68249D670B317F42BC5497637B1A9F3" "download" "6017858A8A59E29629964A6B2EBA8287" } "release_patch2" { "gid" "8F81349A3152F7C309FEAAC52ED55CEB" "size" "95183A48EEE8F12C415BAFC7A4293FFC" "download" "8CF460C3F2ACFBA2DF7AE284DFECAC6B" } "release_patch3" { "gid" "FCF0879D73FC06D06C83CBA4BBAD4745" "size" "78A5429EDBB0712497580110321E7D95" "download" "88B42915A2CFF614E62292C2783EB501" } "release_patch3_hf1" { "gid" "57F3EB8D8049A14032475FAE30FB785A" "size" "4B319920D2A04F4873599197260A41A3" "download" "C30A1A3AF2501799F4960E09C1B5AEAF" } "release_patch3_hf2" { "gid" "35A3B9BA772093E1712D35F9AC015D3A" "size" "A53382DCF6B4F800B27570B64AFE4538" "download" "ABD3EBC9514C36B347C88965215D0CB3" } "release_patch3_hf3" { "gid" "51F94E76C17E154132EC5AFF5654D467" "size" "02751E7780447D91BA2249C3241A7BFE" "download" "EB8FCD95433EF7F739A4BB6EB512B68B" } "release_patch4" { "gid" "D89AF8D936B3B2663C789F75B31FC9C3" "size" "6C2EC6266D92FC51EBE6D139639F377D" "download" "EE5FD4E673163F03ABFDCB01579B1E71" } "release_patch4_hf1" { "gid" "1CF6F9A0BA4CAEFC890A116F7C49904C" "size" "FAA8620287ADB60B2DC017BBB12A707D" "download" "BCD4073DF1A20C164B806CF3DAB00F1D" } "release_patch4_hf3v2" { "gid" "182AC40A07F741CA3431C639A5B28489" "size" "30B419105819EF814857A4AFD99AD210" "download" "88CA1020B1123C39091A3A07FA100959" } "release_patch5" { "gid" "3F9C2C9EC283136515D9584B1CCFA7AD" "size" "15555C9FF4F51F0AB7436E5212F162BD" "download" "69DECEDF52386CA00E806AE696912CC4" } "release_patch5_hf1" { "gid" "45FE82F27C56ADF7F1CCE95D81A7C594" "size" "78B45E4F8C5B37BF1445E9B9FB06366A" "download" "1D17617228F9058C19E3B948C944FEED" } "release_patch5_hf2" { "gid" "DC971B14FE656ADEC7D3A7E96C9C10D0" "size" "31CBA1AFD7CEA4CAB172ADEACCFFA3AD" "download" "2D770D0178E5478A12D4C7E1824E615A" } "release_patch5_hf3" { "gid" "C30D1BBE7B7897FB220BDD2FCD792E26" "size" "485A30EF1FBEF17D56839D973E1436C8" "download" "B9C52E6E9B801590F7E57437F5E65D20" } "summer2020_loca" { "gid" "3C88509CB189A442434ECD5B5CBE730F" "size" "E67AB1E2CD7CDAC42DC1D6E1B590AD0B" "download" "C82A81E069EC969EAB3CD651B337CB68" } "temp" { "gid" "7F12AE7FF41941888D89AF9672A62488" "size" "4E0DBFF30B2DD6EB182281C055969F9F" "download" "3772EBB83AAC15A1F8E651AFE0934B76" } "testbranch" { "gid" "3987D7E48135A4791ED126AF09DB8AEA" "size" "48CE6DE98644B2985648F43B3F54C383" "download" "AAF090B71ADB598DC6D0C3853D0E8AF2" } } } "1086947" { "config" { "language" "schinese" "oslist" "windows" } "manifests" { "public" { "gid" "8495787776123148382" "size" "24202474" "download" "21236048" } } "encryptedmanifests" { "agerating" { "gid" "E44C47F919B111392DF45812938B141B" "size" "0990E879BC4764448E7A9B123A7D98B9" "download" "D16817FCF0B90FFF018D7B9D5DE27F89" } "baseline" { "gid" "607C83995B73D353BC7861DFDC54E6E9" "size" "0C041973A317040EA29DDB50CF15BCA3" "download" "2BFD421D20A5F0C229A9BE8334103706" } "ch_main" { "gid" "D721A48AA8100484B5882132D8EFDB73" "size" "A60161C3C342A3661AA5FECDF582F04B" "download" "6DED87373072541C7F20582E05E5FBB6" } "ch_rc" { "gid" "1363B1FDECA4A1BB829259BA58E562A3" "size" "5BD34B6EC6D591F7FF390AE1935005DE" "download" "F0CA11B0C092F325D533FC22F3B39287" } "compat" { "gid" "B09DA5E03A69D25FEC4B3B2504D6F8FD" "size" "EB7DAE01834027B409066EDBD8252B14" "download" "4CC40F8B75F172BEED7EDF85D5EE54D0" } "dlss" { "gid" "AF12E8E3E2830F617DDA2B9F23C8B8F7" "size" "9B13A7CC6F84CBB76AC14C780D838F57" "download" "B13BECC0FCB0F688EF21F3549C857A32" } "mac_test2" { "gid" "63C46687C1584522DCA1037962383308" "size" "EE4A7827A547F121E141FC6F447F4112" "download" "CA772AE836CEC95C311AEC56EAC3EA7A" } "mac_test3" { "gid" "BF223BF5A064FE4703D2515C1812D5AB" "size" "8E3E75152DC3835E1A1609D3358FE929" "download" "06D54BD6293E137827023C0952BA9735" } "playtesting" { "gid" "F134EAA57F4816A2951D04A3D1E24736" "size" "582FABE373EBC95AFC2A7FAF14A352D0" "download" "FA2EDD0B7E99BAB62DB2F1542DDEF7CE" } "pt_bcn" { "gid" "9B03B10CE045BA37714BA3143A3F261E" "size" "0BCEDDF6D5A7BB6D56CB27D6FE628064" "download" "03CDF542ED3EF85CB775BEC6358667E6" } "pt_dub" { "gid" "868B9998F77D2328AA53EE970246AD84" "size" "4F4C8AC510479993145DBA7FABD8911F" "download" "417A91DF3E61B00B15D60A471A2E47D0" } "pt_gf" { "gid" "8E42A10FA2BB934363C8AA22E0E006BC" "size" "9A1FAD99C01E384E0659A26E5492F7DF" "download" "CBCEA7A3753306B6969A4AF0278D73D0" } "pt_gnt" { "gid" "57FAB71991D1EC1709222498E0BB7CFF" "size" "8272A45DF0B6D3E73AA0BA88775CAAB5" "download" "3F2D31408B9E731F1642E2380D485DFB" } "pt_kl" { "gid" "60788F11CFE588A12898C8EC62B29DA1" "size" "A954D48456125AB2F831162AF7551B7D" "download" "86ABFBE33B87A7D9FE2A45ABE3371509" } "pt_qbc" { "gid" "9A9E56173FDFB30843A95F07274969D9" "size" "4D37D4E56720E210E1C1DA0A264F9BFD" "download" "A995D932735D4F5B0ED0F340F46AADFD" } "qaprio" { "gid" "3E040A87F877B47D7C547198B2549F31" "size" "0EC67810CD92C614950C91B1CE85CE3A" "download" "91D748483DE6470D034D03A33CA99DAF" } "release" { "gid" "BE940FD3C96D74CE6768C6486783D5BD" "size" "DFDCEA8ADFCF6CFC1581463D7290C6F8" "download" "30F23139329FFA0553CA7552ABAECC20" } "release_hf1" { "gid" "280344F72E30F1795662A59A13B1FD24" "size" "AE72B913FAAC3C2671B8E8BDF8B21B45" "download" "4B81547E4F34448658C8FF050FE6A62E" } "release_hf2" { "gid" "47D82991A16BFC5D920C381EDEDE92F9" "size" "894CCBA055DF9550471A2FDC9840A7CE" "download" "DB01423A3729D16140A4B18C1752A656" } "release_hf2.1" { "gid" "BC659DE3E749C985DF1EF8859C2AB9D1" "size" "7FADF05DD2BBFF8F7333ACACEC38DEA0" "download" "95F0B1743273E018E91D6E82C643B3A3" } "release_hf3" { "gid" "3891F54622675722D18BC35164D4A48D" "size" "DE22F79219648C38F7430E528A2E80BE" "download" "E5C233EE29852FA786076D7154BDAB6B" } "release_hf4" { "gid" "C7268206BBB560878BCBB15C74A1B749" "size" "5CB49D777B97359794A4D8179104A822" "download" "37F25613E6C9748C3E2AB092A72D5B8A" } "release_patch1" { "gid" "58D3E12BD2399EFEBC30FF02B68FC1DC" "size" "C6746366DF58637075D0E12379292C44" "download" "E6BD38F447733C44A1E0492790D4814C" } "release_patch2" { "gid" "0481A99607AC19F8ABF07C0C1128600A" "size" "617DAC3C5DA49C80CCCFC876F62D7D05" "download" "E04C04DCC6D887F37E0708208AC60F5C" } "release_patch3" { "gid" "A0CF09C2A496144996270915C255FD48" "size" "25D6EA18DBF6DFBBA746CFE1D3AD2574" "download" "E7A0A94769742975B131A0A2B1B6AA13" } "release_patch3_hf1" { "gid" "83230F1D62EFE3A7263116C0D40FB0F6" "size" "2411855387F29B1F0A5C69EA0908DAE4" "download" "5088EB070030960DD2C054EB3E63E473" } "release_patch3_hf2" { "gid" "77B78B9009C53B5A246E67F65252B47F" "size" "B067F2CA8CA24EB796DFC070B7F04484" "download" "CA9DCEEA3ACC3A11314E6BD48E745F5F" } "release_patch3_hf3" { "gid" "AD387ADFA6241FA10058C37B5843A92B" "size" "83B98E36695E656C33EB81DCE4CB68DF" "download" "6C7E50C774003D8A6650A7366DC0F933" } "release_patch4" { "gid" "D285C54673C1AD8D52A6F6F7001DE3E4" "size" "8E285C18CF6E621ED7940D47B20E1289" "download" "FF74BC96AD5EF1DA266FA7798C53BD64" } "release_patch4_hf1" { "gid" "5AB5905A40BD2EEFE2EE36057413329C" "size" "C2925C6757E11EE0D6EEDEF13FFF596C" "download" "6555302EE3755786CAA5B48A4B4DFB4F" } "release_patch4_hf3v2" { "gid" "2AEC81FA6E513CD6343D8E6B3465EDD6" "size" "C7BAF1CF6F3C6969B5845428A998BFD1" "download" "D5B003A85FB7BA14D132A445B98DD10B" } "release_patch5" { "gid" "BAB29399147D1ADBDD6D87CBECA0E1D3" "size" "6E76F1195B8ED90199F7EEBE56BB2910" "download" "46E08FE403676DB1C49D4169987223C9" } "release_patch5_hf1" { "gid" "493F4EF5D32689CE86FF9233FA687759" "size" "06658289DAEC6FA68FC1CD25157795AF" "download" "78C885CB51537D062D8649A62E80026A" } "release_patch5_hf2" { "gid" "42DE5BB09F1BA3B8A836C91FE78FF1E6" "size" "97DA93BDD9C6C12268CA62B4A0233488" "download" "25306073C4361354584BC2D785F89263" } "release_patch5_hf3" { "gid" "CAFFF7CCE9AA7885AFBF11F283157470" "size" "564CA58FE6966AEDB0E71CD4CDBC32E6" "download" "8807AC13F67ADA1B55FD61F044D86F76" } "summer2020_loca" { "gid" "0234B152BA44C99D9C13BB3A32E018E1" "size" "1A1662F3EFACC400589BCB2D4AE7034D" "download" "BAB3F61BD6F07CAEE07EE6FE9D445DD7" } "temp" { "gid" "7448347DD5CCE7FBF648A90FA7D49BDF" "size" "D2832802D5AB46823785A8DDBE96C8B9" "download" "23E8DEDF979F0683D8030B0B3769E6DE" } "testbranch" { "gid" "638664409E0B17C6D43393967270AA15" "size" "A7335810A00A37DFBCAC0B11BA6F7567" "download" "68C7E1B90D6FBBBD01E78FDE22EF7631" } } } "1086948" { "config" { "language" "tchinese" "oslist" "windows" } "manifests" { "public" { "gid" "8406583812490524501" "size" "32670397" "download" "28463248" } } "encryptedmanifests" { "agerating" { "gid" "FA7799EA6856D992901A049095A845C4" "size" "EBDB0D5CC931564818F6D550DCE64CB9" "download" "2C5C003DEAF55FA2494D47F1943B0D81" } "baseline" { "gid" "51CFDB92826C00EB42CB3B0B8AB71160" "size" "652E4E1267A416EE5EADF4899AB29EEA" "download" "EE6406926E9E03EC694620B34F4E2B6F" } "ch_main" { "gid" "0622810777D8BC64C795A76EBF990234" "size" "267B7F7DB3E6E5724B7728961E28A80B" "download" "A5E59818544C8550C4C84C70D40AFBE8" } "ch_rc" { "gid" "05DB3D35EC0F400F8A5D0FC180926ED9" "size" "CA5A2D4246557C36A62D8C7B095F5CC6" "download" "FE1801745D1C85D43AEDCD519E12A18B" } "compat" { "gid" "706E9A77FAD5D0FF3AA2F584CB2E43CA" "size" "A994D63605236A1F07F8030C43D13FF5" "download" "97175B01B04C1E4CBAD75E73C989CC67" } "dlss" { "gid" "1B20102757D467E1D141503AC124B3CB" "size" "08BA17BA397FDA4B5E5C64C389E8218F" "download" "E59B7E732F2CEABD7F9DB13EDCEF21D2" } "mac_test2" { "gid" "C5F83E6B93B3144A9DD8DC8DA63E4DE3" "size" "634E099430E76A46445A08E512D942AE" "download" "634E099430E76A46445A08E512D942AE" } "mac_test3" { "gid" "F67DA137965600A952AB3710677B3574" "size" "7A4C880D4C7541300FEE636C6976E8B8" "download" "F989A31D7F339DA5F4D0053ED335AB59" } "playtesting" { "gid" "DB32BA66746F9AE1BBF9B621DE0FE012" "size" "922983A3DD1631D45FF9B1B17A2DB073" "download" "C361F2436AA3F8B030D1D3D6A17FA844" } "pt_bcn" { "gid" "25BE899FFBFA7F20318CB3180DE26A80" "size" "A145BB7F92B52D77C59DB4BC43227AD0" "download" "CF37D754C50C8BBEAFEE81EB082DD9EF" } "pt_dub" { "gid" "ED7786C95937F5A9A2A3FAD7D1275341" "size" "A4BBC68168580E14897CA44250979CCF" "download" "7C17382021C22B4708C0DABAA82BACCD" } "pt_gf" { "gid" "3222AFD2679A22BFB70C0EABED4511ED" "size" "C45DA2870A5249DC47BEEAFB1F4CC0B1" "download" "D794262A0D4EEF545D260423F7CDB1CC" } "pt_gnt" { "gid" "B4DDE1E841D3FBF17E8627916B1C544F" "size" "45160F2B93F751E2E7C915ABCDD1CB61" "download" "1B00D0FD079C680D72B1B8F5EAAE4962" } "pt_kl" { "gid" "76EFC1B2A8DA2EB6467BBC929283A91C" "size" "3060A143F78E0CBDA7D013567652F916" "download" "97B0C867B11AA06B5FD1BEBB979F2393" } "pt_qbc" { "gid" "20E52F116B87B28C460B52CE30774497" "size" "3C2AF79A03B0DCBAF267200E6A7C92DA" "download" "07395527A3E5B25D2B7BEC1A29A0622E" } "qaprio" { "gid" "416D04170E0E3885B6A68A9DC8A65E87" "size" "D2D44ADA19E55B7828DD9E606A257FF0" "download" "D11B48249C4114618B7C57A2723EC3D9" } "release" { "gid" "F9771A7DDFD3BC565D515BE8CAB25C42" "size" "0C108F939FA17C999CDC9F8D4292C365" "download" "3020178883775949C8E1DDF50802FFD0" } "release_hf1" { "gid" "318B68EDDC5CD64FE4A11CAA7EAA7E3C" "size" "7CF6A8F98195F1F351544DB096816830" "download" "9E0FD6FC17477F7C6EDF43FD3C3A0E80" } "release_hf2" { "gid" "1B7B54EFA6C7356FC50E36C258B42A3B" "size" "8C5C33952EA85407AFEBEFA8B6D37F9A" "download" "22C3EFFB3954D82F51C205F89679332A" } "release_hf2.1" { "gid" "96177D0F4F692CB1410481FE0D6DD8BF" "size" "74D76484B39BF0D324EF6DDAAD159CD1" "download" "6A12ADD723F91B2636C885426CC6F2ED" } "release_hf3" { "gid" "C86DFBC0BE84442E9CAF60265487DEAE" "size" "718D284F7C7C9D2CA496EA6FCB147405" "download" "26CD3A22807BA265D5F2E63353674596" } "release_hf4" { "gid" "429CD03C6630A184AC2E816396871A54" "size" "D9938AD973E4C999155CC8FDC37692CD" "download" "9F09956762173AF4E9D380A5A037DE06" } "release_patch1" { "gid" "ECAB2DF40EA9A339D28A30C61ED1CF5A" "size" "B97CCBC074A4A77116C6B282472D8757" "download" "464B5741F3C76A44D13FC2CDBE9CBEBB" } "release_patch2" { "gid" "F947D17495394ED4C04ABDDDCEC2D163" "size" "CB05A750220C0DD2E62069EC2F3D7259" "download" "5BEEE4A25C0C857E516D944692084160" } "release_patch3" { "gid" "3F9BA45538854798DE1C5FD844F7245C" "size" "CAE6F8B1F3006A5016DBE397DDCAC9EA" "download" "1E52BD3569772FE51870B4EEC573B279" } "release_patch3_hf1" { "gid" "16171535D0081054F737D6AB52E3762A" "size" "FD978EC062B8A91A3030688473B19C5E" "download" "8A98B984B4614B210AC66604D84367EA" } "release_patch3_hf2" { "gid" "89F7015D95F6D8739609720161A2B0E8" "size" "BB4AE8D3E18F388577F82A4789DD82E0" "download" "D05810C67D3A6733AABAB39A7072C324" } "release_patch3_hf3" { "gid" "99314A05D119FD54BFD175B0AA95DB3D" "size" "8C968376562BDF593F573BC42B737F19" "download" "612F68315552D408A90A1FFC54846B69" } "release_patch4" { "gid" "4356667210B82D0D505F071188BD5EB0" "size" "3AD3DA02B6052BA58C13EA45AA6749B9" "download" "C969C05D3004337D59B8298E36866102" } "release_patch4_hf1" { "gid" "1FB028AA85B939AE98841FEF1D4BD970" "size" "02752088920170742B4DC6E54A329BBF" "download" "57A0D1B190DFC08F9BD64B0D0DCCCFFC" } "release_patch4_hf3v2" { "gid" "9B9382EC4EA25966A1521BCDF8CCE9FF" "size" "A6347CBF5D3D0B18AA1B9A259DC05A40" "download" "71BAA551FF6BDB8342121D37C8EB4927" } "release_patch5" { "gid" "0AD47FCBBB66E31A620703168980A8C4" "size" "8B1B0BF29F4DC12F0964706EAC3EDD8E" "download" "C828ADF8C9D7444DB253C90F31EFC2CB" } "release_patch5_hf1" { "gid" "87BC09D2797E9D79C4C8C64AE32EDABA" "size" "64DF516A151AEFA361911032A9F1568B" "download" "7A3B9963EFCB831B50C50599EB493B1E" } "release_patch5_hf2" { "gid" "EA7A5A3E283CEA6136AF9DACCC86E985" "size" "C0A20E2328D065D58548C1B798DE8F03" "download" "C3888C11DE951F1B47B92FFA615CF337" } "release_patch5_hf3" { "gid" "C9B6E8B2D87D3DC6E02FB88485E31267" "size" "9B79BCE1A2D61DBA3E569EA7D1BA939D" "download" "A1F109906F0427A5EB0EF3EF03EEAD5A" } "summer2020_loca" { "gid" "9CB57F4D02E490D9FB41B545DCE68C6A" "size" "900B9927B3D765E2AC08FEB8A2EFC4BA" "download" "52C819B331E6D29CCFE0629177B36C24" } "temp" { "gid" "9E820F43AF9AF83A8FC389E983827BBE" "size" "F5D776E2B121400734B722C45D2C0530" "download" "EFD576F72B791033028F3755D95A1AE4" } "testbranch" { "gid" "A33EC4148C2527B156F0AA462BDB3BC5" "size" "132D5C86DB7B6FC98739F47D6D55AA54" "download" "AA9EB70A1C07A5BE5B9291A1F8B37228" } } } "1086949" { "config" { "language" "spanish" "oslist" "windows" } "manifests" { "public" { "gid" "3818807388336577623" "size" "14343833" "download" "12361360" } } "encryptedmanifests" { "agerating" { "gid" "5A132E82D8AAA72BF80231FD94B20DA7" "size" "3E01F7BA98D91986C7FAAAC6D9705096" "download" "CB9D9EF1A0DC6FC6B4705D9DA94AB398" } "baseline" { "gid" "34BCDC6A11F61DBDA41FADEA3826FCEE" "size" "4738E11E426EB7AC0C012D4470A8D567" "download" "173068F02DEC4E8EA6F0E1746FB4F071" } "ch_main" { "gid" "6BD10C916070C369252138C4F15995EE" "size" "8CE34A50584F26E537EEAE0690FE3B52" "download" "3D60EAA5709096B4273AC197B403389E" } "ch_rc" { "gid" "EFA588D1E579F8B805F0617A2F0BB98D" "size" "A3F5E00B864F6A3271FF01B675801A55" "download" "536FB75F001006F2A2C8DCA020AB63E0" } "compat" { "gid" "69D8C756BB47AF1B5C9F896168E28298" "size" "4114AE5EBF7F8E9060010CFE5CAF0043" "download" "A620B9C1F6F95E4AC578FEE2DB4F95AE" } "dlss" { "gid" "ED980D4E4A1398A0BDD75C4B26F9F92A" "size" "D007BF4CFD831005D165FDDED51F92E2" "download" "FEA55261322C421D5CAD7B0F73EDCB3C" } "mac_test2" { "gid" "8147748519CD0DF2CBC1028781EFAB6E" "size" "807AB0CDC7AF351AA5840882B67F69D8" "download" "9D10536AEA8A5C99A7B30C8A388DB04B" } "mac_test3" { "gid" "24A5087D22ACE7CAF01A02CFEFFEC567" "size" "E977A3D22A189EC004B90E9E44F53512" "download" "FDD3D7C9804AD038BABC9545C4021448" } "playtesting" { "gid" "F6EDEBE50BE4599A1F9586090A9498C4" "size" "1AAFA4D732F05FA8BFEF24661CE80A0B" "download" "CCA600A3DEA0EDA49BD09B24CF0A1344" } "pt_bcn" { "gid" "88A6E7EC0F91892AA9D85D1D3A0BD40E" "size" "A6AACE7882B5D85E6A1AF81463F788C8" "download" "59CC01CBCEA203E1EB4DECE8F99FDEFA" } "pt_dub" { "gid" "FFC179B83FCC61249AA4D957122B21F8" "size" "11C546F7054B4717FE4E229FFD074A36" "download" "74A5C04FC1843D85FCAA38DE8F569BE3" } "pt_gf" { "gid" "1A23C7AEA5F4B8805FD327B45B9A1AE8" "size" "D0C28313BFF7C42A31A3F7E1637DBF15" "download" "54EB08A85421D9B7DB7AA642157892B8" } "pt_gnt" { "gid" "C68B860FE08B01AC811D9C4BD633B85D" "size" "C751A5F79BA62E97597EE82B2026023B" "download" "1C9AF5C654DE42DF5DF06DD675150290" } "pt_kl" { "gid" "0AA66A50C12AAE0A6957FD6AB9B00D5E" "size" "536E651DBFC77ACFB9153EB5912522B5" "download" "25D2100A651DF95CC15DB1B2EB26254F" } "pt_qbc" { "gid" "BE2E7A3030FE052FB24A41D9CC76C97E" "size" "53822C43FBF6E367FF6250D97CF877A6" "download" "22601B2B60078EBF836E896E4A7F2B93" } "qaprio" { "gid" "BF8CE1261C692604F5CC83B2004B5663" "size" "1D2C092661B0A1C7FCE7EA2FCB4220B3" "download" "47A25F28A30CAEE4CB3715E0258DE22A" } "release" { "gid" "0F8B51F9E2EFE2B993378FA3D0974476" "size" "618C01D392DF9B406D0B4BD9F8DCB9A6" "download" "4FA5F09434200E259452497928E0245C" } "release_hf1" { "gid" "B3460D0C0FB531670971411EE15EA5B6" "size" "925E90E3B9FCB8AB6FDB59199A6EC95D" "download" "C41BF4D2E469E57956F07141724513B1" } "release_hf2" { "gid" "26E98C418342E6D5586B3EFDF4E04D25" "size" "9E4318C784281F78672652B648C28786" "download" "AEA2322A981212CAA7B258A6C9891924" } "release_hf2.1" { "gid" "8BEF173BA9F6E5AFD123C723F054A76F" "size" "831B1998D47EAD126CA9310B7420BBE8" "download" "600173FB9E83662AFB50E4C926E0F8EE" } "release_hf3" { "gid" "8776E8AFFA7E8A29B9CAE1AF0BE4C807" "size" "D597C9D3F3204A68B5D40E4DE64FC8C8" "download" "8D0831FFEE486CB4DA6449D540FB565C" } "release_hf4" { "gid" "6219A3E3E272BEF877B32BCBF16DF9AC" "size" "B09B82AAD0F6930E00451EBB7487D7C4" "download" "DF37810CEAF79BE4C051EE562C67CFFE" } "release_patch1" { "gid" "899A95FBF107D565AA3D443B7B7F9BD3" "size" "479116892AEB7DE8E6E26477673907C5" "download" "E564B7D4F717DA14B35F068D791E06AD" } "release_patch2" { "gid" "A54A802AB3B4633E7790D8B94E77A1FE" "size" "FDDA379D646CAF5CED28E55F292EF88F" "download" "68EC3109D79D20DC0967B36523AEF982" } "release_patch3" { "gid" "30CA03FF5DA79C770A1826E4ABDB1BA0" "size" "73A5079F93A6D95A8A8D64EA4576FD57" "download" "CCEDB5E1D87678BE2EEB60FBE3D42DCC" } "release_patch3_hf1" { "gid" "2CA7BA7B895AAD71206B70B1F9D739D4" "size" "CA901102148F1160E489CBDE52978262" "download" "D9E2EB0E23693F06878BE2E928CA4B6E" } "release_patch3_hf2" { "gid" "F366B5BA4DD472898A0CF3AAC3BBB00D" "size" "CAAAE7D7BECE209D2BFF2B4BB2B171B2" "download" "D004C303A1373A1890ACB2C871CD0F55" } "release_patch3_hf3" { "gid" "938334EA83D8A7E578AF396A5C9E6C06" "size" "B281CFA92762DB399903B9F402543E55" "download" "AA0CDCE2EBF211ADFAF6DD5A9A8926FE" } "release_patch4" { "gid" "DA4868EBD44793D17573F2B1E44B2F3C" "size" "C0DEF5361D2D7CF3D3ACB8EB90F2BEF3" "download" "682949C52165B2C8361B6193BBB7B1B5" } "release_patch4_hf1" { "gid" "C5426982D8F2477F5E7E0EAEBD670D30" "size" "F799E74B134D491D34BE5D3E5DC2F72B" "download" "643FFA592F4CAAD577408B21F483F049" } "release_patch4_hf3v2" { "gid" "ACCC74CD03BC1411433B92C8531F5425" "size" "08A555A92936ACC15A5C85CD5E5A7317" "download" "4DCEEBF0DF6B423EF2EB44B24E18878B" } "release_patch5" { "gid" "B2E8586A4EAA548B95A6BEE0A89BBA30" "size" "6CF28C9C087E80E57FA9817DD63AEF50" "download" "9438DE0E197E713A300508F7257EE4AF" } "release_patch5_hf1" { "gid" "B8EEF89E8C6E2EA5607BDDA28BB675C4" "size" "468C48B74B20C201C4095B39E8C3F07E" "download" "544DD15A6FD4EB13BF3DC55E2A7A33A9" } "release_patch5_hf2" { "gid" "24793CF3C00489A928F9D965E308C49C" "size" "8E0AB158E38E1ABC799A58D16D4C030A" "download" "F7F6B2C07697B14A248055095D49B26C" } "release_patch5_hf3" { "gid" "0D4E4BFBA9CA7F8344B2E85468C03D0A" "size" "00E43A0B2D57DF4EF25A9508F6B58D69" "download" "85BD38CBD1F36E0C1A94A8252D5CFA04" } "summer2020_loca" { "gid" "D79DB38534664D7CDD8DFEBE48EBBE70" "size" "7DCA1E86B3E5BBA1A89AB35EF1381247" "download" "25E30A4D383980DC931245F84CA0E7A8" } "temp" { "gid" "0CDE244C447C3552CA4C0AB60E3C9E28" "size" "33871F1F9BEE6637FBF15C9CEECA686D" "download" "9EB4B95488A41E3760EB282BDDAFF1D8" } "testbranch" { "gid" "C631C2F17F2D399644CC3D6DC9E67092" "size" "4F585241FD5E5A04D97ADD5099DCD285" "download" "2BEBEF9CD87AA2BDAF4EDAA9AE386E4F" } } } "1419660" { "config" { "oslist" "macos" } "manifests" { "public" { "gid" "7342108998604490863" "size" "143516086917" "download" "116078327264" } } "encryptedmanifests" { "agerating" { "gid" "DA5666BDF17D76C836329C555B05E94D" "size" "361C4223B01B1298812B4512438B4171" "download" "F2C6701E1859F1F8D7A7BAA9C0DF16C3" } "ch_main" { "gid" "E9B8C4B7A1C15190FC77A010F6223DB3" "size" "023F7A0C8E3BEAA8E73361BB11E716FB" "download" "04E15CA17AF9B8B5AA6313A562890971" } "ch_rc" { "gid" "C77E7DD81C3FFC7B44D410FAFFFD0183" "size" "097A902C2FA8198A7EFD2CBAF1FCC8BB" "download" "B8B41A63B41CBCB0C8B8D8B1DC80F7D2" } "compat" { "gid" "085B515B6716577C727000E3B838A786" "size" "62D20CF8868FF08F9B771A2F03CEB6BA" "download" "23CFFA0885E53C146E0EFC9AF7F9D9E9" } "dlss" { "gid" "D8CA8973CFD531BB268EFB2B06C13DF8" "size" "FB475A7B1534D965DC5B7A1F8373D6C9" "download" "C3215EF759D48C404E69DDC87091FE91" } "mac_test1" { "gid" "CD9745863260D1280D4BB7D43B5DCE82" "size" "2C17B98A94D1DF0C634E9BE22E2A91AC" "download" "C32BEC2BC9DCDB63385524063EA836A1" } "mac_test2" { "gid" "46EF255603253D62E54BA1D77802636D" "size" "40BC744CBD394BB6F187FE0B8A4B721F" "download" "75139D1AB11DA5A220E2DC180A90C577" } "mac_test3" { "gid" "864F904F86D0F2C8FEEEECBA856AEDF0" "size" "810590813E523625336DC33820E2402C" "download" "8F78CD2FE29A6E1D23D5E7D4CABFAF6D" } "playtesting" { "gid" "4E7A4E2D2B5EFE9D6757A9F8BA3E1C2D" "size" "4CA5938ED6D33506481359E5464BF0FA" "download" "7BD74579D642F81EB131B888984565E8" } "pt_bcn" { "gid" "CD6D339F1EA2DFB76BC58C39B29B5CCA" "size" "63B923F44D1E9629997C783A33E40110" "download" "961E04F1AD3D57A2A8C4480D2B273A4F" } "pt_dub" { "gid" "DF0256E78E6847F5CAFFE319A8D5ABE2" "size" "881EA17B60DC0AB84A85AF4F486F0865" "download" "CCC93A0F0D015DAB0236244EA7A69414" } "pt_gf" { "gid" "2F8C64A0AB026113D9252C109473D77D" "size" "C3CCDB6BFECC61B62CB1EC6648228C8B" "download" "FF9F9A5818E7736C9B39A5D98BE79B8D" } "pt_gnt" { "gid" "F8795A7A297751E1D3FED622E30A979D" "size" "7912068EE69AA7900DD779406EE392B6" "download" "DA7B1D5BBA73D7343510F4B3525639C0" } "pt_kl" { "gid" "A10D9A2971C05B5A4064F2A3F706C581" "size" "60910893FBCAFEEE2C15E957A7FE109C" "download" "E030702AF1DBA8FA3479EE11CB40A03D" } "pt_qbc" { "gid" "5BFC4404C819592D4FEF7A6C097C702B" "size" "BDEBF28A608BD9432E9569B9E97E819D" "download" "477450A28121F70C8753AAF964FAFD2E" } "qaprio" { "gid" "AB998BFF9CE7ACC6D9AD51A62E4B1A09" "size" "86B6F331F0E87ACBF4784727DFC287F3" "download" "D2A188DB1EFED4040A03E90E46E1E01F" } "release" { "gid" "2C150654BFEB844D46A567F0C97EC778" "size" "991504A0957589564AECDE7E415A12E4" "download" "60F478068022C6C0E227823F7D367176" } "release_hf1" { "gid" "B98975AE7E7A8A48FE5E16317932D4A7" "size" "008A26D176E7845D54EB4BF01AF5F953" "download" "1003E89BBE536BB0A6377BD403C28809" } "release_hf2" { "gid" "945F6A07F3AA08D359466FD9D58CD27D" "size" "F0225A71D728565A96D052A67986C9AE" "download" "211A3328ACCD13B1CAA6A7D8493EE0AF" } "release_hf2.1" { "gid" "09D036774C3BBF4247298E175C856097" "size" "ABAB07A6D243D9C97E172FEE4C68B9C8" "download" "CDC96F0915093A3B76FC9976E3163E9D" } "release_hf3" { "gid" "62503B12BD6034C9575DBE5DAD4354CA" "size" "AC7F5F1BE2DFC487CF67AC212428F17B" "download" "2FBDD3F75BE7860DCD5D0CCA0268E49A" } "release_hf4" { "gid" "BD8D5858FB42310C1FFD2B068B3B2CF5" "size" "6DDC6569B5133B1C5D5B3C16B17DBB6D" "download" "FAA2D6161AADB0EBA42D8F3C8C9ACD88" } "release_patch1" { "gid" "26A84A83EF8F3FD2FAA385002090B4A5" "size" "17D72481803C0037CA1CC1D1D1CF2D87" "download" "BDA17C1918745B1125B05BD4D5D66F57" } "release_patch2" { "gid" "FDBD7488D71D0E67FB75A746BE52B00D" "size" "06A1CC0B3F3F3220A681441102059452" "download" "D079A05B20EFA5877F070F93ABC11470" } "release_patch3" { "gid" "64879D67024032F336B47EBB88005132" "size" "A33CBB10F30AB90B310C523E6445C2CD" "download" "6F3CA8C9B53EA38A7A8CF15F26874AC4" } "release_patch3_hf1" { "gid" "83B7633A707793AF4D293FDC9D9E0416" "size" "5373264FCFECEC74B4196AF6CE247F00" "download" "400A1C82653CD59E47104A873081F4B5" } "release_patch3_hf2" { "gid" "2B683C6043197E7F0CFACFBA83B7D50A" "size" "0AD045374C7A02E0C81056E895114A1E" "download" "EC8D7D65B81ADF83D6329900A9563032" } "release_patch3_hf3" { "gid" "AF907672D3085BA8B0D08A309CAC2B36" "size" "6601ABB5BB8E4E28D6E45E2DC591E89C" "download" "2D08CD04E480812B71216D62EC4B5355" } "release_patch4" { "gid" "B0C64A1B64EFD1CF495CAF6B7EC7EF44" "size" "40A71497E84A6A2AA7F6EE4C2F0BDA04" "download" "4B180AB6C4DDF32E5821F45ABF7F057F" } "release_patch4_hf1" { "gid" "C014FA2F8BC44A9FB8E764E23B6452B8" "size" "326DF2CAEF253BABBAD874CA7CD84FB7" "download" "AE081AEA322E3910EBBCE8EDD869AEB4" } "release_patch4_hf3v2" { "gid" "A86BEB1CA68CD18303F0EC49AD0A6E30" "size" "1583D9168F12F9E18C77EAC4D853B6D1" "download" "31ACC73E19D77183BB8F7AA07CF061F7" } "release_patch5" { "gid" "CF199FAE611A5DBCCB073164878FE400" "size" "7B049B1DD1CACEBEBC095828CCFE26BF" "download" "4445922C79E3C950D68BA60EE759C156" } "release_patch5_hf1" { "gid" "1AC0802A803D6ADF064783EDFDAEDDF9" "size" "5ED14D4EDA1CE644FA42AA6F77B41A03" "download" "FBFDB147225DCBCDD2E7948D4445A732" } "release_patch5_hf2" { "gid" "651819E74FF2E4771D901DB3C11FC0F4" "size" "FA68C3264C34B3BF87DEFC1AB19184B8" "download" "0970678C065966A352C31E8CBE7FFCD8" } "release_patch5_hf3" { "gid" "389A2C98022CBDAE8D5D4412D51888DA" "size" "D2789D9B9CFFCBECA0CB271A5053B440" "download" "89B5A64107367DBE91596246F05DF880" } "summer2020_loca" { "gid" "F13E1BDC6247854F06BE3956DF1B2FE7" "size" "A0C933D039A6979485E6928962CA53B1" "download" "05700145F55514DB61A0BA87CE56FA9E" } "temp" { "gid" "2BF7F6D99784B06F316DF02A56EC678C" "size" "1652AF41638AC5680AC97491C5061BBE" "download" "18C575C4D26624462559B09067E5F282" } "testbranch" { "gid" "7E48F4BE49850551CBE492FF81BC1C08" "size" "64BA296CDA8D0E74E033A6808CAB9B08" "download" "B53C820DA8D70EC7C78F5D9080D2E1B1" } } } "1419661" { "config" { "language" "english" "oslist" "macos" } "manifests" { "public" { "gid" "4191530919188121973" "size" "574" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "7B944E6CCB8445D61AB8B43523C8381F" "size" "6BBE51463054AB0DC78083FAEADE8DA8" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "269F57C309B30868BB71282804C229A6" "size" "9FD74F0E6026B580D44BD2FC1977DC4D" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "0C87A8598962F2740997547442843971" "size" "BBCA0B1365B8686211E7FBCE914B2A93" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "EA0B8FEA7BF50F807E6DB82329957652" "size" "1FF1B6936202380A34BD6B56C0FB2F64" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "8CDA1D961EA425B6E7BB2AC52D8B15E8" "size" "4C56FACD324964161F241B2BFAE16774" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "3FF7351466E504B280C11E687188D237" "size" "C48C1D89D0FA794F1B42EF0F92318A95" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "987F17FF5C533DC9C153B88CF8F8AC6D" "size" "5E8C152A1C2B00BA7D2D734342936716" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "D20B0237FA36BE12708CF00A425605D1" "size" "6105C8897C956C46ECD04F40A0179DE9" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "4CC55FE9A9B50416D4258EAB147007D0" "size" "6B282B824CBF095D9B18C1D351F8A759" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "712DB84B5A6D9BE260C6FE9CDCC638FB" "size" "DF087D2A915D9C9444861492E95AE741" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "3A44C733C73BDB3AD12B4BE5A1DEF96D" "size" "1B8FB8AED420D669F211B2459D6C82B2" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "6C40551456863D4B5F9B4214C0F51F30" "size" "C361D0E81B0AA58F48AB68DBAA1794C8" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "3F8CAB52C6CBC30B7A6EBFD858EA9DBE" "size" "DD95D9B05C89BAFDED61DC4553A4920D" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "3A0A8CFBF338939A93807C81CB1D09C7" "size" "0B3889FCE7BCFC108FD7FF763B659874" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "D41CD7F5300AA3DDB58F72647C6AB74A" "size" "2DFF7DEE7F4148C9FC75D7DB293ED201" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "5BFC3A7F8E9B0BD91083D4401C436664" "size" "E7AEC9569A0EDF07556ED2F6F94491B9" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "9DD68C01EBF03F18CAEDF9CAEBBBD4C2" "size" "2A63767AEFD8D6A55AE328069F23A9D0" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "381DE4F977B563CD1A53079BA1D37F96" "size" "247B1F904DB8D7E4E1FE5B76C8B80371" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "10278C9A41C9E1C6B26631367663B142" "size" "DC181839ED9F92E0741D697BE63E5B08" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "0E1C19C1FA04107A58C03888050BFFD8" "size" "77E22B5190F3D7F550EA216DD5F7FEF6" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "7C6F44C34EE0544FA8B37BA38C4512AA" "size" "158178778ADDD5EEA804BD865ED3A4EC" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "0D88BF2010038BF52933527C13162789" "size" "2BF344E37EBAE402FE51BFDB120A15E8" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "029E5102FC981E2D3EEAF252AECE9503" "size" "3EC532F47C77DC8C99A7A38752D89DE7" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "B32358DAE19DBB7707765FF5A915387A" "size" "40B44703D11B553EED74E074AB3FEC18" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "1BC0326B749EA45DFBA25CBE977511D4" "size" "AA0682B41F137D59808016594525404E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "E91848FA1013EAE88428E88607278E4F" "size" "6397833D4E97353C6B4EE91599FAAFB6" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "E5DE627328B5F1934664BAEF3408407D" "size" "F4BE13E10A34F3ED4F6B8107FA6A240A" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "595BD420C5EF322A44DEFBD5E4E7165B" "size" "38D095AD9D8386181A1561EEC78DB40F" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "B119D9446277E7B91E464BEFBD3A4B37" "size" "D83726B9B58DA7DFBC18F7DC67638BD9" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "5701F661A02C489A944BFF2642FB9882" "size" "B1BC0A4115DBF4335FD183BCCDF92E1E" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "D046D94C4C8313CD754D6E37101AEEB2" "size" "69E1F3DE315696C442632FC872916FBB" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "5CDBAC849CDA1A56192D82EDA730BF6E" "size" "F1EDB57B3763CDFADBB80324D9F0A7A0" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "1D2D930AC31716FBE8C53F4CCF1851E0" "size" "120E0FA080342A7541E5522B5D02DB6F" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "8076723AF99AD23277BB0B9DACB4DC49" "size" "3D5C91C913D84A33791686041DD49C9A" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "A96B795D50C9A4E73D397A8D1DF7B370" "size" "980EF22195A2A608FB9D4540184FA13C" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } "summer2020_loca" { "gid" "D8ADED181165C3D3B10BA154ED9E3F87" "size" "7337C3F67B69124C4F584E55F7A05D76" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "766CE56F1494DA76A260FD1925E1EBA2" "size" "AD9C7008B79B05918A3BDFBC93B1AAD7" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "7EED344A7DB59D70BDED9863C29CEEA7" "size" "5336E2B9C882B464CA133DBE874802C5" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419662" { "config" { "language" "french" "oslist" "macos" } "manifests" { "public" { "gid" "155056616988897828" "size" "572" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "C5499717220C2A3DC56234019974BD59" "size" "8CA612E406B8C60B9E70F76F6E598DEB" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "5A085071574EED004484BCDEE8B8D55B" "size" "8C9FBF06BD9897E135BA82D38076D2AA" "download" "25FB844F10D78D0399D8DDAE62F2EC8F" } "ch_rc" { "gid" "227CDC432B69AA4FE3393BCA360B8F94" "size" "BCD39907A16E216AFD6266644E6F175F" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "CE2B63D960D275449B638E12470E9DE9" "size" "6386F6F3427E6BBA3D83AF9F038FBE95" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "524901B2685F543B549D655BFF4A8E12" "size" "D13117D9AC274FA320CA64DF29C19905" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "6F1F1A0024ED6E2AE2B3367095EF358E" "size" "E414B6431CC1158A631B8D7C4B5A183A" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "99E27644A1CD821FE8C037EF860DF66B" "size" "0928C86FC231EEA8E7B464B8C2553635" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "35CE33666D6AE11FCDF2090A5BF4D1AE" "size" "6FDC85A68A1A461E16AC1AF57F109C4A" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "F405C2E3F0C36339EE0B62998CED6056" "size" "A971F48ABDE2D6BF6CBA778034972ED1" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "C22EDD0868701B1FC10A7454273E1B63" "size" "E088BA9F1542B7BBF675AD622A76D261" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "F830DF002DF4D9B75C6193D2422A7A69" "size" "19B638DE94CAC47A26F97605E5BCF751" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "205A22D18E368973112DE3906F3254B1" "size" "7F0D387EE8492363CE1A70670ADB288A" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "3B785C36CFD9757088E3287932733D33" "size" "91E638D858F18C5908176F73E1CC47F6" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "9E646D86D08BC056E63A9977DF9BD02D" "size" "0AA7A411121F2C42C12E77D9D173A6AD" "download" "97408B23D5CEC6E0BCFC4B463DA9C09E" } "pt_qbc" { "gid" "07083C8AC340FC88CDF7BA55F5A602D2" "size" "67FD9387D64DD757B260B5A5E2B382F8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "4D649E34E8DA44AD28EEDBCF29E6C05F" "size" "F06AA3794E020862E37EA05AA9E65E4B" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "5EA6F7E94F75EB89FC8390A51D910B43" "size" "48662EBB51B5124B9E00D67D56DB2B7D" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "0FE2B0F75C683C33137EB82AE7D1599D" "size" "A2316249CC4788390A2659CC9D809AD2" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "D45D56C8667305B86EDFAFB73D72B0CF" "size" "65BA6A708111512D84127FBDCB3563ED" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "91624595C383CBF2E00F9E9449BA34C9" "size" "9CE41972B666EBD5EDD030C08A385AD0" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "2527F6F1477DF7A2F7FB2B9D9D43D028" "size" "73258E06F90DE15631E533FD3CD1B8B6" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "01691A5BED3CF0C4395A0A7BB019C1B7" "size" "1A41B6FC4DB6FB71C8052211B773B815" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "69C7EBAAAA7158517173C6AE468AF87D" "size" "C56FA22C9669DB96A293264ACA648138" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "EA54BF8B0CD1F000B6183F62E3C1C019" "size" "5E3A9F3CF3B29C8FDF6734AEAC9DB0A0" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "D5654BCFE85665D8A5511ACD98C1DC68" "size" "EA1097B8C304D469FF1D6D6D2AF5831E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "A05DAA4B58510BCD84974195EA81D626" "size" "80FCB7FF0CE8233CFAB01D22AC8A911B" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "86B4E53789F23ABBB34AF3A663CCC9FC" "size" "17A54ED7CB83CB45F5C535541E84577E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "B382A384DB35A101A710B2EC10764B1E" "size" "D353EDC55BFF58FFDC01F9C6E059B080" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "16BFDC69D1FA7D562DB0DC6BFDF8F3AE" "size" "5A6ED9FAB9D206A5389B4EF8DEC88621" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "4C744DBA72E869F6BC1DC8D9325231D2" "size" "4F1D97C3731D716299463E7B0BAE2B0D" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "86261946A723B23510A01DE44988C915" "size" "BDF8E6BC38BA6C5461B869576D15600E" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "9C79AB2B3F51D0FD7B1876CF56018365" "size" "C8115CE76D3E0EF8DBBBE3D958BBA6ED" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "A085C4EAA2155D99BA591FAF2EDE76D9" "size" "3330F0F51A8E777ED78C4C21BDBBC309" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "4795AC7EAD12CBC47811CDF25738923C" "size" "D3310043813B0A7E0128512AE36C6E87" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "7618BA726109D1741E264DE964EC8626" "size" "3DBAE9EF22AEDDEB87FEB0B1EB344553" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } "summer2020_loca" { "gid" "223B465203D9E60D62C07D8C696C7178" "size" "F908B4893B5C271566201CEDA7783338" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "C4B77A16DBF358267DF6386CFC6601FE" "size" "A404017A2E9479C0202719B88EC4EF7D" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "5B2EBBE49541D8278A1C75F1BB7AA734" "size" "86F1F49B0AA837B5518AEBD30CCF1BD2" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419663" { "config" { "language" "german" "oslist" "macos" } "manifests" { "public" { "gid" "723954999732581088" "size" "572" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "B7DE90A01EDD0FB0A24070561AC67123" "size" "8CA612E406B8C60B9E70F76F6E598DEB" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "43905350D29AA2419B9FF6EBA5CA2E2C" "size" "8C9FBF06BD9897E135BA82D38076D2AA" "download" "25FB844F10D78D0399D8DDAE62F2EC8F" } "ch_rc" { "gid" "E93197298E6DB239F25389A7576AF8FC" "size" "BCD39907A16E216AFD6266644E6F175F" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "7A4CE48D26544E087F964A3A99BC074E" "size" "6386F6F3427E6BBA3D83AF9F038FBE95" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "7292253764E8FBC6D1C7C09F390440EF" "size" "D13117D9AC274FA320CA64DF29C19905" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "8D53D5399170CD22DB2BAAB2E8A58CF6" "size" "E414B6431CC1158A631B8D7C4B5A183A" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "98EDDD15411BD58F90C881F3D5A9591A" "size" "0928C86FC231EEA8E7B464B8C2553635" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F83C736E4D43CEA93079C84797BD4AB7" "size" "6FDC85A68A1A461E16AC1AF57F109C4A" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "BCF44B734AB0BA09919BDA928B2C38CA" "size" "A971F48ABDE2D6BF6CBA778034972ED1" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "B75D3E6106FD36C42BC896F465F8A13D" "size" "E088BA9F1542B7BBF675AD622A76D261" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "792A9C13D5740BB65E901CE806DC3F6E" "size" "19B638DE94CAC47A26F97605E5BCF751" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "589B5DB6484BC4FE9E7CC2BA996A6BAC" "size" "7F0D387EE8492363CE1A70670ADB288A" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "B2F1CE110663CC74755DC0880E1C926B" "size" "91E638D858F18C5908176F73E1CC47F6" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "44DB84ACFC6CD2E0EF63489722199069" "size" "0AA7A411121F2C42C12E77D9D173A6AD" "download" "97408B23D5CEC6E0BCFC4B463DA9C09E" } "pt_qbc" { "gid" "57AC047ABC94B8AC2B513DFD8035B654" "size" "67FD9387D64DD757B260B5A5E2B382F8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "C24A70E0615B6536E0168985F37A6DB7" "size" "F06AA3794E020862E37EA05AA9E65E4B" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "331E292B881616FD9C46D2455C827A2B" "size" "48662EBB51B5124B9E00D67D56DB2B7D" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "B10F01EAC5F533D89F2B0419F73C3E43" "size" "A2316249CC4788390A2659CC9D809AD2" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "C333B3207CADB377815E07E7AA20AF0C" "size" "65BA6A708111512D84127FBDCB3563ED" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "CED5BFC90A21B437807D630758E59017" "size" "9CE41972B666EBD5EDD030C08A385AD0" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "BC97A8F06320DF5A2682D0E0F1CE19DC" "size" "73258E06F90DE15631E533FD3CD1B8B6" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "4881220DD93928FA52E79AE1B2FF2432" "size" "1A41B6FC4DB6FB71C8052211B773B815" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "33249AC16CBF83D8FF5BBEC35F6DE9C2" "size" "C56FA22C9669DB96A293264ACA648138" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "D7AA2072A55C1043D63900515C06A6C1" "size" "5E3A9F3CF3B29C8FDF6734AEAC9DB0A0" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "EA48A4F7DB19CE33E8CD6B52FFA3B9FB" "size" "EA1097B8C304D469FF1D6D6D2AF5831E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "0A1EDA6C84DBB8D23396D89CBFAFF645" "size" "80FCB7FF0CE8233CFAB01D22AC8A911B" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "F8053E33915E136991F28A912AC0D9B6" "size" "17A54ED7CB83CB45F5C535541E84577E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "A2DA9E921BA2991C5AE214CAA4876714" "size" "D353EDC55BFF58FFDC01F9C6E059B080" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "F16C04705B8891058DB5DF29AD711BBD" "size" "5A6ED9FAB9D206A5389B4EF8DEC88621" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "77B350E310AA42A6A40E7BA36FDFFA1D" "size" "4F1D97C3731D716299463E7B0BAE2B0D" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "B393C559AA0B69C376749C55AE5D2E70" "size" "BDF8E6BC38BA6C5461B869576D15600E" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "F2D31CD9546B64929F94A654413D47D4" "size" "C8115CE76D3E0EF8DBBBE3D958BBA6ED" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "6CEDF0306878CCDD5310A736C66213E0" "size" "3330F0F51A8E777ED78C4C21BDBBC309" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "06C6287203A99CDA65F6461C52E56DF9" "size" "D3310043813B0A7E0128512AE36C6E87" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "F97F4527350ACB022465EC4325C856B2" "size" "3DBAE9EF22AEDDEB87FEB0B1EB344553" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } "summer2020_loca" { "gid" "9370FAD2F22885DF383740A23F147640" "size" "F908B4893B5C271566201CEDA7783338" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "EECE30CAE6770AF901EFB5872EFA43C4" "size" "A404017A2E9479C0202719B88EC4EF7D" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "B80DC5996DBE3C6A5D740785E005BD29" "size" "86F1F49B0AA837B5518AEBD30CCF1BD2" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419664" { "config" { "language" "russian" "oslist" "macos" } "manifests" { "public" { "gid" "1107219692270677752" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "6CB1EA35970AA1E536123E7676B7A165" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "DB91CA3C4BC0F305D37C270CF6960BE3" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "0C2CA9075D85A58162E2AD3C5CC90112" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "F4DE89194507E6A062E2605D7335B58A" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "DC27CDCB7C27D95F8C42188608C77F32" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "3C2234B77E825114CB4AC00D6F3C8312" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "4CC27166254024F2337C3784160F5462" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "2BF9F7F5AD5A0E4867E2CAF5E01CE9EC" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "6DDA16ECBFC52386ABA602C4E397B57A" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "E0672DA31AFC9FB6C49C325DBD9D3D0D" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "0B0940F2F8A0DBD4B42DB7AA751E85B4" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "A5E4DF51681A038744FA871B51772499" "size" "A936F6BA3B1481FB4908DA31BA922574" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "703C3B5263328BC3D717995E1FEECA87" "size" "9B133F53FA32B795E101B397AC5AAC19" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "45EB925136934145C7A29A91C80E2E7D" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "754F20AD0047936544DFC168D67FFEDC" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "DBEF1C55A98F481361D2234B1445666E" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "1620C6067A7730BFDEC4C5EE993E722A" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "B998B5AB5BBE9A2C82003649F78DE55A" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "17E046D2E70BA1248760BD92057EACA8" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "8CD36E0F58B912A14F98141FC3199A8E" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "E7D664BB1F7B1D21A2E3540922BCE145" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "1EC6F963AD3083F79F01DA8F233423EF" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "EEF53C3F0296E7F820BF3F86E5E5F0AD" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "6208EBC3F146062C5B9D9F8A824A0A7D" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "19B087A469FEA555065DDC248D4E3CF3" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "3F97F26DD85CCB67B9E7962ACB9F1CA2" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "FC93B26799EAB88D8B5650FB63C8152B" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "89DCA39878A98C66C38A3FB6B126BC69" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "D0A09E033938E8B43E4D536CA7FF0CDC" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "06A74601A107492FB2CB4B6F50BA5086" "size" "A8EE6F7EE25F370812728B2BBD2272C9" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "C3A07F765A8017852E61751DEE6107F6" "size" "FAB79ECB889337A1DBB0DCB2C7C2A3FA" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "F6EDEAA59712F26F5C17E7F9E1ADEA9E" "size" "BD581E4A78E73DC1BDB241360EBAF0C5" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "D3212BF731EC06F7CD73DB8B16C776E3" "size" "F8243A284E262FBDD9A679E2877EAD97" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "ACFE8AA929A1550C3A81FFA1618CBBF2" "size" "8516FA12DBEAF9FCC5F1AEBF6A2571E3" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "1B2852DDEA0E2B4AC66301965CCF31FD" "size" "2DD405CBDE1319C482B560ABAD9AA816" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } "summer2020_loca" { "gid" "594B45637235C79C1227B915F915BF92" "size" "158690BC057E3EFF950346013654EDA4" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "D9D41D0F7734EE91576CA458847ABCBF" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "5263D578D7CC4409F77011848A898283" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419665" { "config" { "language" "polish" "oslist" "macos" } "manifests" { "public" { "gid" "747776678919642180" "size" "572" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "F5873AEFCE6D76515418006E36BCC8F6" "size" "8CA612E406B8C60B9E70F76F6E598DEB" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "7FF726CBDDF1871C5448BCBB2A3353AF" "size" "8C9FBF06BD9897E135BA82D38076D2AA" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "1C15707F2A3FF9735C9D859D0330E5BA" "size" "BCD39907A16E216AFD6266644E6F175F" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "81BF1D4735274C35AA5A799FD6F9FDB5" "size" "6386F6F3427E6BBA3D83AF9F038FBE95" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "7492E028417D821B72B14A50DEA5DD2D" "size" "D13117D9AC274FA320CA64DF29C19905" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "D6F8EA0193A2CCB986C4E54CCCE4F33C" "size" "E414B6431CC1158A631B8D7C4B5A183A" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "2C2CD00E00CF2C9138F3E468014567C2" "size" "0928C86FC231EEA8E7B464B8C2553635" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F89A968521EB333042EF4D469DC49A2A" "size" "6FDC85A68A1A461E16AC1AF57F109C4A" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "ED61F7F2F977151A24DB7FA56853A012" "size" "A971F48ABDE2D6BF6CBA778034972ED1" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "3F8B38BE8426089FAF0C4E2ED32B8E7A" "size" "E088BA9F1542B7BBF675AD622A76D261" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "ECF7DD1D7A56866F348DF3F4B3E45464" "size" "19B638DE94CAC47A26F97605E5BCF751" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "7C6E7E0ECFDF044CE0C0FD18B2EDE9E4" "size" "7F0D387EE8492363CE1A70670ADB288A" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "0E84C13A87FC6CCF0CCB21EAFFF6D70F" "size" "91E638D858F18C5908176F73E1CC47F6" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "74BD22C34F66A6620F7C22841BAF385B" "size" "0AA7A411121F2C42C12E77D9D173A6AD" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "A05742D93925AF1880B0CE2BC88BD903" "size" "67FD9387D64DD757B260B5A5E2B382F8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "C3A4C64B429DF25A3EDFA8AB7C52E839" "size" "F06AA3794E020862E37EA05AA9E65E4B" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "7BCBB872CB9749EB6E327D74A44C8EF9" "size" "48662EBB51B5124B9E00D67D56DB2B7D" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "BABC9A324D09CC3BA28F4F5908D159D7" "size" "A2316249CC4788390A2659CC9D809AD2" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "FAEB9DF3F2206E3AA6641E57493C59C0" "size" "65BA6A708111512D84127FBDCB3563ED" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "98B9236A51C77804F8239813FA746536" "size" "9CE41972B666EBD5EDD030C08A385AD0" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "64F124381E62EA6AB99BEA0854620546" "size" "73258E06F90DE15631E533FD3CD1B8B6" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "380F4AB04AD42DDFC8B70F979D47D985" "size" "1A41B6FC4DB6FB71C8052211B773B815" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "320A0632B3858471F3DA13DD921E761D" "size" "C56FA22C9669DB96A293264ACA648138" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "6EE5E7DE37F5C0A741D7AF9EB8104656" "size" "5E3A9F3CF3B29C8FDF6734AEAC9DB0A0" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "EC5F391B0DD173208652E72CF06267FB" "size" "EA1097B8C304D469FF1D6D6D2AF5831E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "F48E2324751AA5E0BF659CEF0F98A861" "size" "80FCB7FF0CE8233CFAB01D22AC8A911B" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "9EA0AC784F17AD466B36C9B1859CBEAE" "size" "17A54ED7CB83CB45F5C535541E84577E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "50C5D5B9680372065D6672EE16D15D58" "size" "D353EDC55BFF58FFDC01F9C6E059B080" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "8161C5D7E6BE45F29A6F567C8F15F84C" "size" "5A6ED9FAB9D206A5389B4EF8DEC88621" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "F409CDAE93BAD836BFEB0FEB030E8932" "size" "4F1D97C3731D716299463E7B0BAE2B0D" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "4FD01485BBA2444027833DBE95AF6A61" "size" "BDF8E6BC38BA6C5461B869576D15600E" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "DF33385BCD1ED2FE939BCCF293FD5EF6" "size" "C8115CE76D3E0EF8DBBBE3D958BBA6ED" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "0FF9F1EA780992EE80278B3F9A0372B9" "size" "3330F0F51A8E777ED78C4C21BDBBC309" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "D4939C7A0E8C83DB28D142B1F9BB585A" "size" "D3310043813B0A7E0128512AE36C6E87" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "77CDB8427F5F974B2BA74D2AFC82B512" "size" "3DBAE9EF22AEDDEB87FEB0B1EB344553" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } "summer2020_loca" { "gid" "0572BF7FE25D60D2D1F16905262E96BB" "size" "F908B4893B5C271566201CEDA7783338" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "8F9DB772D1B3E76CE04A560A716D1D40" "size" "A404017A2E9479C0202719B88EC4EF7D" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "27211B89104D60ABADEF9D9C438A7584" "size" "86F1F49B0AA837B5518AEBD30CCF1BD2" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419666" { "config" { "language" "spanish" "oslist" "macos" } "manifests" { "public" { "gid" "314330023803655538" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "3090B944DF46D9A9CF5CA30583D3A74D" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "9BF7F465783F3840107F3B7C130ED591" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "06E25476E9AC602BD8A44561A5AB4F1A" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "107E822755B7EE76A5E4624619E34EED" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "3E71E64F33C49075632D7F8A311ACC8F" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "2C4E3A4F41281C099B9D129B05FAD3FD" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "5FAE65A34F6735A2A73263AB39A8D87A" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "9A712B5AFD1CD71B1EC721FDEEE9C363" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "A62FCDD12C29F59A17B71A4ABBC6BA1E" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "44EB09EB81F2C553CF5FF5F5EB6F9294" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "FE99062E8891D390CAA6683557BBE1F1" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "BB086EE641490804865F0F95399905F3" "size" "A936F6BA3B1481FB4908DA31BA922574" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "52469D4C22A93137C7EC408B2D59F462" "size" "9B133F53FA32B795E101B397AC5AAC19" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "140313E92EAED334B41B1C64D54883F9" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "855FA8BD48710BDB99639D53507F3CE8" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "3B710B9992252D68A8DA0159002E5911" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "FA2E1729F6264D93C4653780E7A0B68F" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "19195984C849483DAB49542FF78DCBEC" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "E2CDBAC214142BF200C7656FDA36B895" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "60860BA6F535A994C3D8DA941BDB5929" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "6A66BBFB38F4726277560EF8950A01DF" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "A90EF31241B5A06DFCEE8127BD0488FA" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "3E9C64ACF1B07BE9DF29D6058C6F60D2" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "24C1DDAED40AE52160817D3D5F588442" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "CF518EBADCB8E404A183CBE8F17F2683" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "31A8F57560E792D5E536EA5115953C78" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "D04DC92442055DE3A4CDC4BD8A235484" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "D00EDD8F33956B499EC664A51D38F0AC" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "07412D1B92B38832CA01AAC4025B7927" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "9C7DCC23B7EA356B32324330E358F5FE" "size" "A8EE6F7EE25F370812728B2BBD2272C9" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "598626D8A8E261C7C271AFFCE4D73503" "size" "FAB79ECB889337A1DBB0DCB2C7C2A3FA" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "228CE46825C2FD231E79EFFDEB537AB8" "size" "BD581E4A78E73DC1BDB241360EBAF0C5" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "726501FCB2963130AEEAB10D07E793AF" "size" "F8243A284E262FBDD9A679E2877EAD97" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "793BDD7779F91C8381EDB1718E6C7279" "size" "8516FA12DBEAF9FCC5F1AEBF6A2571E3" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "BD4344F149C26101CD11EF026F553F86" "size" "2DD405CBDE1319C482B560ABAD9AA816" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } "summer2020_loca" { "gid" "5D980905FEEFE4E3FDB50AE0B29A95B9" "size" "158690BC057E3EFF950346013654EDA4" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "D4733E794801B03CE99853D5BDD5CAEC" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "A9F44E85C9B869F8B2CDF9DB842F9C74" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419667" { "config" { "language" "schinese" "oslist" "macos" } "manifests" { "public" { "gid" "63003823326025800" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "40303ED49E2168BD193AABBEE5E55D27" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "7536C5A96B349314AC969F3E0779077D" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "84DD7D7C21D1FF8D2DD6B5989A61EECC" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "26C6956EFF7ACF394D0B37A79E705D25" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "33F0C22D50F4DBAA955CA619EEDDB37A" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "511F42F6B5EC5083903EE5438A0E21D3" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "FF70AF68440C5196A646DC7950CEE189" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F68E9D3AC9CC9253E6CCF33C5D55362B" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "CBC4A80549D9369FB252A9049002B88D" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "E205521AA75A9DA40EB8652AFB2CB448" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "2E98A441390A69076C38C80F9944951B" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "2C23D105D48BD5967F78AEEEB6EBD0B4" "size" "A936F6BA3B1481FB4908DA31BA922574" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "A5E17EB9ACCCA6215B7A2CA5545ECFFD" "size" "9B133F53FA32B795E101B397AC5AAC19" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "D185956EE4A26F88788AC68CB56668BB" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "D5B5A328F63285E046F02B93803C00EC" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "677FD5FD702CB96773D4DB976311F48C" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "98D4C5857A0932332C93B38967E46051" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "5B8E676E811368956982ED28E173FE22" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "3EB6DA1BBB55695D098444850D8CCAEA" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "4082974F7BAAEB263FBB813409F89795" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "5FD8B223DB2B90D80006D75A83F2A0A2" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "12490F465993F782B840822D4194C849" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "F713CEC2685B4D1E40DE8111C650E287" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "40E82E83DEA887EBC68CBA2BADAD8545" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "579BE38662C107042A2128B61346C876" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "3AD2B88A804AC02D956EC5434936BFFD" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "0D762B245FA99E0245D10BD2CE1960BC" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "D04642D5D46697CA856859BC769EAFD6" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "2C42A25317302C89607194C6CAA4708F" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "6BA1DCE42DF82231F24C3639DC93774E" "size" "A8EE6F7EE25F370812728B2BBD2272C9" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "6F180A448C79DB1ABC4631708BCEB65E" "size" "FAB79ECB889337A1DBB0DCB2C7C2A3FA" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "0B0B60BE2DAC02237CC67514FC16AF3F" "size" "BD581E4A78E73DC1BDB241360EBAF0C5" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "BFEC181BB154B4C03E2313DFE22AC706" "size" "F8243A284E262FBDD9A679E2877EAD97" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "2063F0DCFDD0924BEB6DDDBE4F38E370" "size" "8516FA12DBEAF9FCC5F1AEBF6A2571E3" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "7F033CFBD8C8468A6FBE0B3C531BD82E" "size" "2DD405CBDE1319C482B560ABAD9AA816" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } "summer2020_loca" { "gid" "FE965BD60F2A1182C725AACF74F4D8A6" "size" "158690BC057E3EFF950346013654EDA4" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "80932CFBC5854529CD0294F15990F798" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "1F2570DA2A7697276AD8A3EC6CE1B3E4" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419650" { "config" { "oslist" "windows" "language" "italian" } "manifests" { "public" { "gid" "7763225049078214568" "size" "15210788" "download" "13155552" } } "encryptedmanifests" { "baseline" { "gid" "508F19BB0991770F713688925F260BFE" "size" "DB52F1247359192E0C917175033BE76C" "download" "DD8249064CDEE1CBC6B2875FD5A5C6F4" } "ch_main" { "gid" "EC7147BC5B134E517C47818923763646" "size" "5BDDF65904604C0D594FD2F57A90069A" "download" "801E529830DC673A77F00841ACA723CB" } "ch_rc" { "gid" "CE63969EF1DA8AC27C3938E28D331E73" "size" "DB85062C6D6EA113FED5C91750325BFD" "download" "923D30A3D9218B9730567C1DBCBA9A37" } "compat" { "gid" "26890D60C851DA7B298F18B1F9F60993" "size" "80F3356F009098BADCD7F56F0A386F93" "download" "23B53AC4C9DFB484B668E87C62FC5D72" } "dlss" { "gid" "86C290157841F6D2378BAE4E710BB60B" "size" "B8C1E4CCE555C5BC342BE9BEEFCED586" "download" "F96F11BDF96DD6DAF23F302D8DBB6530" } "mac_test3" { "gid" "341E5456CCAE50D1F10EB534384F3319" "size" "FC09210A2D75F4AFC0F4C951BBD62A8A" "download" "611C9501E73F6BD5E24D9491F50D8D18" } "playtesting" { "gid" "2AFD79DAFB83E3B28B0BD3AEB045585D" "size" "970C4390935E0CE4C0238ABA6D1A2644" "download" "1463CC82EBD53D4D03D55D1FFDF8ABED" } "qaprio" { "gid" "15AA00A2D81B7E13CB3F99C9BB7A4012" "size" "62F01980747D1F5251F1522E254B6081" "download" "A2B25D77743C7B465217FFFE4821D2FD" } "release" { "gid" "93F2198DDDCB2CEF5C4B1E4F50A2838F" "size" "46A30012F33840BD4B616D19E8974872" "download" "525EE7A97E75B0AF16C6475D7AA56536" } "release_hf1" { "gid" "69EDABB28E4D1FE6AB227786663B5BF2" "size" "4EF419019C04C7DDB76173AEEE118874" "download" "DF627C5D38F15512B7D23161E2203662" } "release_hf2" { "gid" "B4AE48F0318D5C2F886E3EA970E9A271" "size" "6F0539BA9FDE656EAF85F968DE492215" "download" "1462BA8FCD6EC225F8FA3E804328AD42" } "release_hf2.1" { "gid" "D454E89999B8E375E6F62BAF3B2337F1" "size" "EB92F7A5A9D319BB4CCCAA231B05D3FA" "download" "DB107B88350753EFB258B913AA89CC49" } "release_hf3" { "gid" "F486400F052A6BAA074669FA802EAC48" "size" "D8D0FB00039DC451701DE3088F5B2F53" "download" "3E64306B1E21240DD86E65DE84284E74" } "release_hf4" { "gid" "3CD35D27FD57C37B1C5789675822EF89" "size" "8154A321DE7DCD3B0FC5CAC87A015D0E" "download" "A17549D1CC244D720C74FA55A2F986B5" } "release_patch1" { "gid" "B7AFE453517137731A6DAC0AD2DB32E5" "size" "76EB54F9C626E1CA17F443BBBCD21DA6" "download" "E27782DCC1A2B0240CCEE612811D7E97" } "release_patch2" { "gid" "89170FD088A14B0D88D1F3B14EFEE271" "size" "0C8389D33710DF47D5604101AD66967B" "download" "6D9CE6ED317EE6E2874D7426C11CD63A" } "release_patch3" { "gid" "154E9D6E733BC77348C7AA9AFA01018E" "size" "414B746C088D859F99B2C6ADA3663991" "download" "6565F583C7840E5ADD665B22A991AC3C" } "release_patch3_hf1" { "gid" "DD5755EA1D45E902A029768BDAED7544" "size" "3D46D752EF8D8FFD894014F4F9834CC3" "download" "17211610DC8876A41542BAFCDF2C0504" } "release_patch3_hf2" { "gid" "20D17F0690187B230EEACE869FD3A01C" "size" "78AFC9CD68609D0D67F1AC6CF9D6457A" "download" "35635A0F3384186350F5096FDD56C0C8" } "release_patch3_hf3" { "gid" "FFC55E9B140F8482CFE55A12016D93CD" "size" "6B23FD5A93AC751FFAAD1A6A036A8906" "download" "D79C49C65522319D07C179E554287CE3" } "release_patch4" { "gid" "9D8399E2E42FD2DBF769EE82395595F7" "size" "76DA83E770BFB70EBEA6441E8031CB87" "download" "C62AA431046D837BC8AB9BEF64166654" } "release_patch4_hf1" { "gid" "FC1ADA35355A6FB62C0FBE4C9531ACFA" "size" "515FA56F6E1F49BD9A1544A6B548AB36" "download" "9EE68083A6304DA53E112280E2CA82CC" } "release_patch4_hf3v2" { "gid" "F5705D6E86C2873F58D3A28E01C94EC0" "size" "7F273163846916904CEE07EABB5A6F92" "download" "0E61B8BAA4C51923050CCF225014A8AF" } "release_patch5" { "gid" "4644F7DC09C3A999F5AF30075DA32E71" "size" "736016817E3FA56B841991A6A9193F02" "download" "5280557072F1AD97628341EA2070113C" } "release_patch5_hf1" { "gid" "49089DF9000A5321B0199D06FA4C9402" "size" "34970222F6273B441F3EFC8F4D69FE3E" "download" "12A6C335FBD666C58064DF7BEA925004" } "release_patch5_hf2" { "gid" "669F9A039CF89435BDC54AD7E8795F50" "size" "6394AD7F2777C81B7EDC41EDCCAB2D0D" "download" "EAC7582300F569F8BAF113AF07C2B6C4" } "release_patch5_hf3" { "gid" "AE458609D73191E00F7FBA4F33E27347" "size" "46F6C90F829DC86A8586B32EFBEF5CE4" "download" "C81C12D2C7E73730541B081DB56B2253" } "summer2020_loca" { "gid" "21FBB246EEAB337BF1AA773E48C9499A" "size" "1791A9988F0FDE0EAA515F6BAE681927" "download" "D55653345BE8968386D59BE59CB09705" } "temp" { "gid" "CA07905DB0162091D49425E3AD9EF7D1" "size" "A9526CFBC8B1B9A04FB8CD1524271A74" "download" "69C3D0617F9E0DCB09C29A5D1C313240" } "testbranch" { "gid" "CF78E9A3F0BB883FEAC87950FB77421F" "size" "8BE680ED985F154AF24898327DE11C8E" "download" "F739A2C0E5D2D2C32D59D928096F5438" } } } "1419651" { "config" { "oslist" "windows" "osarch" "64" "language" "turkish" } "manifests" { "public" { "gid" "4682101258987618227" "size" "13475946" "download" "11669152" } } "encryptedmanifests" { "agerating" { "gid" "F4C54AEBA336DCFD684908DD9AF14507" "size" "8FBC6F1A11ED0C0C2AEFC8E1E1FBC411" "download" "16A55898264F1DD785AA6AE7843FCE14" } "baseline" { "gid" "C4AF7AA4E5A37A50DEAEE3D754045CB3" "size" "C6BBDA7CDD03670590E404307BA5769E" "download" "4D9E3FB996CA71216B8F0C58449DA49D" } "ch_main" { "gid" "FA78194584558DBCA45072EB8773FA26" "size" "D5EF349D468C704B827347F79A08ECB0" "download" "BD0ECF74C87CE9664E707A5EC7C3662D" } "ch_rc" { "gid" "A337EF3B6BA7FA0EC7AC1D5D67E46CAD" "size" "33D330D1B0D480FD5E56AF244868BEAF" "download" "49F9E678EFD7DCBB7112EAEB91D8A8AD" } "compat" { "gid" "B99C82857DA7BD03FC956A9DD2C42EE1" "size" "6BC3A28B2CBBC444B27CD616BA50557F" "download" "A6B09668AEAB7E39EBF2C5B51B242D2C" } "dlss" { "gid" "148571538C3DDA112722D360A75EFD18" "size" "BFF4F745724C0E6EB317257DED9C0C05" "download" "86C9A181EF44C43667CED3C604E4CCC5" } "mac_test2" { "gid" "3AC0BA9D28C0DF747F5956453FB8C5A5" "size" "451EBF982E7546235185C1B4B392F6E7" "download" "3E7D6E55A1F670269695A2A7D04C41EC" } "mac_test3" { "gid" "485029673CFE6EEAC531090D17CD317C" "size" "836EE3B256B51F5851E73438D47BDC2D" "download" "828CA4E869C15DF9CA111161D715E435" } "playtesting" { "gid" "814AC0A142864B236B364C568887ABFD" "size" "C69CBEBDBD6B1AAB26E8D1D77F5553AC" "download" "1B382B8AE51EC1BAC0EF72D76DEBF085" } "pt_bcn" { "gid" "2061F7337DD5EA5A91D64EA6824A24F2" "size" "FE5BE3D351FA725075A66735D0FC8819" "download" "27CEE998B339762E37AC4E496039C950" } "pt_dub" { "gid" "0695A4D0E87A11735440BFBFFC885D91" "size" "B99E200D3540778AA74CEFD249229CCA" "download" "068BDA272BD5E8270D77545C183701A8" } "pt_gf" { "gid" "70F9FF37FB52564241C03EABF19987BE" "size" "9005EA7FD31BC6CF1F62267B1A3E82DA" "download" "F126EBACDF23032E5E4C2AE776B4BB28" } "pt_gnt" { "gid" "4B4F91FBB2CA9114B7CAA2C99366DEAC" "size" "6366889DDF6A8B32354437928DAF0D12" "download" "69993829AA10FA36E6947F425E12BEFD" } "pt_kl" { "gid" "E48B0F4EB6132D23AAA2018864049DB0" "size" "CCF28A5CFCAE8531C09188FF73A1592D" "download" "725830F1FD37D313F8970C92181024CC" } "pt_qbc" { "gid" "100F5B02A600A98C77C4AB2EC2EEA781" "size" "6D5008FB48E1515E7AF1036C7FD217B1" "download" "3CBCCDE6DB134D6EF67E49C6463147FC" } "qaprio" { "gid" "73A284C5B778304F70A6E93153A2656E" "size" "7E3D8EFB1838637EAC7376376B98C38C" "download" "07BA5D5CC72103BF32FE88719C3F5843" } "release" { "gid" "30C796477911796B0FB09935DE125EE2" "size" "3B36FB1B77559B23F96C95F8676E970F" "download" "A96C0F17649D01DE83601D66DDAD10E6" } "release_hf1" { "gid" "2F2B4A7676DB089BB3B65439C7D7CF04" "size" "6572D75E50C687D2159BFDFDC1D137EA" "download" "210EBA6625AC218CE18EB4C8203F5B33" } "release_hf2" { "gid" "9F44511B4E2B344B79FCDEA99AB3806B" "size" "190FFAACA4390B926B7CAECC4747B798" "download" "B2BC8906108A8A23AA8F5036D9B914A8" } "release_hf2.1" { "gid" "EDBEC9D03EBDC989CC91A285253E6CBC" "size" "84899201C261944867AFE8CF8D494FED" "download" "DEF5167A0B5B854B200DDEE022F3E988" } "release_hf3" { "gid" "74E78F403DCC46A8F98C70D7D2764A52" "size" "0E25D22B9F081F05A6C7D46FD772DED6" "download" "9C57CC32F21C92A311B6F70BC97F02DE" } "release_hf4" { "gid" "ACBA5CA4C62ACB1D0603991812BD8EB0" "size" "B3EF412EDE04B08871A3E4F4BCD8A6F6" "download" "415E794A9A2FD394D98D55C93C26DDFB" } "release_patch1" { "gid" "848DE87F9512D9AEBEC58E506AB83DF8" "size" "53659AEBE5757AFFD81EE94D41B463AE" "download" "A69B0CC2BC41949608A0C431D86ABC03" } "release_patch2" { "gid" "0925ACC16927136EF658A593785002BA" "size" "F5B436E7753136F8B55863871971716C" "download" "3A49EBD5B0E58B9DFE76C9CDBA9CCA8D" } "release_patch3" { "gid" "70C25DACA06824A05C00C00311784078" "size" "11BD922C682A5149D03960EEC25B6C8A" "download" "E293FEAC13CF78EFA8C8C7DBDBA2B9A1" } "release_patch3_hf1" { "gid" "BA9738E1E06F672274000A0DE40C92C3" "size" "E33C03DBD6E19AE22CA8DDA6190F5542" "download" "6A0685E491594388ACEC68FBD4CBC5E4" } "release_patch3_hf2" { "gid" "DD2FC5424FE948DD58C86F6DFA5C3D23" "size" "C26481311FBC932CFD19AFC22773BB3D" "download" "BE63E6765C5E8D07B3FA6CE053818D5A" } "release_patch3_hf3" { "gid" "E9CB344067F44D490DF73EAB0F8FDFEE" "size" "E8BCAB8DFCF8808D804FC53FFB0FB445" "download" "D1A5579939C5779AC889B13E1618F58D" } "release_patch4" { "gid" "3ECEA45536FF3DE58EC62E1F2DB4307B" "size" "DF90516DEE859BC24FFF25B02436984C" "download" "4175A1751054BAF351EBACBAFD1FE966" } "release_patch4_hf1" { "gid" "4A4F89AB9FC8D431A0323CC74156E0E6" "size" "EA1B72DFD2314D3D99502C641DD1C350" "download" "AEE456ABB5086A7A31C611741A29D21B" } "release_patch4_hf3v2" { "gid" "9CA199C098261C8DEE96EFB323BAF3A8" "size" "7F92AA2845D745D7DD96E869B812F08F" "download" "785F6C7D70D8A3674C09C4EEAC0A0A02" } "release_patch5" { "gid" "47C08B55C378E10C6D50DC87898B1EB4" "size" "A384576FF6A8B965D6A6497AD04DAD01" "download" "2D79DE1F250ECB4BB9502A4688C8EECD" } "release_patch5_hf1" { "gid" "74ED9FC1EA8BF45242946C407D50E430" "size" "DADC70CFA816E598F0915C7AF6A9B42D" "download" "8C660ECFD763847BC44A0D20AD172169" } "release_patch5_hf2" { "gid" "BD5C304BC28CA6A982269896ACF595C6" "size" "2DB4F44A2DAAB54F86919EE0521A5F7B" "download" "F6211DD93478E8C36E8C91D2C511A8A6" } "release_patch5_hf3" { "gid" "9BC617E37E7448F11BD98503022ACEC3" "size" "B32FDA7D20BB0FD3FE6F1ABDB631FA80" "download" "A24EC9AB7635E4E584AC1DA8760C7D13" } "summer2020_loca" { "gid" "739BC3C488BCF23942673E62675D345D" "size" "7F95244CE8926C0F9DFE90BA273E9C80" "download" "05B8C3568DB09D0C190525750CB71B12" } "temp" { "gid" "580B41DC3660CFD2173B08EA91DDF608" "size" "53BE6C1BA5AE3B73494DA07E07579519" "download" "5827B9BE951A9CF38F9F1CD63BAD3EDA" } "testbranch" { "gid" "0CF7183DE3B16C690269612025BD0375" "size" "DC426966D7EE8B2C644A2826EF616ADB" "download" "D95B952E5F114C7886B9328A22350760" } } } "1419652" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "1652006648817241190" "size" "212107877" "download" "60430992" } } "encryptedmanifests" { "agerating" { "gid" "99A0335D5123820DCB8DDE21D4DE24B8" "size" "1CD3E979A174C54313DF98FAB8E1E4EE" "download" "3EFFF7051FA642F4DBCE450C62D921E0" } "baseline" { "gid" "ED83FB5DF9D5984D4E9374F52771CCA2" "size" "A21C2A16C214198AAB32E69D42E46021" "download" "6540451619FBC68D7B130B2691FD19AA" } "ch_main" { "gid" "6BACA627E5957BDA849054601964993F" "size" "45B6A28E77D6A29498D322F5F278CE3D" "download" "EFEF3D68498919C6B50193D0485C0049" } "ch_rc" { "gid" "6F3C27F42D4DAAA6515B9E8DEC3AF332" "size" "8D805F80F9244A9EB0D70569F280C757" "download" "5D078CC5C72540B54C1B3D484293FD7A" } "compat" { "gid" "A38486566FC78FDB41F13734B68ACE9C" "size" "275829413E1D6C38DA84B12FD937079B" "download" "E04CBB3A1B92DD39EC5B0031132C4513" } "dlss" { "gid" "AB68A9E4493CECA7EE149EB0A0DDC31C" "size" "40136BF3171CC4941BF4A563A730DC84" "download" "E1EBF1E0607CC01356870359616F0041" } "mac_test2" { "gid" "D5FD5E43B3F44525577F3E0FB6520177" "size" "5A18212AC18942167EFFDED1B3272426" "download" "22A34814870C98FB6A27C7364B2351CD" } "mac_test3" { "gid" "D27B523FE0CE82BACD4FB80767D3A2EC" "size" "B4BAEE865727B360483A92C487E3EAE3" "download" "84DADA68E2161C39B0CD9026F059BE66" } "playtesting" { "gid" "D83079736AF5B5F875CE674B4A6BE832" "size" "18824DFAA2CDF1CC71B515B65ECB1296" "download" "63F04495F45FC9DD5EC93154B34C51DD" } "pt_bcn" { "gid" "ECB5286A4E4B6E35B8195DB213297173" "size" "8D02C5133CFA61E1D8417BD16AFB7A5A" "download" "F9F28AD7DB1320BC17C062ED2F5B5C43" } "pt_dub" { "gid" "0471DDA622FB1DD93D6CE7DA0CFE7879" "size" "6A50FB48A937C2B82FBA1816B1D878AA" "download" "AF63C9E0F9563D16F4CEB5F73DBC2428" } "pt_gf" { "gid" "D71635820C917B9913E38DA6B4BA3554" "size" "A965DCCD2E6B0D8FE1361B712F147F9E" "download" "E9D5E8E02465ECDAD7767898DE59191B" } "pt_gnt" { "gid" "0F6E808F009E9908D1197B1BCA76A833" "size" "C90640B3E58FA1CE88350368E4820815" "download" "A15900E9CD0392CEE173222C512007A4" } "pt_kl" { "gid" "AEE88B17C3A32519C81CE9E5C5918CF9" "size" "0C2E7029C41F744A67E3E7BC962BC75D" "download" "63F68A7E6427E6D256FC2322500C0419" } "pt_qbc" { "gid" "4F5628F0CE62799048DF6BA836CA640C" "size" "9E302454C0F04D5B1ABF2A0BD34BBC14" "download" "616230813146D1447B71875360218D11" } "qaprio" { "gid" "BF789AF52A81A4FD89084D1A2846572B" "size" "5403D8C3D7A52B6BC9CE4822C3547643" "download" "CA6AAC5A115A6DCFE19D161A2CFA1B85" } "release" { "gid" "0855F8987D1DDCA7FD30BC9CCA45E4CE" "size" "36FDD01326EE53D5967CBDB14CFE19C2" "download" "748B4AE37BA29DFF491A4DEAABA2BF53" } "release_hf1" { "gid" "61AB5EB03AF63841DE0361CA058CA0FD" "size" "EA83438D086132624B2FA07D552F7866" "download" "79E26D627C91254FE03949081F15D1C6" } "release_hf2" { "gid" "3812612F4C6B6B8CB84332ACAA8F5E07" "size" "1433D8105971FD85D895C65E3DB6DA9C" "download" "F4032A77F36BFBD12D1314D11423378F" } "release_hf2.1" { "gid" "C586729C6C3BD55CB88D72761AF11080" "size" "794B7A4F4739BD5437E61BFD56FD0638" "download" "984BE99EE201C8FADE82F19AF2E2E394" } "release_hf3" { "gid" "024B91654C4C1245100CA6B2710FA7A8" "size" "4A96DFA8D5FDAEFCFF1B3BEFC66C4068" "download" "7B54D8EB4D204B34ACE94B7019EDAEC9" } "release_hf4" { "gid" "F4F1C1AE475CB7548DBB561240BA3688" "size" "779B914ECACC84DA5701643CDC48D8DF" "download" "C442DD0C2BC5F386E64992C61B5106A3" } "release_patch1" { "gid" "F827FBE9F819AFBF3C1E17D3478C3B46" "size" "FD2A3C99CD81FD3B61B3BA2134C5E7B0" "download" "62AA82B0A7DD30BEFC912E987C68E841" } "release_patch2" { "gid" "91F64283C41DC22CB0DAB6958AE8B27A" "size" "CEB03FC2F3AE6D3302EC31727358254D" "download" "961293F65EF05EFDC80F400B2DFEC523" } "release_patch3" { "gid" "7462C4697E1CBC5D577D24D54C65E0AF" "size" "518E921AFEB115C52D45BEA258E26599" "download" "CDF540BAFC5FD4233FDCC61DB441E405" } "release_patch3_hf1" { "gid" "9DF2F7AD2A5E52919A2BDDC703C1A1D3" "size" "7E9C3EFE678B2FAA43691194B2628D70" "download" "3B5A348126AE6EABA013C3BF28EA132C" } "release_patch3_hf2" { "gid" "6F970C1E281D4421E1531D576B681A45" "size" "9DAE798E2D9A5AB3E366DA9ABD31C0C9" "download" "B7671F8670F8E385233FF0AF95828494" } "release_patch3_hf3" { "gid" "9B2FF860139A89887FBE71B6F9C21DD6" "size" "090ACE9E51EBB7A2E6BAD2D213ED09F9" "download" "AD5E69088FACCF714A9442A70419856D" } "release_patch4" { "gid" "473226A8D8AC9C94FAB6477F1696B3E0" "size" "6C59FA53A6A252D02B36A2AA08B07BF0" "download" "C4D355DB2CE3CC293746952D3AD03F2D" } "release_patch4_hf1" { "gid" "0733ED5E5F80CC553AAF2E391A33274B" "size" "5F2E7B3FBB064754566208B3C786473A" "download" "C9F1F6A74271B98AE9B353FDD2352B53" } "release_patch4_hf3v2" { "gid" "B602110D8986A1B1D0745405552C3510" "size" "5CA20F6736D5CE2291C1E48D19EA496B" "download" "DD2F4C8875FE1ABBE215CC489CC9AE97" } "release_patch5" { "gid" "7B0FBB33381149FE70D6CD984C253C91" "size" "118DB3E6A091F7EEA6807086CE5F0879" "download" "ABC7A81704118ADAC66926881766EEFF" } "release_patch5_hf1" { "gid" "4D4088EFCAAA945349AFB42781C97558" "size" "C2E092214ABEE61085A73D8F06C190E3" "download" "197528BDC40F86AB07C73CF1C6274CD1" } "release_patch5_hf2" { "gid" "BCFCB95A0D33DBF3A355B5C9CA5FBBB9" "size" "3564BD1D162D61E9735A457681691B85" "download" "72011B665E7B65F30958731F38AE2F80" } "release_patch5_hf3" { "gid" "15E47A46D5B2BF63BE5E4C34A1CFB649" "size" "DFFD4C960230EFADEBCAB66B066D826A" "download" "E7F627838E012DF0D4D6D135822A0925" } "summer2020_loca" { "gid" "0ECFE16A02B900418A1A4DAC759B03D4" "size" "713FED2AE1285AE33CA73755F1068CC3" "download" "2EB4F41C0D2D8D991932A51D4C6073FF" } "temp" { "gid" "3608C8EF5378C6AC8F49850604DBD4AC" "size" "B699987E226877410AB988AF85AE49E3" "download" "CF5417445852E5AE84AEC1E115858D94" } "testbranch" { "gid" "BF7F3F20FD1ACE1472562B4C24D3B237" "size" "1215BAE454FC9357F373661A4A28D014" "download" "870F46CF62A9E830219D4C188CBD15E5" } } } "1419653" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "1167615239896797975" "size" "387545697" "download" "109337120" } } "encryptedmanifests" { "agerating" { "gid" "D36C8253720E3EB64E1A9DA44A845B2E" "size" "19530FCB0000A15A880673807EBE0BD3" "download" "C4CA4E66259DDD16A99EC3015171C908" } "baseline" { "gid" "FB52C9B3D3928F405194ADCB381443C6" "size" "619C38A33F0815623F62DC4DC38F78AA" "download" "D0C17CA671A987939FBBDAD51783CE3C" } "ch_main" { "gid" "EB3A3B5D61255C3DC4327E731A18D8C0" "size" "395F5A37AC26C9D70DABB4E1FDA55F59" "download" "95DA0CA7F8A0055BFAFC819865228B2B" } "ch_rc" { "gid" "D33F3DF236385B6B12149AE243ED79E0" "size" "35CA92A796AD341C7D82784AC69AF5E7" "download" "9922084AFE9C30E3FF6A1FE131450C00" } "compat" { "gid" "39A09B829231B9B32802B9314653929C" "size" "3A7B7A8D6EFD4F081D23A0367D372E6F" "download" "D231221598E013B7FEB50EEC1580D8A9" } "dlss" { "gid" "1EBEF7179C4D87FFC170F166C9E5AD08" "size" "789F09C2A1CE052ED4272281826A682C" "download" "248FC0B5C20AC7610D2597BF75CB59BE" } "mac_test2" { "gid" "906E075C852F28136FFAB572BCC6906D" "size" "09BFC354B21D7272B9864DA768AF0014" "download" "637E37D8A8FC12717CABB64D96450975" } "mac_test3" { "gid" "72B9BFF1D9B67407B662B9C373F0BA82" "size" "3816CADEB26DA627E28B23B8B0F400AC" "download" "524D7644F750FB3280529FC9BB66C589" } "playtesting" { "gid" "372EB09AB1446DD58664BCF698AE2939" "size" "BFD63B8B641A4EF3AADBB657B56D2C2E" "download" "F88FD4A78C8294BC026D771775247461" } "pt_bcn" { "gid" "C985579A9A2268221E7B0B4D006908E6" "size" "CFE7CBE2E637EC445FE817E063BCA26A" "download" "85145FEC6BE40C53D297CDA476250B73" } "pt_dub" { "gid" "C117D5555194226644C007ED63DFF583" "size" "2A8BDB59CA0CEDEC4872A91515E26F2E" "download" "8C7F8C9DB00A9DA5EF5A52EF06DC0112" } "pt_gf" { "gid" "59880E02D33CB3C5D4F880F0A9373B85" "size" "2AC4C2AEC480278C9604332B4F664913" "download" "649C69E36C498E9A496E18C69CAA50C3" } "pt_gnt" { "gid" "6247FE020DA037FA21492B5910F6F733" "size" "BDF1DC2806FF5F71F655C05DD4B892CA" "download" "20A3A27D17F16079CD82AA2C797BC641" } "pt_kl" { "gid" "E8D2F6245A1036D418A1CEF63EEA4FEB" "size" "B4078E864ADA485C4365E7EAD1A74A35" "download" "68C08E0605D5FA216D5BB9F973F9350F" } "pt_qbc" { "gid" "0F8C0F6A9CD721FD961D174217B6C056" "size" "284FCC4E8F54FB3A31FFADFF515CC570" "download" "172519EB4E50706CC7DDEE035FB33B38" } "qaprio" { "gid" "B0C1FCD95DE5F9D2E1D9188C1D4C448B" "size" "7858B705F13C0A429F9DE4F66A67BA4D" "download" "AA64405F6F85541590E2BC349EC10388" } "release" { "gid" "F18DC777E65B4DE383884B7AAE4D96B9" "size" "E976AD8608D14856D52DC68C0F9124D9" "download" "54E7D879E32E83F9AE91487EAAF3F80B" } "release_hf1" { "gid" "954C0EE7A1277DAEB8E244C0C6985E96" "size" "30F5CEAC85039A9F96AB2D68D0399B10" "download" "EC55214FD299A20C25E97100B5AB43C3" } "release_hf2" { "gid" "14DA3351071C8673F0B3FCF45FC319A6" "size" "8CF444D2617907747B0CBE8BDE6AABA8" "download" "66F31227B130A5CA1E72D240CA9DC88C" } "release_hf2.1" { "gid" "C230E33B5A8173A3A537C1778C35E766" "size" "95502C15EBFCBEB2090C91EB17D02B80" "download" "EA283903245CA3F108ABB9BE5691ED20" } "release_hf3" { "gid" "C6B62FED046376687BC5DAD4946EB6EA" "size" "1A8BE299AF732F74424B2CCF3388C931" "download" "2DCA71213EF615DAEDADD5D2E2F1918E" } "release_hf4" { "gid" "19D26AEF4EB016BF9DBF3C72FE6489DA" "size" "F2C2FC04DA558FECF6E4E0A4CA6F3F4D" "download" "8FC308DF9AFA9B758F7EFFCDFD96B6A6" } "release_patch1" { "gid" "054A384B32F6D6E2F920DB00E0F87CF2" "size" "5AF7A14AC8D90E48909033DDA25F6902" "download" "1BBC3D8BCC3B6CDA22F90E838FA25F9E" } "release_patch2" { "gid" "D749F2354535813DDB63650CB753E195" "size" "CB87D2F2814653816FBFF49EBE652851" "download" "0549A78712AC7AE8938DA4885317280A" } "release_patch3" { "gid" "DB8409630E22DC8ECD0A061B4C80E79D" "size" "604790F88D9C5094E5DE01C60C530344" "download" "79446F98AB68A682CB0FB826A6CACE2F" } "release_patch3_hf1" { "gid" "1E4D468EB5F540FCE648924CA55C134E" "size" "2098F358A0632B107ECB06C11BD40BD5" "download" "252A1520042A1EA02ACE84EF13C2F17F" } "release_patch3_hf2" { "gid" "88E59645B7BD6261EE9D58840D3B647A" "size" "A082ED20924AE2A8EE91326622556969" "download" "EE823FC44515191A7160412375728997" } "release_patch3_hf3" { "gid" "85D0A9A9CC4E44B375CBD7073EF3C81C" "size" "F8D02EE8A757501AF1B645031A1E41E0" "download" "BFDB5FFC1DC27FC141E5A061D75F6EE2" } "release_patch4" { "gid" "31842E1C0808216895DF43FD59AB2A73" "size" "7EC61C38CA08EDDE192DD6844899A324" "download" "8FCFFFCBFA69B4FAF96E7CD298077606" } "release_patch4_hf1" { "gid" "025B7CC30244C83DCED5B4A2F178DD65" "size" "1949AEFA2BC1B9070DD5FDFC882EDC2C" "download" "9594EE6734D72A985F7221EC8CA9881A" } "release_patch4_hf3v2" { "gid" "97A09CBA4D58866024B80FB3BB889C8B" "size" "633E984E747A3E9BE75C68F32186F13D" "download" "C6DC248CE5471AFD86BBC9CA98E22BDA" } "release_patch5" { "gid" "9EAE18883E937FFDFB4074E99D36200E" "size" "23E91FAA0BA0CF436051980DCE621976" "download" "F2E5A62458FB313E2743B56F84B27165" } "release_patch5_hf1" { "gid" "62ABE46776451B8BFBF861F19A65E637" "size" "E14C11D75A185E8F4BC63D66927C4990" "download" "191BE20DB783D136A73CF9F1DCEBA854" } "release_patch5_hf2" { "gid" "CEAE1EF62C08512BA14E6033767F1FA8" "size" "313CC9B6ECFAD31723DBCEBB7A30D92F" "download" "F0DF0EE14C094E40FDD282D0C11BE50D" } "release_patch5_hf3" { "gid" "50549545AD161ECD621253BF285CBA86" "size" "379593F23DF9A1818FD21FFEDB1481C9" "download" "E401E3F95386613F1B61FFCD10940F9A" } "summer2020_loca" { "gid" "9A3FE27BE631FC71D0633DBFC04D28A1" "size" "85C10EEBE84C3DC8D87639FF1EC17FA8" "download" "E612F7845EBFC47472874B2293FE5442" } "temp" { "gid" "95D4D9BDDD272BD6FE15731EAB463348" "size" "F3A1EB078D463943B73AD0DAF1F853B0" "download" "712D20D1DCAE6BEE2A07BB6D2F1B0D06" } "testbranch" { "gid" "B6A016620635C61C0F382DA0E53EB049" "size" "2C78D0415DA6CF9057FBA6D05A141A26" "download" "4E1BDAF1871F04AF5ED6708FE9CF595E" } } } "1419654" { } "1419655" { "config" { "oslist" "windows" } } "1419656" { } "1419657" { "config" { "language" "turkish" "oslist" "macos" } "manifests" { "public" { "gid" "4548607990756240099" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "23AE7F42FB1F0481289B73E0A444FD1F" "size" "956310251BD8F86CD14F5B1FDA2176B1" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "14526FEB214939C98064DEFDF32CE125" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "D4A8F3CC8C9D6FEF16A8AABCFFFFE2E5" "size" "F512995CC77621F8930AC3EE39D53495" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "9F215FE30668C2BDCB2055AB622DBA33" "size" "2133A2FF3D1D0F46025AF53488EE5399" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "1669276F26BE81D1A79F26595FD3F4F4" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "34749D931203B73C9162CCC9E9E4EE5F" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "71B0458EC25F17128A4396476D5359B9" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "4A2483CF497DB70C2A26B49257FE3A90" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "A7BB73F008285BA4872050853BA7902A" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "F915B887CBE0828FAA3AC4CA8AAAE4FF" "size" "3662DB18DCB6ED5FA08CB9249CA9B0C2" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "F62B13FD120F78D022FC30082D7C6116" "size" "87F7BEF78BD29B0F591DF32B7A489842" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "7EC202B1F7313AF360E94319E0263EDE" "size" "5D031AEE8075CDA598E002896185D996" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "3531C0432B689322DE4402A69C2BD2A9" "size" "F8846A7E7FF7D38033F58EC820ADC4DE" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "A3AC26BE4FF1BD6DC453431EB8C12D99" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "5FB92FA46FE857C66C095C6F794A3729" "size" "F876BFD6E2AC5D21F308F86F1ABD8459" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "BFA33F20093E051E887D41C8E55C2C83" "size" "0B8C375780B22BC4AED41957FD0D225E" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "371CFD457542654FF438A5ED02E5FD76" "size" "18803C7ED2F60F9099A1F0A845D8FA78" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "4796BA336B743342528FE10F697F1405" "size" "A802D1053E20EEA74D73EE4B16392286" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "718D746ACEEB5659549BC20156EBF66D" "size" "8F29B29B2ADE8664DDF52A344A65D885" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "58A1D5B8E146EA4A3F45B046ED9ADA1E" "size" "6453935201A73437548FE003204603C5" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "A9B4D0D684ACE64741481919638C75D2" "size" "9DAB359428C850D5F3C3B11059705B5E" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "0F8E44C163AA43546527373BBE795F18" "size" "191AE0A0DAF7215F3522828FC1F72A2B" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "EC8DB686E41D76719000B173CD7B01B2" "size" "70205BECC334EF0A4752F38FE8851920" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "6049B7901477D9D87365CCA00DDDE9A3" "size" "35D75A7977623AB42AC6981579A56514" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "A126C6231495CA699B5AD50A89AE8021" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "745F81BE33BBCBE868999011046478BD" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "20AF8A2B1E04FEEB4AE98A4DC4699C08" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "BF2F65C9D2FAC07E60C04E961689E98C" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "41E1C8FABB07D449E5387BF51CC5315F" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "175D75EA0C8E73AFEB02A0FBA0D14F77" "size" "A8EE6F7EE25F370812728B2BBD2272C9" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "811156F18C4F5EEA1D194EA7D1D0D68E" "size" "FAB79ECB889337A1DBB0DCB2C7C2A3FA" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "333660F6439F241B7C760F91A4D77AA2" "size" "BD581E4A78E73DC1BDB241360EBAF0C5" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "9335B09F466C9FB8A06654AF40C35068" "size" "F8243A284E262FBDD9A679E2877EAD97" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "4F5FE4E9E7DC789362B407C08A28702C" "size" "8516FA12DBEAF9FCC5F1AEBF6A2571E3" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "BD72D8190C047AF6419B98C6A47F1BC5" "size" "2DD405CBDE1319C482B560ABAD9AA816" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } "temp" { "gid" "EEA7B925881ACDF6AEEA061AF16A97D6" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "89BC64D9F2B6430C9DC2058256057474" "size" "DF79B95C54C910D2E663D6779EC92D55" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419658" { "config" { "oslist" "windows" "language" "brazilian" } "manifests" { "public" { "gid" "3001309415042439016" "size" "14016331" "download" "12102400" } } "encryptedmanifests" { "agerating" { "gid" "604EA01FE818FEF8D94A2561385EB09F" "size" "4C639970689E036238CAD7E35645EDEE" "download" "79853CD8EF6FD898257B692401A881BB" } "baseline" { "gid" "570125CB43C2DD9F6F35AC1D66BBB7AB" "size" "00D59BC16E572F1D0710997D20DB6574" "download" "C814E0F0F85E31395C2388980151252B" } "ch_main" { "gid" "7ACA9A5519ACF07A45BEDBB40E8876C5" "size" "8CFE0B9BDD3FEF4ED3EE73956BEC3C0D" "download" "50EDE841B3B15D3218BED5ADEB7A1AD9" } "ch_rc" { "gid" "5F3E3EBF6058D5DF5F2CCA85A47A5990" "size" "8236D1C93297FE43D6C94DA297FE6D78" "download" "9D955AFC4AB0BC7CDFBC7292A8572527" } "compat" { "gid" "9CC128ACF5E4410C6B643A9924914433" "size" "DC060AA2FAA9503F0389C21A253D3F8F" "download" "F04F59D3D2D162B7D9358DF1CD988A6B" } "dlss" { "gid" "4EE5D1CE308B4003D29730724DBA3D60" "size" "1FE4C4C1F1281029D5E7608F84458141" "download" "CE88E22DC00FBB2D8671576C74B3BD4E" } "mac_test2" { "gid" "96D4102068801714B92AA685189FD237" "size" "8E6408219AF3FAA54B7766ED8BCD469F" "download" "D2F9246C81FB113A6A425F1EBF04B01B" } "mac_test3" { "gid" "60F8418E6DA7D5375A787CA03A1C7C8B" "size" "33A33ECABE0E02771A8EE5AC3A5BB27F" "download" "54B0B62FCB336C018CA2864B2F63A1EF" } "playtesting" { "gid" "473997F5242EAA260F8D782F5C298A1F" "size" "816ADA1C1F612BF99F90CFFC87DF9063" "download" "82B750DC4C4C1EE6181FD45B6FEA54FE" } "pt_bcn" { "gid" "FC007FA160047C2BE94AEF0C9660CB1A" "size" "5355550A831974721CC32187984DC874" "download" "ACA97F2316158BC3E5EBAEB16FA819D9" } "pt_dub" { "gid" "ED789FA07A4B849A06A37ABB704F825D" "size" "2882C22F0B5E0E3A7F3BBBAEE5275B91" "download" "DE5462DB56E3A5792F847B00E1FED49D" } "pt_gf" { "gid" "45F1A9846A8A59C588452A01EEFA080D" "size" "EA76841411EB5188951D0243C5B3760C" "download" "075B2C9A4B7ECF11F3238140AA4C5EC4" } "pt_gnt" { "gid" "9F340D70F30304945CC719379F6130AC" "size" "613C96EA9EB3F2398662115F2E3B8D87" "download" "0E8D36EB852F4A485E17E55437B1232B" } "pt_kl" { "gid" "68A1C0BDB9B88ED39CC0F3DF97072D47" "size" "E8E4057243187B19CFA0142D78A41573" "download" "D70CD0005D2EF52AC5ED62A932726AEC" } "pt_qbc" { "gid" "DC6DCE7A025259B419881C66D5E31F20" "size" "5711BDF57BE858F836B0262AC3441D91" "download" "361466391D8D2E97E2E303C008F83699" } "qaprio" { "gid" "8566AA3B18DA8EFE22E1C4869C3D06FA" "size" "769D06EB06D28FD7767F3F2A309C0CE0" "download" "696923E04D5FDF4011BE78EC3F05698E" } "release" { "gid" "449D2EE8CD1B7CF1773B2961570286F2" "size" "29B20F3CF3BA8C9E13258C7B0C639BF8" "download" "6DD0EA0CBE113A89B50A360F86A1F0F9" } "release_hf1" { "gid" "477B2702F015601B5DA1671669D892BF" "size" "8AD27324D777D20051A51791582E8221" "download" "20A3B4E0B327DEA70510703C31DE4A54" } "release_hf2" { "gid" "C51576D0B33894017CD18E099DE2DEA6" "size" "94987B301AFB5EFF6133FBE10EBA3926" "download" "AC8094294605E4ECCA17F3BF977543FA" } "release_hf2.1" { "gid" "75D5F1617DF0295B7AA08F0072E53A39" "size" "BAEDB67B44F92BFD5EFC01A9EC1E2D6E" "download" "86BB92B5BEF846C768B6948F4EC531E9" } "release_hf3" { "gid" "62C4F4887F1141EDEA357CBD1F9DFFD2" "size" "8F4BD8153B450E004084B7895C765D56" "download" "994A9A804623103B19E88FE8A1F16BBB" } "release_hf4" { "gid" "82EA6C10517F8681645B13F3119338FE" "size" "C5F436E14E7DCC0CA92017E7EB18D57D" "download" "B47040DA489B358D7A28B49A67299EE2" } "release_patch1" { "gid" "2D9E11AA3DB375C8373473E27092C073" "size" "19B06EB3C4CF67A81C56747B2C479609" "download" "C99E13F5D1AF00785CA31367547E1335" } "release_patch2" { "gid" "B464660E847B08CBD8ADB7B4DAF71463" "size" "A95EDB0B273DA07A0B82A1357ABD122A" "download" "D2B9AD4BBBA86CCE3A827568F40EE8BA" } "release_patch3" { "gid" "E5F49755B59024DB0A059F961C067245" "size" "9636E43CEB83B71F2599E784F7E0CB86" "download" "0832C603BAB7C1C3A4D71A3A64BAA427" } "release_patch3_hf1" { "gid" "23B2FAE96474F58B44AB5D3185BEEDC1" "size" "ECDF15D3C028355ED8B399FEED772CCA" "download" "F086D62E53FDB7ECCB349B93086E8E1B" } "release_patch3_hf2" { "gid" "F7DF216215B6C64BCC077519465E3531" "size" "07A4FB3B40B125EA1279293D6FD8606A" "download" "F17AF0DD5BA580D94B15C66BE439E81F" } "release_patch3_hf3" { "gid" "3BA5FE891CFA59A17724FC49B671BEE3" "size" "6CBD4C19A61CFE111F0CAED51B315330" "download" "7CA96F760157FB087714A7D2D3E5ADA4" } "release_patch4" { "gid" "A5CF7021B13506A35377B8A55221D949" "size" "2FEB5CE45ECE90905C2B50E537036D0E" "download" "3E15A9712A51DD5C28375D290F1EF62A" } "release_patch4_hf1" { "gid" "B52FA852A9C2FFF520A290A058AF3BD6" "size" "761B27006C63697C6A021F32E9DB81BD" "download" "EBF64DD2665AC9BA60290B84946B11DB" } "release_patch4_hf3v2" { "gid" "DA51F2E11BC296106981C92EB3CF5AE7" "size" "B27DCBFB3BA2A5506E0650F2324D655B" "download" "43DB3D55AD877BC6461F13D04228B207" } "release_patch5" { "gid" "311C558FE64D2AAC15FFF858F8649FD2" "size" "9F718375CE2CCF65DD89165F74701F46" "download" "1BB6ED9452C12303AD8202ECB6D26DEF" } "release_patch5_hf1" { "gid" "B8D7D73D24D68E3E575CB59A34CACC69" "size" "F47B2DEAF06DED7D3BB6241E1078FF3D" "download" "B20D99CC40A099CEB109F3A063B8C651" } "release_patch5_hf2" { "gid" "7DDFD855E4CCE88A23169F73C5E951D8" "size" "5EDF8B7DCD21A1F2B4C5675A6F617088" "download" "72420310EAA75B4DDA1AE8EA9842F599" } "release_patch5_hf3" { "gid" "5E20FAAC48A467749A996F8D5D7EC9AC" "size" "3CC651A47F90A1C42776B1D988E7A2B1" "download" "E5E2E3E3F6EEB4D4A94B4131FFE81BF5" } "summer2020_loca" { "gid" "F0622043FEF5D034072396F124EFCA57" "size" "435C7BB6EF5EE9E9248D680AD4D86D2F" "download" "60F633F15284A7C75979CFBEEEAA8823" } "temp" { "gid" "0CBA253E9CC1A05A73CBE4C9876B76BE" "size" "B28E599A6AC28E5B12A2EAEB9B07E3F1" "download" "46F0B9EC79780F2BD65353E0513E3B51" } "testbranch" { "gid" "A32D410F45209C89EB0358F224E6A646" "size" "514A2886CF1A7267393B93BE145801FC" "download" "6956168037619CC17100A60B7854A7DE" } } } "1419668" { "config" { "oslist" "windows" "osarch" "64" } "manifests" { } "encryptedmanifests" { "summer2020_loca" { "gid" "DAB30BC5BA87D427F4FA0070B2986EBB" "size" "16A03DCBFB2767AA9B3EEA174D8EA91B" "download" "F418E47A83D5856F2869CF392EC22051" } "temp" { "gid" "AF305286B8E1DD51D3D815FED942C009" "size" "DB92990CF02FDA980912207F26B28654" "download" "A0EE761BCFE4383864E48AC204DF0F8D" } } } "1419669" { "config" { "oslist" "windows" "language" "koreana" } "manifests" { "public" { "gid" "1704667605236126055" "size" "20169864" "download" "17612768" } } "encryptedmanifests" { "ch_main" { "gid" "2CF498B1D8637318C9159D4BE5A60F90" "size" "F0EA5019FF83AC34FE074AB3006C473C" "download" "B8C6E97162417DB5834FDCC4C083DA9C" } "compat" { "gid" "EAE608441F544899A65D247B091CBE4A" "size" "7C81939A0142522BFDD0C51847DFCEB7" "download" "4002FC760B417463B4A7005ECB1A2879" } "playtesting" { "gid" "F962E3524BF7EE5A959E72E359F1D741" "size" "ECE33D896371346A506D9F9D040286DC" "download" "019032B2D844128CE34B598127041A4B" } "release_patch5" { "gid" "79FB27F3FFF8420ED24D43DE774174D9" "size" "0C904C3AABEF2A75AA4123BB39B4C282" "download" "2D31AD86D771AFA8CEE89B23F2FDBF5E" } "release_patch5_hf1" { "gid" "49A2107DE378A883F1819780B6578321" "size" "EC9F779042165A977AF284FA635BE1E0" "download" "7D907E5FDCB661F10F7DC146BCDCC015" } "release_patch5_hf2" { "gid" "797961327B8240935C36B86BD5778150" "size" "DEC5C158FAEF406F01ED885DAEC173B7" "download" "67026CB1100210784F2FAD8AFA37B29F" } "release_patch5_hf3" { "gid" "D56DF7055B01A2EEF7691AEC0561E49A" "size" "5D96D8F6F31A75B9F64AA0D9DADCD441" "download" "280F85896D89A2D324446C50724170FB" } "summer2020_loca" { "gid" "337BA5680EF17F32B58491563686D999" "size" "7CAA51F6048FC3738E804579CDB74788" "download" "B9118C3B9C4A3E62445538B51D63AEFC" } "temp" { "gid" "F55FEE8449A206F6AC67A0BA08E96B3C" "size" "17E0087B9BD761A1EEA4AF21CF9F82D6" "download" "341556EBB9C5FF179F9115E558645362" } } } "1419659" { "config" { "oslist" "macos" "language" "koreana" } "manifests" { } "encryptedmanifests" { "agerating" { "gid" "C031236F60BBF060A23349BB79E287FB" "size" "14FFD3EF848CA446D042C3401A33ED6D" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_rc" { "gid" "D20FF6B179BA8783374923DAFC1A1C91" "size" "67923F0D424F825086BCF4257F87F5E1" "download" "D716BAE385BEED3B227198F3EFBF5529" } "pt_bcn" { "gid" "E2FBA7CA927ED9D31BC4F2054D78094D" "size" "310343755AA001950CA3E448B8CD5ED2" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "C442BC4B3094E4EA6FF138B3C5DDA62C" "size" "03C409DD9C84B5989B980553C3BF07C5" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "C818C993B984DA4458E1EED684B4597F" "size" "416AEFAE9351822744E2AAD77AF8A9F8" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "37BD7CF2CD1819483D65B1ADCBB99577" "size" "962ED04D7424C3636B3810D28DC48481" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "6CA9A4BDC9F3330E140A437B3E742DAE" "size" "F38757DEC166903264EEC112FD99460B" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "6FE1144506C2837D36FE45A76D567129" "size" "AB43C0B506A4DBBDCF508FA532CD62DF" "download" "F415F0AC40AF4569E9383E22DF229010" } "release" { "gid" "0E56A64518F306FA534C5492BFD497D6" "size" "B24033AAD4121DADD43079504927F3AD" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "3B6E177A7CC62DA1BE9E579F268FEB2E" "size" "F744F9ED14E2733E17F5EE4743A49143" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "380D8CB8E10025B1A3A15CDDCE4A835E" "size" "190B6EE806012E60D749E831A4792739" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "716AEC308BF45189C78806F1D30ACB51" "size" "B3DDB41D51B63B2CD8AAFE4E0A93F542" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "B7E2BB8CBF12C4DBFFF8645CC0DA913C" "size" "14031999A4EE3E0D90F06228A14165BD" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_patch1" { "gid" "83DEEAD86BAAD23D187E8DF88E37BA4F" "size" "31B3D84DDDAEFE4E2528DFEBB96C842F" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "0FDC4BC1ED0C2D430EE6A6960CE9AF3D" "size" "925BE8D371B2BC3E209FD2F85814CBC4" "download" "490B029397D1B39CE2284869D788C56B" } "testbranch" { "gid" "5D4A1324175BEB8DF0F5292B293DD7CF" "size" "4A5FCE724EE641AD9EE623124305E54B" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "2330350" { "config" { "oslist" "windows" "language" "ukrainian" } "manifests" { "public" { "gid" "5207049977556603040" "size" "16128053" "download" "14019824" } } "encryptedmanifests" { "baseline" { "gid" "4D22321F017F44D60D901DEBB310C9AF" "size" "32421880E3D020BDBC6E9764B0F82719" "download" "75058C6AF0B137344FC9DB473187760F" } "ch_main" { "gid" "D19403726DF67B9BF9377EA3C1EB0BE4" "size" "9FCFB2EF0C405EF58B0157B39148D69F" "download" "12718F2E9CC94C051A9984578AF3E8BF" } "ch_rc" { "gid" "F72D6061AFEA821F6295CE9C3C58F4D8" "size" "9B08C0E1508B040A640C51A652A58D5C" "download" "3F6B7896DA4F841846C7BE33805ED6C3" } "compat" { "gid" "C38197C2844C32EBCD81C837CAE93893" "size" "EF92BE88641D9EC3AB13C82D459E5316" "download" "A0DD55717066B0A5ACFC2BA4DAE1F7DF" } "dlss" { "gid" "2AA4852D54B521751BFF1FF0149CB3FC" "size" "B5931A65D5300C41A258528529402146" "download" "0920E1A183A5C364BC74B26F7C1463C9" } "mac_test3" { "gid" "ABC26D7BD1CAE06E3BFC39BF34288A60" "size" "7CDAC13E62F855A9E4FCAB7EE78FF4BE" "download" "B7736A1D6E17439B2F8B5EB4D07AF2BB" } "playtesting" { "gid" "4C192BD40E860D973746CB323D6978BB" "size" "458C359489CF83AE552FAC17868AAB78" "download" "7C9A5C1A4652176DC2C8F4CC70F1293C" } "qaprio" { "gid" "FDB31D128DEC03473E288C9AAF118997" "size" "5DF1D4E200B00D9B60222C0E5E997E35" "download" "375215BB005D4EC5DA2E96D9B5298C85" } "release" { "gid" "90BB95C3CA1E33724166B9837F647318" "size" "026EAA68B3ED947EA1BE4DBE4E044637" "download" "D78D2331349420A8EB5E517BC56F1E78" } "release_hf1" { "gid" "DF2C289018202BE7CC2C4173B2E68E84" "size" "6D9F49030285CA51B0A66C449475AEEE" "download" "847DBD78B8D8E46168866A7E6900AD25" } "release_hf2" { "gid" "4C15D4C0D90E7312C806998651A49A68" "size" "83ED0C6B662810066EA990D54E2FB229" "download" "A8AA7F57716F46CBC776199D9F4A5029" } "release_hf2.1" { "gid" "43A95ED7FCC8F920E800AB45CDA280CC" "size" "EA2C354E7E356545401A20A677555DE3" "download" "58FA48C4CB8171DBB487199402422F88" } "release_hf3" { "gid" "9C0DF96915C7E881BA83C7042A82FBF6" "size" "B4080462F74B9AC8E0C5063543984DB8" "download" "5C05E50A4D0E43CF2DCB5CF9A19662EB" } "release_hf4" { "gid" "EFE3ADC036CBF59048C8CAA89F20A78B" "size" "800E8E2A65F212C2F25D6211B295B72D" "download" "A7F7DE2EB503A96EE6B659DBE5409C5D" } "release_patch1" { "gid" "47EC7F02F48820F2B70E6B82C68FD3F8" "size" "49D201D09D6EABD2799C059FC41ED375" "download" "5088AA4A65CA5AC05D154BCF8DC0A7DE" } "release_patch2" { "gid" "408B0D2EE8F60D5085B40D1CFFED7D89" "size" "7CE5693DA40DF9559CD396AC4F6902D3" "download" "00C31D9750C09F0F1A96003478FC4B68" } "release_patch3" { "gid" "25C0B580273AAA91D6C7858E64E7D92B" "size" "9C05F1C0EFB5FE26E0F497E57E59E956" "download" "6399E2C840045628B8C857D039DEA38E" } "release_patch3_hf1" { "gid" "1C542C5ABED4B6E0000E2680652C3550" "size" "E0FDFB3E01056D9F05B4F04DC5674AD6" "download" "25C1372F34BC9F021DDD5D2A2827382A" } "release_patch3_hf2" { "gid" "71D54CC21FDC59F5D602A9AA7A8B359B" "size" "CA46ECEEBBAF0B32F87F62BB28F0B7EB" "download" "86CBA22C677FACE661B6EBAF1BE80250" } "release_patch3_hf3" { "gid" "9FBCF2AC7B96BE6B7B0C3DF75673A7DE" "size" "439825E2168009FC7F1EED847A04AF85" "download" "9B601665A8BB47D0CCCB824B63F27D10" } "release_patch4" { "gid" "F3D469A71E719B27D5A16917787A1F85" "size" "DFAC56E3541F781EE45C31340CF61958" "download" "1A09EC99BB653F9B942EDFEE0DC9E70C" } "release_patch4_hf1" { "gid" "B98FB3252CD41C2A8F55C09E681B94DD" "size" "2825A7CC20E4B558A9EAD80BC9C81262" "download" "AA5AAC180885B0C8D506223720875E80" } "release_patch4_hf3v2" { "gid" "AF016DA746E87675FC7896FC0CCE6D94" "size" "054225EEA1FA7516CA041F28B8D4B222" "download" "EF5ECF89FD4611FBB51E6D646DEE3D43" } "release_patch5" { "gid" "1C34BEE59B0FEDFF33C18D594499F9EF" "size" "778245ACE67FA82CAFE5CF020658F07D" "download" "EACF39BC8982B9A50E057595B6A537B1" } "release_patch5_hf1" { "gid" "9A6114837C265D94C598A8CA2889FBE3" "size" "8D1F4F406B66584EF9DECF723A160F35" "download" "4D5C9FA0676B44F9BAAECDB21846C458" } "release_patch5_hf2" { "gid" "C8DFD8ED765B9E0A63D692F18CFBEAA7" "size" "11F113E2E0E060EA8815620816C55875" "download" "38214BDC27B985A5313B8F5C17DF957D" } "release_patch5_hf3" { "gid" "E9069C72DB36D6807372139DFD00317D" "size" "774EB5ED9616BFF2ABCE7EB19029D12B" "download" "9FBA219D373D6106A4E32C6BAF225C36" } "summer2020_loca" { "gid" "F259E33FE819E2336166B33B78F83384" "size" "C4518DEF8551FBCBCD8D0CFAED062A92" "download" "DD324BF7E1B0D302262496FB608FFC5A" } "temp" { "gid" "ADA21D6F70E25A2896A13B055D8365F4" "size" "17F9705D9A60B5C784F7FC1E26EDA221" "download" "8F3829EC258499B50474103F3A5EC79A" } "testbranch" { "gid" "DEAD50C0E811AD0A6A8ABB57BA8D2900" "size" "D2572CCDF95B9D7CD735DB495DCA934F" "download" "3C09BB7F2D7965A5B33A8D6DFE70DCB6" } } } "2330351" { "config" { "oslist" "windows" "language" "latam" } "manifests" { "public" { "gid" "120723437334456792" "size" "14304362" "download" "12318608" } } "encryptedmanifests" { "baseline" { "gid" "65D77C417E933A1C4E7ACCFB6D439A30" "size" "73B6A894B0335414DFC3A3C6A36DEED4" "download" "16E142FFE4E6C68580574628F68A6B8F" } "ch_main" { "gid" "FD34E9123491B70FEB9FE88B2609B9DC" "size" "0C4FB1A62354924F801F396D64D9C1A9" "download" "6AF8F23E9065CB905ACC08989216D08D" } "ch_rc" { "gid" "2C6B38713FAA810CA0B384A45B27403C" "size" "1AC7925E6926030C365CF2AD6CC0E24F" "download" "34B18D56B784880CEC81FC92360624E7" } "compat" { "gid" "86A384FA22251B70F36539B3A584E77C" "size" "0C112B8CFEFEEC0F9D5787FDD3DBA2D3" "download" "7D5E1E245C6265B8512C36A609CC2B1D" } "dlss" { "gid" "92273093DB2655F6E176645D410125A6" "size" "8A548C5EF2D36914CA11EA674BFB7818" "download" "6DC58AF20F292A50400741783725924D" } "mac_test3" { "gid" "272AABED83F996DC4E177AE40E12E2CF" "size" "204238652E753D9557ABE13691A9A4D5" "download" "8F8FF29F12AEFC17565601DF38BD35A5" } "playtesting" { "gid" "A220EE69B33A9B58F56897CEB2A7F9EB" "size" "2E05E8494CC8F931E8E054A1837D950F" "download" "E2422B0E61B345BDA28A01AD2A673AF5" } "qaprio" { "gid" "023512792D0C2C839C9C8DCFA3354FAA" "size" "636811E74285B78EA9EC8B5BE8D80A2E" "download" "6BC81D665CAF2CD431A207B465B93C19" } "release" { "gid" "F03D636EE6A8541A45699093DBC6B596" "size" "DBC4E1A1D186999839BCC5123B62961E" "download" "0D325F9C3E00D8AF1AFE321975622E84" } "release_hf1" { "gid" "817BB38B716CD5F22589BED8BE2F3559" "size" "D5889D491D3408E284D9C1BE1853FEA1" "download" "9CB524D5301C3B19BD06B4B0718C70BC" } "release_hf2" { "gid" "49C8033662352FE7258AF41722BB6520" "size" "9C37CBD5E935E78D187B406673BD4CE3" "download" "1A07AF060A4795609004AAA6C9D3EF20" } "release_hf2.1" { "gid" "9AC8E45745D2E8C32FBEDF00DFB785A5" "size" "88531FFBC727126CD080289BA67DA2A7" "download" "7A5426C628BCEBEC0103930C559F7F2E" } "release_hf3" { "gid" "B0B43BF738B97906976EB7C57708870C" "size" "FAAB4D896EA617E8CA89D0754AAA709C" "download" "451312F1360AF83B226CE52BED6130A8" } "release_hf4" { "gid" "25AA4A4E8C19457CB4A971B8B183734E" "size" "DC7D0462ADC4E328466B961EE512D4DA" "download" "A7E1C750BE532218B27C91B55738A314" } "release_patch1" { "gid" "EF049F88AE1881F11B09088E4AD3950E" "size" "61359DCC20823402DAC73FEE2BDAC6B2" "download" "44E1B4794EC9A8F09FC6880C219511CC" } "release_patch2" { "gid" "EECBD562443ACD76B9C96A9D2AFB6FA3" "size" "B03C9781A21B5C16662D21C340995164" "download" "8B7BD2D2A0D9EAA5150592994BB69140" } "release_patch3" { "gid" "EC54C5B798B0CEBC893199A346D5EC81" "size" "00637772140280C5988E824F3E442FF6" "download" "6B50224805C1A503B1684570B95DFF5C" } "release_patch3_hf1" { "gid" "CF02D35D6AD5D8F3469614327D498730" "size" "B13BFA6065F67769420F67EC8E0431A8" "download" "C377314D2055BF94400053CC38996D71" } "release_patch3_hf2" { "gid" "A67B6C553A6A9CE39C7504229F6068E0" "size" "FCF05A1BA05F428AFAB8B656B0532B00" "download" "AA8C8F60114A53B752372F5F85954FEC" } "release_patch3_hf3" { "gid" "2A521DA2E39175822BFCF979D210DBFF" "size" "CBFD5D0513B178F0264BEB36CD9A9C1A" "download" "61A15C0BA57B58EF9EED0876FD427466" } "release_patch4" { "gid" "3D7D6F4BDC60BC3D47D14EBC99DE515F" "size" "A28A373F5AFE8A032D93260C13C41723" "download" "98B1A4E783147D35C54FFC037A232613" } "release_patch4_hf1" { "gid" "784F152AC6C735B7C50A3BBDC61CBED5" "size" "EFA70B61A8358DF83C4C50C273ACE03E" "download" "5AE74D524DDB66020DD392CD8574BC64" } "release_patch4_hf3v2" { "gid" "3F44D753DC276AF492407281BE7A7DD5" "size" "55FCC26E005EA15A8DD0602B5714C389" "download" "761BAD4C82F9AF1E58F7D0AE9D3519AB" } "release_patch5" { "gid" "32371DA363D07FFEC4D403510EE4D794" "size" "FD0778E2257317224415A66B95F49F12" "download" "24CFD119349890D29234AD744F737DAE" } "release_patch5_hf1" { "gid" "8119DF449E0C72BF05E005636823986F" "size" "7891A6F213CB2057D942E528C3514AEF" "download" "CDB909299070D89DB2114FEB2DC1DF47" } "release_patch5_hf2" { "gid" "41E31BA87034499A6E48FBAEF65A551C" "size" "FC1D8810AA2A32A3542459C315DC1ABE" "download" "5760B8E741E864065FE77C9E8D8D056A" } "release_patch5_hf3" { "gid" "595B4D6AE66D1C2B00FF38ECE5D357FB" "size" "59A0DE700B7B970842F06736DB9DF6BB" "download" "CB4E1FA7EB665F090959F4544CA5670C" } "summer2020_loca" { "gid" "45C072E45A77B8A49078E9DB8E2E3AAE" "size" "1203C6D048595B73F427C8E26E27ECDE" "download" "601F2CECA0257E6E0D51CE36919F7750" } "temp" { "gid" "AF72CB4EB5C61B4D5104B99A61480244" "size" "13FAF2047F5DCA9A6F773AB31325D9AE" "download" "1375C14A40149CB21CCAFDB15EC4094B" } "testbranch" { "gid" "2FACB861EB71F3070EA888BD4A2BA17C" "size" "CD84AB486A384B86764EDFDD3383AB8A" "download" "1CBAE254FD59A8D420D838FAC6F1926F" } } } "2378500" { "dlcappid" "2378500" "manifests" { "public" { "gid" "6453229909780803137" "size" "3700167797" "download" "2728905872" } } "encryptedmanifests" { "dlss" { "gid" "87A137B3897EF154F1396E2EE820CE72" "size" "3CB742D54B038C28DC5C48A51FF606FC" "download" "55C89ABA7E6E3349FFAB18ACD4B10BD4" } "mac_test3" { "gid" "2B0E69C7B2D09826928978178FB4E7A8" "size" "DF31735635ADB0718583E02DDA65B4C4" "download" "A4EA4BD36EA5979E2B0896062C36DF41" } "playtesting" { "gid" "50714D3D2A607DCB5D36EF6C8B14A306" "size" "E3B84FCDE2F6877265925C570062FB05" "download" "B0495D5A137409979474E598F1809847" } "qaprio" { "gid" "54E9BD1A9DA361F079A9F4FCCD9EBD21" "size" "B534D5DA084E54E34E1EA04712A758C4" "download" "542624D4053FF6C44FA8DAA941DB80F4" } "release" { "gid" "C5C8E641EF24E3A9EA35AB65556A42F8" "size" "B345A5544B97B16ED6838B9EFB4B7D93" "download" "22120C49CB480137980C1CDC85279094" } "release_hf1" { "gid" "A06DB7ABCFC4D19941A1373096CC8F93" "size" "2D9A7ADA84E315BB60FA1501A51D7412" "download" "83D06DD7D6A2EA62CC5A53ABC56ABB4B" } "release_hf2" { "gid" "2D02F6A8AF9762F6EB09BD7A819DA252" "size" "349B0EB62AC3EC1FEF1CB65A65443BFC" "download" "16EEAFB808D0536AA2E2F7E0D1DBC9D8" } "release_hf2.1" { "gid" "C39E28A750A327B7D426D8811DF20C69" "size" "58396F6374EE17416A45BD8DA0235C3B" "download" "84267211CAB9852CD80E5DAE34145240" } "release_hf3" { "gid" "BD82723FB32214274632B60D17A3F65E" "size" "56CE851FFEBF69401F5A979829DC64E0" "download" "DF3090D7FE56E9DFC238CBB6E3738E0E" } "release_hf4" { "gid" "F470D4A7B7ED096B754F9A0DD6C86427" "size" "9C5CDC3191B21B76F96D12987C7132D0" "download" "CD6C0469C7C97F7CF4D04704F70F9192" } "release_patch1" { "gid" "1A1D4C2BA7A87D65DE743BEDA05FC45A" "size" "B7C25623F0D9F4840F5F255C6F87813B" "download" "57956B679D8AC521D58088D7E8B554B3" } "release_patch2" { "gid" "C7CFB6EBBDF065582A39FD56FCDA82F3" "size" "C9056FE3F0EE1065C8C107E4DAC09E09" "download" "FBB07AB65D531A01C31E3B5B93D71E1C" } "release_patch3" { "gid" "C10E07DFAAB735164FFFADF8D0CDBD2C" "size" "4175E1CABDF8B5FE56E9308606B045B7" "download" "DB83BFD36A2C58D85FDCCECF39D87DC0" } "release_patch3_hf1" { "gid" "51342F40C4808D3255E2A006822960F9" "size" "7A54A4BCC2EBD672E45E2E100B9B609C" "download" "1BF92992EE189F671BE9B491189E117E" } "release_patch3_hf2" { "gid" "1B3CE0403B7C7D05A25CAC39C432E20C" "size" "F5984EC337626490B1E50705AA62691A" "download" "411068111F5EA257BBFA426F78D4B9F4" } "release_patch3_hf3" { "gid" "CEB63925894D3374A443C750ECAD3459" "size" "03ED88FF69F7FAA5ED7A549E727FEA94" "download" "9B47A9E50FAEB4DCA4DDB0E1965F166B" } "release_patch4" { "gid" "8F172D7015ADA1B2C776CC89458DE0EE" "size" "1BB6163E80C8655C2FE6750007DF6F41" "download" "3C759F075254A02D382025B5D97CB8B5" } "release_patch4_hf1" { "gid" "078B5A942BA6B0CD3D2ADB9494D60A5C" "size" "13A95A49F1632FE9A7AA0E68C5696754" "download" "8326F7C69B54C0882B412C473934A978" } "release_patch4_hf3v2" { "gid" "D169AB956648A9556B5E984850DAD6E9" "size" "780760B1B8749510ED6D9B5BA4FB2492" "download" "253C0982D13FD3BCD51EE7AEE8CA5E34" } "release_patch5" { "gid" "46677FB2D262CC2428553376F8632E80" "size" "40C5E35A08B8DFAA198F867FB6C12B66" "download" "8A87936B384F0CE1AA5C3EDAAF378A22" } "release_patch5_hf1" { "gid" "A78427B362F14FEA9ECCB065AF76CBB7" "size" "71EBA0BBD9D7B6C8089D0FEF5544E38C" "download" "E049E6A5C83BFD5D6531E461322B4CA5" } "release_patch5_hf2" { "gid" "2DBD5F42BBF9082EB311F6A1F0FEF71D" "size" "6DBBA62676E22CC39BCDCCA228BBFCEC" "download" "217977FA487858A56F5BAA2975A89C40" } "release_patch5_hf3" { "gid" "D114532F9EF8E3BAAA939C00385BAAE1" "size" "5580F7A89FE9C55D34F6C0F80963770F" "download" "345BFB7E1B5C0D77AF56BB854D4047B0" } "temp" { "gid" "5CAB45AAE8B692EC720F32DCABBCE1BB" "size" "5034EB29EAF9917F8F15F58A0964BC8E" "download" "D488ECBB4C3EC678F955C160F91A3871" } "testbranch" { "gid" "926DF387253E6792AF659231DAD354E0" "size" "B8FDFC5ACD37DA90D7AB68C42E7B8EC1" "download" "624F8770CF442B97EC88E5F0D3311E6E" } } } "2330352" { "config" { "language" "tchinese" "oslist" "macos" } "manifests" { "public" { "gid" "3405764980446251715" "size" "584" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "43A942D3B115692DDFC8662B9D5EBB95" "size" "DD593DA64FABE7E7B7B28FD71927E787" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "47EDFB7F6B5F7F09D4F2734AED537E51" "size" "0434C0B012991659E2C7D179D557CB0B" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "7A9B8121E3D577B8AD518B374EE545D7" "size" "EA09B011401A5FCA4D276A737DEED9DE" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "88925C8735E480843FABF956A55D7B33" "size" "79566BC6C4055B8EB2A3469481EBA273" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "4DF2EF8F8C598EF262C0FD525C687B68" "size" "9796A96321846A972C62EE478F17EEC6" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "A541B2EFF2FB3F14CE6DED6E0D92F87E" "size" "2BB33062840E1FCB75B98892F065BFE9" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "F4154FCC5492495E6CA6DE70B29B1B3B" "size" "C73744280CCD6196C9907B989B56D241" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "B3C3AC56ED75ACBADD0C39A46C4A94BC" "size" "498A34A9F1876A3A3F051A4436C19828" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "641EA00F485D28B0A73A15B40B53B805" "size" "CB4A7D020A056BF1134EB31761716B0A" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "DDFF0DAC14836457B5363619FA5E3085" "size" "8ECAEE36BC2EE151730D3C2950106551" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "32436EA039B34560A93FC5BACB7F76F4" "size" "38BB11C98B0A6824F3E32758ABA30AC6" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "BD626E6A064D48A4C55F65D45524235A" "size" "5DB458E8786876ED07772BC69CC37D5D" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "67CCAE9F41857BD202A1D7C84BC5B234" "size" "690BBD23F72E75469B74A7C336026538" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "60C5C996B46B10967CFF1DEC32FF5873" "size" "D61C5F839C0B47C04FBEB3D80D784DF7" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "A856F10D8BB1ADB9DE3575395FB812AA" "size" "80C2267FBF11544532093A98845EABEA" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "C2E9462130FDB1EA4988A25BE7529B22" "size" "9DAB76BEF9837D4AA3F3E535A4980312" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "86752A9924C5BEA40668A8B7C2342CEE" "size" "9D1701E1EB70A6096A032FE3B61D1CAD" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } } } "2330353" { "config" { "language" "italian" "oslist" "macos" } "manifests" { "public" { "gid" "612529264506102109" "size" "573" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "EAF832E344053B7A771A67C63126722E" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "9AEC2DFE98F1F3AEB842656E8025B0E8" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "06BF83A0ADA11D15C67BCBB5D5665F59" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "E08DAB9661886F213065EFE90081971E" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "1E7A1CB88C3C1EBC274BFAF80FD3AD7E" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "ED593C27FEF537CF43F3359C81585DD3" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "00647EB5827DA451142EBAFDF54297D9" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "1DF242A65215AF2870BF43D382FBF382" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "605E15700F64E27D507DBC91D9FC2918" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "5691BCFCD037A0D2A79E0BF440093E9B" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "0E7BE22777435B67CF617E53D7C9C305" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "A6661C06286EF0F1721704237E970DDF" "size" "A8EE6F7EE25F370812728B2BBD2272C9" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "D8287A4D7A076DE45491025C6A7B9844" "size" "FAB79ECB889337A1DBB0DCB2C7C2A3FA" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "34646312E3785D5DEA7CFCDC66A224EA" "size" "BD581E4A78E73DC1BDB241360EBAF0C5" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "3380F53CC175E7C3D3E22A4D7DF051AC" "size" "F8243A284E262FBDD9A679E2877EAD97" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "D1A0E6E95D3DC567ADFA467A04DCD572" "size" "8516FA12DBEAF9FCC5F1AEBF6A2571E3" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "4B01A49EA659B4B4FEC22145BD3D4A6B" "size" "2DD405CBDE1319C482B560ABAD9AA816" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } } } "2330354" { "config" { "language" "ukrainian" "oslist" "macos" } "manifests" { "public" { "gid" "3278754178123362114" "size" "576" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "353372EF35A6CCE4B754B9A25046A84E" "size" "BA6CE53CB3FADB7F06EB7AE8679C4F20" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "50D72C1C455177600ED13AE2FB72744D" "size" "00B40370728DAB5300FB6406CC1FD6D1" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "6BC3EB69BBD7DA82ED8702BCE3EEC818" "size" "4E744E5349EA32AD04869BE5476828E4" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "D5423A4392624DA45D2FF3DF6E96D53D" "size" "DED2948E8D89CCF3BC1175108816455A" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "475E610DB16F9EF282EB60F4B3495F60" "size" "78F624831A24AAFB92909648974964F3" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "988106F7D61AFBB5ADE13E00D04F500E" "size" "7C83951C2A8A0CCC4DAC0343262D88F2" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "463478CA71616E673934E071933750FC" "size" "26DCDC8E412813A1C463E1B00F7A85F8" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "58A5D798CCFC694278D37D32AF0EE6A1" "size" "D4EF871E41D228845505F01CE6DAA88F" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "CC4E13759A6FFC693CBD477C6A26910A" "size" "9C9654CF35C5BA4444F2C518D80F812E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "5023B5DC4EE7D488084D14FAA7575930" "size" "8A15EE7B0411C82B0F01EC16B75F7EC7" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "DCB54A2ACB25B9F422E551B550CAFF95" "size" "A7CE2F6BB156849DA28E10C16A506190" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "8C496C783E2413A3A7A3B54B9A217848" "size" "E7F2D5F48A92A388953DC7F0912C2BB6" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "3FB7CF93CDC9171D9E1EAC06A5C23BAD" "size" "64A3FE5C0BFE2BE4744A427470C30982" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "AA1BD9A578EF6EFD954B9848750E32B6" "size" "900B31AA62646FABC3145EDD0111F2B3" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "D15F0ECF8375B9AEFC0CB0A5741E596F" "size" "066E4ED3E304871C95D8743D40A8AA6D" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "D416918F5A45DD5D4301CD8FC74329E0" "size" "D9191440A0918410D35B4B469B3A3EEC" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "065EF030FA44D4D14C39E3014CBD8ACE" "size" "74794547EC27DFC6F5A9FB9410CF2FA0" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } } } "2330355" { "config" { "language" "latam" "oslist" "macos" } "manifests" { "public" { "gid" "5952972128173214295" "size" "579" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "FBD9BF8CDCF94283AFA7C11F920DC91A" "size" "B57ECE03D072AB1EDE0DCBF0536A2634" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "7EBE4D2001D70646CDEF17DDF77BE169" "size" "8C86CC7B070C9BC0D4A6C947C71C61C3" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "15DA0E0FF8102EC5B9E46E3BBF42AFB4" "size" "DA3C31261D777E9AC8058E18D298594A" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "345D6DDBC6DB356B6F68F8EEFC7870E9" "size" "E0C6B5ED496D2E05A4C5D83732027564" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "3156B1E47F7964A4DB6A3CB7283E3421" "size" "B6122CD740169CD1C31B862A7BACFA21" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "0F7DCC5427EA5D2994C91D486C614CD1" "size" "388BE6A2A90A9E2F58B8213CAA964FCC" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "235B6CF8EAFBB0DA87C1C6F5C841775E" "size" "2324A8537D82CD4C803AA16FCA886DEB" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "0E4DC6E3FB3DF7E56719D9469720FBE8" "size" "36C7A82E4076B29A17895CD342DB33AF" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "97478717B8D6DF1A4EDFD80644A48088" "size" "E22CA768001B4CB5ACFEAA4FF2C50D64" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "0B02BE753EA9037C0EE6D7DCC199058C" "size" "30AC78707BE88EE214F2914EEF38C5E0" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "C5DC9BB3DBFE801138DE005087405D25" "size" "9BBD053F777F5FDE628BFDF449AF0ACC" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "D5427DD0D38FCCD2A0A94E814671F61C" "size" "6214F6A974502E154A04F7A19E88A1BF" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "51486C78ECF54A5F372FDA99EF2D5FE9" "size" "A3B0464584E9A578B8442058371CB967" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "7453B67DCC617C0A77F40E99B16B08A4" "size" "B0C03A65000B579656374944E730D0A1" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "435EDF867E8BE8E2C6E9ECA3C01CF298" "size" "53B54A31E4606E65488BD2964F4638F4" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "D665167E0BF0FC4E5F642F81D48DBCF7" "size" "1C56A61088CF4646ECEC758F4BA5BC49" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "BC5E667C4B0A55A351D49A1AB9F8B0F1" "size" "12434719DE8FA050DD44DFBB503E8D8B" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } } } "2330356" { "config" { "language" "brazilian" "oslist" "macos" } "manifests" { "public" { "gid" "868191943506106262" "size" "586" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "83E9635302FB42FCAB53F1791A04A50F" "size" "68D78803D8101C26977382A06C4DB980" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "1130C15D88B3AA5238100DF7DD793648" "size" "CC55BAA70FB889750F7C7F099D3EF84D" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "FE0BC80E63B80EBBD98A6E0664737E50" "size" "ED517E9DC67F0E5DCF81CAF67A6E6F07" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "502BCE3165C65165D0EF73DBBA0FF1A8" "size" "D25AB32819F0625312D3B859E39FDFF3" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "662C12FD524480BBBEE68ADABBC86842" "size" "D3DE0359B1EF892722F547B661C7B73B" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "4E259FFF1BD0514439BDC48E7A8F149D" "size" "29F8E69A6619BA2064CFF81EBAAFBFCD" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "50DCC14EC26DF0C239130FA2EE4811E3" "size" "8E7007EB5D774E85D3735F2B0BD2C982" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "4EC3B8F10B45A7A34930E7EC0BBCFCF8" "size" "1097BADDAECDDFBA27AD290E2C64DF37" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "B481AC543CE4665A075186AAC3EA7697" "size" "F4D95C8213C1C92995B7378E38524718" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "243B0945D74A7BCFC382F6F944DFDEF3" "size" "72894E3FE0378E592939EF0B55620EB1" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "3003921443F6C2F9B2810CE3D85A6773" "size" "3B74549F586583FE0AA5F49DCC36956C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "release_patch4_hf1" { "gid" "F3EF9ADB79828D956961B36EDA02F491" "size" "7BB9FED38F8E6C663159B396E232B00F" "download" "4E3C5178525C96C4470C3DBF86C737AA" } "release_patch4_hf3v2" { "gid" "A42B9E52E3CED2137B5224087939A945" "size" "8951F250073AB80FB698DC722350422A" "download" "92D87083D270A64DC10CE2FA9462D540" } "release_patch5" { "gid" "27E7C1ABFC44D38DFE2AE62D2477D516" "size" "5B83575999962C097C698FE9EBFA68C1" "download" "0922BFB9665B8935668B5517F4A94F80" } "release_patch5_hf1" { "gid" "1D000696D9F26E76BF108A1818D9D2FA" "size" "BBBA9FA6BC069200558D918F950913D3" "download" "5CFC9B18EB2329100F401374C7739D42" } "release_patch5_hf2" { "gid" "D7509900473019D65537B54AF3A9C3E3" "size" "DB76AC3B426C85DD610A6C9AF639AF5D" "download" "FC70FE58264B42857A74A88B3331DE32" } "release_patch5_hf3" { "gid" "20652D543137989DA01291C99311A5EF" "size" "E3702A4AE670BD736FB030D494DA0D7E" "download" "3CC644DE1B34F93EE461CD34F5B33E26" } } } "branches" { "public" { "buildid" "12967302" "timeupdated" "1702600870" } "agerating" { "buildid" "11198161" "pwdrequired" "1" "timeupdated" "1683718411" } "baseline" { "buildid" "11833416" "pwdrequired" "1" "timeupdated" "1690898615" } "ch_main" { "buildid" "12967366" "pwdrequired" "1" "timeupdated" "1702601443" } "ch_rc" { "buildid" "11840599" "pwdrequired" "1" "timeupdated" "1690912133" } "compat" { "buildid" "12850803" "pwdrequired" "1" "timeupdated" "1701439653" } "dlss" { "buildid" "12374021" "pwdrequired" "1" "timeupdated" "1696592727" } "mac_test1" { "buildid" "12891901" "pwdrequired" "1" "timeupdated" "1701905868" } "mac_test2" { "buildid" "12895003" "pwdrequired" "1" "timeupdated" "1701905844" } "mac_test3" { "buildid" "12894973" "pwdrequired" "1" "timeupdated" "1701905563" } "playtesting" { "buildid" "12831940" "pwdrequired" "1" "timeupdated" "1701288287" } "pt_bcn" { "buildid" "11614042" "pwdrequired" "1" "timeupdated" "1688387001" } "pt_dub" { "buildid" "11447416" "pwdrequired" "1" "timeupdated" "1686560824" } "pt_gf" { "buildid" "11672619" "pwdrequired" "1" "timeupdated" "1689063636" } "pt_gnt" { "buildid" "11672623" "pwdrequired" "1" "timeupdated" "1689063674" } "pt_kl" { "buildid" "11769478" "pwdrequired" "1" "timeupdated" "1690152919" } "pt_qbc" { "buildid" "11623906" "pwdrequired" "1" "timeupdated" "1688486751" } "qaprio" { "buildid" "12665803" "pwdrequired" "1" "timeupdated" "1699573431" } "release" { "buildid" "11899229" "pwdrequired" "1" "timeupdated" "1691559564" } "release_hf1" { "buildid" "11899245" "pwdrequired" "1" "timeupdated" "1691559660" } "release_hf2" { "buildid" "11894264" "pwdrequired" "1" "timeupdated" "1691558914" } "release_hf2.1" { "buildid" "11905964" "pwdrequired" "1" "timeupdated" "1691616669" } "release_hf3" { "buildid" "11921151" "pwdrequired" "1" "timeupdated" "1691757091" } "release_hf4" { "buildid" "12506557" "pwdrequired" "1" "timeupdated" "1698018261" } "release_patch1" { "buildid" "12035892" "pwdrequired" "1" "timeupdated" "1692997248" } "release_patch2" { "buildid" "12072128" "pwdrequired" "1" "timeupdated" "1693426893" } "release_patch3" { "buildid" "12255176" "pwdrequired" "1" "timeupdated" "1695375336" } "release_patch3_hf1" { "buildid" "12285396" "pwdrequired" "1" "timeupdated" "1695728971" } "release_patch3_hf2" { "buildid" "12335280" "pwdrequired" "1" "timeupdated" "1696255238" } "release_patch3_hf3" { "buildid" "12362465" "pwdrequired" "1" "timeupdated" "1696497528" } "release_patch4" { "buildid" "12606340" "pwdrequired" "1" "timeupdated" "1698962025" } "release_patch4_hf1" { "buildid" "12665514" "pwdrequired" "1" "timeupdated" "1699570742" } "release_patch4_hf3v2" { "buildid" "12722745" "pwdrequired" "1" "timeupdated" "1700153683" } "release_patch5" { "buildid" "12834744" "pwdrequired" "1" "timeupdated" "1701312011" } "release_patch5_hf1" { "buildid" "12853358" "pwdrequired" "1" "timeupdated" "1701456942" } "release_patch5_hf2" { "buildid" "12930895" "pwdrequired" "1" "timeupdated" "1702309967" } "release_patch5_hf3" { "buildid" "12955761" "pwdrequired" "1" "timeupdated" "1702508851" } "summer2020_loca" { "buildid" "12898589" "pwdrequired" "1" "timeupdated" "1701939883" } "temp" { "buildid" "12941331" "pwdrequired" "1" "timeupdated" "1702393972" } "testbranch" { "buildid" "11958164" "pwdrequired" "1" "timeupdated" "1692263157" } } } "ufs" { "quota" "2000000000" "maxnumfiles" "1000" } "localization" { "richpresence" { "english" { "tokens" { "#inmenu" "%game_state%" "#inlobby" "%game_state% - %state_details%" "#onmap" "%game_state%: %state_details%" "#ingmhost" "Hosting: %game_state% %state_details%" "#ingmclient" "Playing with Game Master: %game_state% %state_details%" "#ingmpreparing" "Preparing an Adventure %state_details%" } } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_dlc.txt ================================================ "appinfo" { "appid" "34330" "common" { "name" "Total War: SHOGUN 2" "clienticon" "71a76cd2fbcd1457887fe57727aa10e5e1ce2ea4" "clienttga" "8e5fc44d9ec5f9b72f16ce03abe479acc187f897" "icon" "2fa97296a62daf0329b3867ad6837a2289229fbb" "logo" "c6f6e87e742a2e40689486423e8320bd318e3ec7" "logo_small" "c6f6e87e742a2e40689486423e8320bd318e3ec7_thumb" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "spanish" "1" "russian" "1" "polish" "1" "czech" "1" } "eulas" { "0" { "url" "http://store.steampowered.com/eula/eula_shogun2" "id" "eula_shogun2" "name" "eula_shogun2" } } "clienticns" "04447b907e1280f70c06dd24ae5a7c0804704163" "oslist" "windows,macos,linux" "osarch" "" "osextended" "macos64,macosnotarized" "name_localized" { "schinese" "全面战争:幕府将军2" "tchinese" "全面戰爭:幕府將軍2" } "type" "game" "steam_deck_compatibility" { "category" "1" "test_timestamp" "1645747200" "tested_build_id" "7437197" "tests" { "0" { "display" "2" "token" "#SteamDeckVerified_TestResult_SteamOSDoesNotSupport" } } "configuration" { "supported_input" "other" "requires_manual_keyboard_invoke" "1" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "1" "small_text" "1" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "proton-stable" "requires_h264" "0" } } "metacritic_name" "Total War: SHOGUN 2" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "CenterCenter" "width_pct" "64.4690781796966" "height_pct" "68.23794823082406" } } "store_asset_mtime" "1575371418" "associations" { "0" { "type" "developer" "name" "The Creative Assembly" } } "primary_genre" "0" "category" { } "metacritic_score" "90" "metacritic_fullurl" "https://www.metacritic.com/game/pc/total-war-shogun-2?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "workshop_visible" "1" "community_hub_visible" "1" "gameid" "34330" "store_tags" { "0" "9" "1" "3987" "2" "1741" "3" "1676" "4" "4364" "5" "1708" "6" "4182" "7" "3859" "8" "3813" "9" "4168" "10" "6310" "11" "1688" "12" "1685" "13" "1677" "14" "4172" "15" "1756" "16" "1669" "17" "14139" "18" "19" "19" "4252" } "review_score" "8" "review_percentage" "91" "review_score_bombs" "8" "review_percentage_bombs" "91" } "extended" { "developer" "The Creative Assembly" "gamedir" "Total War Shogun 2" "gamemanualurl" "http://store.steampowered.com/manual/201270/" "guideappid" "101001" "homepage" "http://www.totalwar.com/shogun2" "icon" "" "installscript" "installscript.vdf" "launcheula" "http://store.steampowered.com/eula/eula_shogun2" "noservers" "1" "order" "1" "primarycache" "34331" "serverbrowsername" "" "state" "eStateAvailable" "listofdlc" "34342,34343,34344,34345,34346,34347,34348,201270,201271,201272,201273,201274,201275,201276,201277,201278,201279,203710,223180,223181" "dlcavailableonstore" "1" } "config" { "contenttype" "3" "installdir" "Total War SHOGUN 2" "launch" { "0" { "executable" "launcher/launcher.exe" "workingdir" "launcher" "config" { "oslist" "windows" } "description_loc" { "english" "Play Total War: SHOGUN 2" } "description" "Play Total War: SHOGUN 2" } "1" { "executable" "data\\encyclopedia\\how_to_play.html" "description" "Encyclopaedia" "config" { "oslist" "windows" } } "2" { "executable" "benchmarks\\benchmark_specify_properties.bat" "arguments" "/gui Benchmarks/Sekigahara_Intro.replay; Benchmarks/Sekigahara_Intro_Camera.xml; benchmarks\\BenchmarkDX11GraphicsHigh1080p_preferences.script.txt;" "description" "Benchmark DX11 Graphics High 1080p" "config" { "oslist" "windows" } } "3" { "executable" "benchmarks\\benchmark_specify_properties.bat" "arguments" "/gui Benchmarks/Sekigahara_Intro.replay; Benchmarks/Sekigahara_Intro_Camera.xml; benchmarks\\BenchmarkDX11GraphicsBalanced720p_preferences.script.txt;" "description" "Benchmark DX11 Graphics Balanced 720p" "config" { "oslist" "windows" } } "4" { "executable" "benchmarks\\benchmark_current_settings.bat" "arguments" "/gui Benchmarks/Sekigahara_Intro.replay; Benchmarks/Sekigahara_Intro_Camera.xml;" "description" "Benchmark Game Settings" "config" { "oslist" "windows" } } "5" { "executable" "benchmarks\\benchmark_specify_properties.bat" "arguments" "/gui Benchmarks/Sekigahara_Intro.replay; Benchmarks/Sekigahara_Intro_Camera.xml; benchmarks\\BenchmarkDX9GraphicsBalanced720p_preferences.script.txt;" "description" "Benchmark DX9 Graphics Balanced 720p" "config" { "oslist" "windows" } } "6" { "executable" "benchmarks\\benchmark_specify_properties.bat" "arguments" "/gui Benchmarks/BenchmarkDX9CPU.replay; Benchmarks/BenchmarkDX9CPU_camera.xml; benchmarks\\BenchmarkDX9CPU_preferences.script.txt;" "description" "Benchmark DX9 CPU" "config" { "oslist" "windows" } } "7" { "executable" "Total War SHOGUN 2.app" "config" { "oslist" "macos" } } "8" { "executable" "Shogun2.sh" "type" "none" "config" { "oslist" "linux" } } "9" { "executable" "launcher/launcher.exe" "workingdir" "launcher" "config" { "oslist" "windows" "betakey" "launcher_test_1" } "description_loc" { "english" "Launcher Test" } "description" "Launcher Test" } } "cegpublickey" "30819D300D06092A864886F70D010101050003818B0030818702818100AF336E35AD7B492545BA32DE317F4EB1D73BCD5E471A7D16E2796D30071AE019B210C26BF0655DCA68D061F1BE6CF3FFF5C668B28D1F1CD5B213BE649DD78CF79452E6E484681D177E30A2E36315E5DFA51D9BC3A9D2B43CEC3C97C1066DA3D28BEA05C73CE83A77B99522C31BD03B61AF094F2175B4063633CB6354276026C3020111" "checkguid" "Shogun2.dll" } "depots" { "overridescddb" "1" "markdlcdepots" "1" "workshopdepot" "34330" "228986" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "34333" { "systemdefined" "1" "config" { "oslist" "windows" } "manifests" { "public" { "gid" "1972056557494830740" "size" "122926803" "download" "0" } "linux-pre-2022-update" { "gid" "1972056557494830740" "size" "122926803" "download" "0" } "linux_21.10_fix" { "gid" "1972056557494830740" "size" "122926803" "download" "0" } "mac_retail_1.4" { "gid" "1972056557494830740" "size" "122926803" "download" "0" } } "encryptedmanifests" { "carousel" { "gid" "4D663B03E3389A78B02B97FC92F4AD5F" "size" "9DFD4B27C2F280C4B9B2E07E7466D9D4" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "E5EE549102979168CA251E9A36036889" "size" "FFD2F598351060D737170CFF4204D47B" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "B98E803828FCB31E2A37C042CD7ABDBD" "size" "23E5C211BEF3C1975AC8602E0005C115" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "52A88C81E2E94324BAFF74D23BDB4D1E" "size" "A21A50F181A486D15D648313C3400C37" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "7EA670A0C2E8448E945FC4F4BF869F16" "size" "2A724FD84B0DCFB85F4E33FD10A0C16E" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "02BC6F9F4F93C8EC852C7D8D95667537" "size" "F0B52DF2C28DBDBE8873A6B3D92BD878" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "C8C51E68E601D3625ADE87EE6A911B6C" "size" "A485E94346C973647C835B3DE9F1360E" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "B1E79120B1873951F49923ABB9432B6C" "size" "76EB52E08B3F728140FF4967B29D6E54" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "6994894D70DEB167030472FD5CB71243" "size" "4FC17728C3BF5B1A4A81AB0E03DD8B1F" "download" "18E3C3B44D0ACCB8203628E7D812BB4D" } "kassius" { "gid" "916B8D36823D23A18348E03881631785" "size" "36EAA30CE95D83F593843966BF7FAAA9" "download" "98037B7195F460623A9DBE07C7C0C670" } "launcher_test_1" { "gid" "3B4C1EC5F53F4C522209B5D411A6369F" "size" "CE843AA4D45A5E7127C7E05410934CFA" "download" "46CC15CA26FCB4370B3968E46E15591E" } "mac_1.0" { "gid" "98A593A76AD4F60597E548F9E62F53DD" "size" "333DB72A88FB00CF9544DAD0213D141F" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "A94C46B3949FBAFEFFAACE238A3F5359" "size" "B4B2E89CA1E7A50B3B7D29F97FBD653D" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "7226A930A546B0BAFE786DE2940804CD" "size" "9D5C0A473AC673A86A06D08E8C3E8D5D" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "659A1133D031A502178254937E8E2A6D" "size" "4A68F3EADFF1C3F90B29E7DA10BD4D95" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "3413E8CE64E93FA5F5479CEFA9269CAF" "size" "5DCDA9D0BEE5AF7A3BA2B5825A6A16B0" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "9FFDB719FCD4742266FAAD9DE3AEDAD8" "size" "605D05BC2B172670AC366B17160B16B6" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "EBFA08721966705956B92FB6E1085AA8" "size" "9ECD71946CE1C81A2A0B7286B1A30027" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34332" { "systemdefined" "1" "config" { "oslist" "windows" } "manifests" { "public" { "gid" "5881356124441497033" "size" "20059125011" "download" "12703578928" } "linux-pre-2022-update" { "gid" "5881356124441497033" "size" "20059125011" "download" "12703578928" } "linux_21.10_fix" { "gid" "5881356124441497033" "size" "20059125011" "download" "12703578928" } "mac_retail_1.4" { "gid" "5881356124441497033" "size" "20059125011" "download" "12703578928" } } "encryptedmanifests" { "carousel" { "gid" "C0A8192781A196E23CB4F5DCCE7EC9B0" "size" "83852AB3EE034F6B7A854418D6832DB2" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "1970EFB686AAB045F5BCEC8DD701AAE1" "size" "A6DA3119485AD9FD8DEA3DA76342B6FE" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "368D187A1F7678D9BC6B0058DFADEAA0" "size" "8B6086C0B4308E50ADC0E0C810902B1B" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "4991F05CBB7DD6C67FFEE28982387869" "size" "31927C06AB13DF7DDA21C4E05E68898B" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "57126FD2B0C68D9AED4A844A27C17ACD" "size" "29E29853E6F6B17357782D373BA0459E" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "B30DE07ED61CC8CAC32598FB153A9687" "size" "62522AE4B815C644E9830F551D53F069" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "DB6B93E8D2C03BD80D386941970482F4" "size" "AAE02F8991F5623441F946073173CB8F" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "CD211189E1852E54DE512516EC1CC98D" "size" "CD584F754BC5EFF0F76F2210B07706A1" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "13007987EC67EB7B6D75A4EDF20E8DA3" "size" "597C08F2BD938544FFD24EF4C1289FAF" "download" "98F4EAD819A9258087658FF000EE3555" } "kassius" { "gid" "A1F469B19D793B7FD92118799D7DEC4F" "size" "A2B34FECAAD7C1B7B5AB6C3732B0790F" "download" "56BF483CE00EEDA6356CA3A18373352B" } "launcher_test_1" { "gid" "1B60E48D845D465D6EBA6502661C33D7" "size" "0E8BED5A9F9A82C4DD1CEF22B2F46303" "download" "75F992750C9A17B234D08CEC8CCB83F0" } "mac_1.0" { "gid" "81738AEB4EFC4F62D3F90BC55D169604" "size" "B042E4050D4A00F37A30556A30900198" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "9C19FE43F2ED3F36D776136CEA41F351" "size" "88C1E849E57AAADD374506BF60AD3747" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "F944B18CBC7408FC17F6C6B3068532DB" "size" "4F416E19FA5A704B96B404E5BCA0DB3E" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "9CD96477A0FD96F218BDA39894E2D91B" "size" "5CDE05034584AB4FDD509FFD59E57878" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "05F647AE9AE356525A07E7A35330AE10" "size" "470D849E6F9EC278257E227145DF52B8" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "794EA4FE81D7B3639B5480A23440B21D" "size" "EE122D4BB249E7EF2AC3B6A14CC482A8" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "54A9DEF2E41D55A6E6D4134531AAD6C8" "size" "0364CCD47034500D0ADA1C20E58270F9" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34331" { "systemdefined" "1" "config" { "oslist" "windows" } "manifests" { "public" { "gid" "190308019507430064" "size" "117527717" "download" "41269712" } "linux-pre-2022-update" { "gid" "190308019507430064" "size" "117527717" "download" "41269712" } "linux_21.10_fix" { "gid" "190308019507430064" "size" "117527717" "download" "41269712" } "mac_retail_1.4" { "gid" "190308019507430064" "size" "117527717" "download" "41269712" } } "encryptedmanifests" { "carousel" { "gid" "E7BC08A49D0487F3FB1FCF89F86BB09F" "size" "3AAE165C05249CC9FB42334942875484" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "275546A768B711653CC75FF0D0989600" "size" "C8E4CEB7D9198F23029C218654F52F01" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "4DF0C2C236F861853885B76551115A80" "size" "9AD111377B7160F77D36B7972EAE9DF7" "download" "B5C882150B7FF0C07B519032F5DDDBD6" } "domesticated_privatebeta" { "gid" "E1522D17511A7E4DD49958374A4DA512" "size" "AEE01CF85DFF39182073C167BE8EE74D" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "B4EF5A0126A3755F1597EE52EF114A82" "size" "51471F2F689A883EDBDC617BB64A988C" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "89BDB690E1580A63E21940520D9E2C2B" "size" "1ED633D9CFA0C7C41BF5BBFA050B8F78" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "65CE958F2C5EC9C1DFD0A89619926F30" "size" "C3E36EE10249B35C021F481922FE8114" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "A7DDAF6E64707E04FC0EA7F266AB8628" "size" "4D45986199658E194EBC83ED4D4C46FF" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "8DC21242EEB7EBA3DF03C522C4F0A348" "size" "9DEEA68F2190E4EC992FD70A158676B4" "download" "2102B07325EA421A56D5ED2CB0BC458E" } "kassius" { "gid" "65B6CA799836AD049A524585C5BD7266" "size" "EC355AA3246202B16F85C09AD35156C8" "download" "AC802007C1B6F087924FCD79E69067DF" } "launcher_test_1" { "gid" "E5A1592C627D9CB69844C1FD4B9ED350" "size" "B78084863B917CED72365FC5311E6885" "download" "0B096D6193A1C1354717E5A8EDDAB7D6" } "mac_1.0" { "gid" "C39A3114326772F7EB5B916699917E29" "size" "944795F34F2FE959F68E1E06C9AAA92F" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "FD202B097B2B0B2CAD8E15ACC7381B85" "size" "39868E17E2F317EB6FCD95FDB2F29FB1" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "CA93318C854F150AE1FFC8FEAC214C56" "size" "00B2BD2874C7F70EA1C2F74C55464139" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "C36BA4F2C359F009D0AEF39203BBBC8B" "size" "16879E9DCA1A447969445B4CDEC5D333" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "BC0F9CB6542A7B63972292708DDF52C4" "size" "BB9BDA47237323596A1587CADBA85164" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "777ADC5870A26D405E8E9C1159FDF6E7" "size" "C4A822EEE9F762CF0AA105297FF60575" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "1756C829FDE31D02546389C1CB4945F3" "size" "B5D76CCC2F70447E282D44453B04E380" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "201278" { "optional" "1" "systemdefined" "1" "config" { "oslist" "windows" } "dlcappid" "201278" "manifests" { "public" { "gid" "1545335483322603358" "size" "193084825" "download" "0" } "linux-pre-2022-update" { "gid" "1545335483322603358" "size" "193084825" "download" "0" } "linux_21.10_fix" { "gid" "1545335483322603358" "size" "193084825" "download" "0" } "mac_retail_1.4" { "gid" "1545335483322603358" "size" "193084825" "download" "0" } } "encryptedmanifests" { "carousel" { "gid" "CC9E17BA413910A56567ECD738CE20A0" "size" "4AB204FDA494AB7744DEB06872FCE66D" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "0E55477FC369E37E55B7CD60E3C9784B" "size" "C2DA408F09899CDECC6FE471ACF38715" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "0FECDC2D87ABC05F809797063437F6AE" "size" "C98BBF185346FB118FD0DA68730DCB65" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "DDAAF5E8D777B108F8021CC6A3BCEB5E" "size" "BFCAB6E2AACA50D21A837B215F218CEA" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "9740264EA1FFB2BC05E0397F3C343782" "size" "9A7BF3BFFE34A353552515B7C48CFC04" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "340E49D7672C0B3691115903A85D5235" "size" "8F9BA6FF806F3AD33AD03C7B9D63D31E" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "AF3F90D71E4C0323A011A093FFD64B49" "size" "5EEE5A90236854A11385E3DF1BA562E7" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "B98A74E1C320AFD2669DB32C2C2F4440" "size" "EE2A9581277EE559D53D7BB5BC79F6D0" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "288B801350E019D1B3B917122DAA3A8F" "size" "EF634633BA2F013F28840DF1CA0EE613" "download" "FD47EA063FFD02E7D3A79BCEB19FACE1" } "kassius" { "gid" "F80435ADCCAE09D85C6CED39BCA770B8" "size" "3A2A41AC1C87997BAAF0D67960C752E9" "download" "98037B7195F460623A9DBE07C7C0C670" } "launcher_test_1" { "gid" "83103310F6471A22549028B7E960C48D" "size" "FA93C1E7D1FBB4238747FEC47EEF4FE2" "download" "46CC15CA26FCB4370B3968E46E15591E" } "mac_1.0" { "gid" "5EE0650A3D92D0FDA884AE674031FEE8" "size" "3AA24203589D154D76AB9FC8893190D4" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "22447FA02AE1A3A1C500A8277CF67CEC" "size" "896B5E6030D0365CB2F668792A5A67AB" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "242FD946BB47979AB11AA75FAB4C9AD6" "size" "3F97DD662F7D43700B36F12BB8844FD6" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "DF88260C113503506031D4501E463D23" "size" "50F89FFB11A8EA35451EB3396B5B4501" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "59CA0D3388AAD30C2B48E1393C6C809C" "size" "ABD6A8773B7D07281770AD5741BDF554" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "17AF94324A4C1FA1CB5BD52C74E4E5C7" "size" "995B34CF68DC44BB53F67C9F565DB641" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "F3C71452D730981F7F498E24F3CE1059" "size" "3DAB0E6EBA74108D1D9B778CC97533B5" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "201271" { "optional" "1" "systemdefined" "1" "config" { "oslist" "windows" } "dlcappid" "201271" "manifests" { "public" { "gid" "3803329044277082064" "size" "3740240814" "download" "0" } "linux-pre-2022-update" { "gid" "3803329044277082064" "size" "3740240814" "download" "0" } "linux_21.10_fix" { "gid" "3803329044277082064" "size" "3740240814" "download" "0" } "mac_retail_1.4" { "gid" "3803329044277082064" "size" "3740240814" "download" "0" } } "encryptedmanifests" { "carousel" { "gid" "E76D3A1CBE18C4FBE2C7252AA2E7CC33" "size" "E115E7CC8B11B86F101F8FA0B5B3E1DA" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "7331F7DB138247045B4F6EBD5A9F2A30" "size" "38D4D2796B39395A376EC192D25B872C" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "15A7D29C41E8B4210C5E9BCD64964B39" "size" "2088AAD0320C024C2649E791ABA075D4" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "510F3B3E7B0EA509A7E261393D506FF4" "size" "5F49F4BC91CC4D2F6A5F324D2370543E" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "B5077DB2AA3B417649FAA5267D005047" "size" "2F1964CE65C6BDE41B7762893AA75131" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "431B84F9B280D05859D4EA1A3787BF72" "size" "C9E35EB876C7C5F6CE77BB9BF98CCB7B" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "55E04712459A3EFAAF98835B583D6AB0" "size" "B5BBD57A8E5AB29D1E80CA30141E9D40" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "66E25620BAA948A76B31848BD4908ABE" "size" "082ADB07EA6C3CFA57BE7E11337BCD68" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "EFB501A18E5151B53E4AFF0CA95DB23B" "size" "AE01CCE0DFC097DB2507365DD76CE947" "download" "C7D84B63C5F95EF002F4F012FBB1BD43" } "kassius" { "gid" "5F9495E42171A3B0B0003DD1E218E58E" "size" "F98D5D2191A9626E312AD6B26F323B4D" "download" "98037B7195F460623A9DBE07C7C0C670" } "launcher_test_1" { "gid" "641F0B16409314063CBE1CDA6B2E2355" "size" "D2D61CB373504FE3D57E7B064CCA0C91" "download" "46CC15CA26FCB4370B3968E46E15591E" } "mac_1.0" { "gid" "3D48D2AFF8583B9B3C623A6E3CCD241F" "size" "864E15C2041EB9B6B10464AC80CDD6A3" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "AAA60A2FE1B91FEA8ED319A9A405F869" "size" "5D13CF0A7B0354CFAD120C80B521A81D" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "2596A4612AC57FA78EA65782C7376A52" "size" "BA31E4A70D577BE34766559DE956C26D" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "9F5EBCF57F3BFA194048415B78777103" "size" "4B1A6ACAA4A2AD115DC21CD3A7AE4798" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "D0C7FC8C0E9E096A7DA67292039A5404" "size" "599A04BFEAA7D700A4754E3AE9BF1022" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "782780E66663CB3721E120A0D8C70D98" "size" "6F9B5B573D650F908ECD99044E98B4D3" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "D2D9C8D3B7A717C57633E5619DC688DB" "size" "36EFAD6F9C7785FBEAB10CE7F4EBDAEF" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34334" { "config" { "language" "english" "oslist" "windows" } "manifests" { "public" { "gid" "1890103565405039456" "size" "633340038" "download" "518010992" } "linux-pre-2022-update" { "gid" "1890103565405039456" "size" "633340038" "download" "518010992" } "linux_21.10_fix" { "gid" "1890103565405039456" "size" "633340038" "download" "518010992" } "mac_retail_1.4" { "gid" "1890103565405039456" "size" "633340038" "download" "518010992" } } "encryptedmanifests" { "carousel" { "gid" "4D62A3E3AD5C30E2C6653733D9D15E69" "size" "BC6FE6027A5F98653A28601F55012755" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "90B25EC7C3A452A7EA19073DD98363CC" "size" "8EEAB9CCFA0CD313289E0CF8998E1B55" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "9C7D2969C7979ED1E6AB908BFD57BEAA" "size" "E0CF458AD53B7D8AAB95A17824E4D0F4" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "D38D3F7314129CDFB95709D5D3E1671F" "size" "75E974BAE3578ABFC1CB2D4519653B5E" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "1A59FB4FB45DD90A28A81BC9232E31D9" "size" "129FE831B8A9E6451BE2521BEF1B9027" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "5467C90F6A479C67B538341521790B7C" "size" "A15855B5F75A4C5414D99F528D3D1453" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "CA9E99D23AFA78CD3D32A8EB3FF9C05C" "size" "40354D6DA226175EE3E8CC163C615349" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "09D61FD062B37D7089E8DF1DD2E13201" "size" "E7D7775D2645EE7620AB7E840E143DD1" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "22B01487C3AA5C003929AE252D21989D" "size" "3063B6EBF74105179244DD704BE29DC1" "download" "8D37B1A3C687A26C5B9EA8D775697E56" } "kassius" { "gid" "1D8BF2CC0C20CD3292C24B0DE858851A" "size" "1B48E1FC7975BBBA1AB35BB92D6C71AA" "download" "08A1310A2C31DBE7D33D1B7675706397" } "launcher_test_1" { "gid" "B9675F4B073CFAA97A8FDAF2F291A020" "size" "D486CDEEFC6B20E3D29DA2529F367626" "download" "4241FDD8689377097412DC2240285315" } "mac_1.0" { "gid" "EB0D49EBDB8F55526026CF7518D5354C" "size" "F81B1B4F402DA5FA91F524070F7EFCE6" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "94FC1FE7FBA0391A0B10140B7EFA7F54" "size" "671920DD0BF8F39B1C8667102EF4B988" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "EA1F0F4342E16DA2B49EB69899FF259B" "size" "07FC8F7177E55A94D1F3466AFCE2EE52" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "B8D24A0D7844A2C8AC4B11E7CF904BA6" "size" "671491CEBBC60539D1845809FF68EE88" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "860BE359E6C64BD7CF6270908BD21450" "size" "812EB3E244263956B8502111C9F5B19B" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "3A9065E5D37D8B823A142F845E4BBEFE" "size" "16A8AB316ECF9C26FB44B990803FBEC5" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "B7AC01A09FF0AA9DF95036379E42C2F4" "size" "233597768C14CEBA2BB1C6C7390B343A" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34335" { "config" { "language" "czech" "oslist" "windows" } "manifests" { "public" { "gid" "7279334387996785775" "size" "620487031" "download" "506268240" } "linux-pre-2022-update" { "gid" "7279334387996785775" "size" "620487031" "download" "506268240" } "linux_21.10_fix" { "gid" "7279334387996785775" "size" "620487031" "download" "506268240" } "mac_retail_1.4" { "gid" "7279334387996785775" "size" "620487031" "download" "506268240" } } "encryptedmanifests" { "carousel" { "gid" "B7DC0E3FA64AF39A2CE5CD413DD95FD2" "size" "6F9B3F9263C86321F946980454E55D22" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "7ADEAAB3B80C91E9BA8E950D47875171" "size" "B87FC1A691DFB248DC0C8B524534FD93" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "891CED4732268EF8530963BF7570CA7C" "size" "DAD7D072678B3C9B4D6AC63B3884F03B" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "08F679F7664EEA8BD2C4BECCC70CD429" "size" "65391DECEBD839AC7D3F4F66E87E3E14" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "19B6F3E99AA39F42B5B3B05D5826BDE5" "size" "8FE4C60106A7A440BA303800AC734F2B" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "1694577E16C7B8D6686415C155A83923" "size" "0F68ACC37850455E5ACE9191DB8F7F72" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "83A0E21F4AD497A613C2F6B656319922" "size" "5E6303B4247F7664A38E183AD4E5E599" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "05255714B641CAF403BAEB59748F5C49" "size" "911D5B7BEA5A3786E0A8BE2212D4C285" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "64C3AA2836A1E66C38AD99B1A4284CFC" "size" "6ED7C7F2D6C2AC9242093E5291BA4373" "download" "234A719303218FCFD45882BB1A05E803" } "kassius" { "gid" "88D44D17602A2E9474A9EBDAAA7B00F2" "size" "D2FC9BB432B5BFFA3FD3F656C00D9F3D" "download" "4AA5EB389B575F287053B406A1E7E3B9" } "launcher_test_1" { "gid" "BF1F530B906E86DAE37B405203CEACF2" "size" "D6C3DF78AC8D207565F7BD3DF2DC3DB5" "download" "64F32504413EA275A58E1E4B3F2AA187" } "mac_1.0" { "gid" "43D5A2190D58C328C87E0C3924C52AA3" "size" "40842E7738593C8749C1C5CDBBC100B6" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "11B60970337410C34B8959180134A9ED" "size" "FE7E7D073348E3D82F6F9C434527DE28" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "8B2CE3E6FB06FFEA5A13700E253188C4" "size" "8B76DEB2185DBB11E89A9413E5D7ACA2" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "F541C2FF84525148EFBE45E6AD5EFB10" "size" "119B4D05ED535F7B70315E0069650449" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "DF3E286E077E037C3101C1403118FF31" "size" "4AECAD31BE9065908071D42A24CCF72E" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "0BBCAFEF654A4F016AF9EDA790694374" "size" "8D10FB6F8C95994DFEB83F8B1A675AC4" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "AD7931E81B0674C28C7EB0D315098B5D" "size" "430D0EBE1A7D69B7DCEF40F51052DBD1" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34336" { "config" { "language" "french" "oslist" "windows" } "manifests" { "public" { "gid" "7236751957725420295" "size" "586413803" "download" "476098480" } "linux-pre-2022-update" { "gid" "7236751957725420295" "size" "586413803" "download" "476098480" } "linux_21.10_fix" { "gid" "7236751957725420295" "size" "586413803" "download" "476098480" } "mac_retail_1.4" { "gid" "7236751957725420295" "size" "586413803" "download" "476098480" } } "encryptedmanifests" { "carousel" { "gid" "2B8C85EC6FB93AE557471A7FCC4D3276" "size" "3F36DEE175E3F8DB6A3E85C2D324A452" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "57B1DBA2859FACAC9BBBAC058F635B60" "size" "07625CC0498F0C80C9DDF5EF1F44899B" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "A77241D458CBD37D6D04D66783254BCC" "size" "E641610C17798693BE63582F22B637A3" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "94C0A897781DBB9354A21383CE2A8866" "size" "0D067C7950E85D4ADDE97AB8EAF4B75E" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "4604D88CCEDBC1D5EAF69086805812D6" "size" "22607051B420C2DAE18F9444B368A267" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "BBE5AB551F7C14E7A23B3C65F62297FA" "size" "5900298AB95E84DC38EB9A313EE87CA8" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "3515FDB91A96A4A3EFD37CA26B1BC734" "size" "D914BEE9DBE8226D37BCE94F980251A1" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "28D143FB52A77A4687CE765217878145" "size" "119D1D6E0628FD9B10B48CF397F95DD2" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "E55834A824CC95F9EBBA15613492D644" "size" "13E94225AB2A368077CBBC89ADA470F6" "download" "264049D676C1284A3CDF80A0E6C3558A" } "kassius" { "gid" "CC2032EF94AE4487433DF5371BAF81E5" "size" "E06C75E25FE0733CAA948B5655411FB9" "download" "67888860F6D843553BAADD2578A871A9" } "launcher_test_1" { "gid" "F83356FDE48EAF76995416A581A3ECC9" "size" "5F06B588479BEE2D4E1F6855C17E805B" "download" "477C4CA16FCFB6E9D7A8B54A36139C12" } "mac_1.0" { "gid" "368AB18E679D9042AD49AD8E39B59D95" "size" "97905BDEC0B2F59F7FC30514ABABA4F4" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "A4D805075A594B31F6722A0E396E0DE1" "size" "D0D9C0A06D521460305F3276130A62EC" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "34E4235B7C7A8DD844B2B667811F1C16" "size" "9AFFA51B09E0AD7F1A52AAD986453128" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "802A3996ED72ED5131AF5C1A87DF3516" "size" "6944617E56870FD5834A3BA2F7AFD1F5" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "BFB1DDAC322567239E5604A0F0ED9479" "size" "94A52C9A57EEC39B80C9D02D6C306B30" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "6835CC6EF8CB4D344C6B158E1289CBE1" "size" "C4AA48FD5279F932F3A4C8FC090E8EE8" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "A59D1AB2C91DD17A41239D3F6C5AF20D" "size" "2DE206ECFA484B9C2B33DB90E60BA981" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34337" { "config" { "language" "german" "oslist" "windows" } "manifests" { "public" { "gid" "6104384797188190875" "size" "582469567" "download" "482521152" } "linux-pre-2022-update" { "gid" "6104384797188190875" "size" "582469567" "download" "482521152" } "linux_21.10_fix" { "gid" "6104384797188190875" "size" "582469567" "download" "482521152" } "mac_retail_1.4" { "gid" "6104384797188190875" "size" "582469567" "download" "482521152" } } "encryptedmanifests" { "carousel" { "gid" "578237497C2C419D34015BB208CF4989" "size" "FD9D3D45E42780643E1205F6B4D81744" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "BB3FAAF9BE2DF54E23663A30A4119A6C" "size" "2F758385C66FF60F5E872545633174BC" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "FA5A69DDC861DFB4DFE8397309783095" "size" "E4ADF598EC373DFC560D2BE8D2AFC77A" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "EE5ECE1EFE849C36778E383D5B56D9C7" "size" "DA553FC2B6AF4D0F138043DE623C4988" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "20306B70051A2C889FAAACA0CEF62576" "size" "5018603AF5FD9B6914E206129B0319D0" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "D3DD1B61544E3819DE2F406312D9BB40" "size" "5C0D2C6E759B582654D4AF43E0BAF6EA" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "B71BAB7E6C63062EB99CA8C57C0717F5" "size" "74E667BC4E6282E1BEF4796EB512CC11" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "F6B1A15FC959AF59AF9FFE0081B1F8ED" "size" "B932B10C9B6D07188815C76986C3F8E8" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "70C92DF743A1780C3B3F6E28DF5A821D" "size" "F96A92D7A0B45B938BBC41D3E01A1DF7" "download" "796495E6CD7ADE71AD6AA034EF5B0CEC" } "kassius" { "gid" "DD355200748B4E053C7730E22B401E3A" "size" "B1CCBDB9ACFA4ADEC349F949B53AE34A" "download" "C10F8BE70C86BCE679910B7407705F19" } "launcher_test_1" { "gid" "C09B3DCA84250FB63F546309FF7F20A0" "size" "B03B9B296100EDFC8C6B7F6970B0375A" "download" "21A7E751590E38ABD07CF0F851DA9F9F" } "mac_1.0" { "gid" "C74DC0B5649C08C314E4BCC8330A38FD" "size" "E6C7691A07E3EE602D073F2EE2ED5E59" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "3666D65288D5207201CFE8F897782DFA" "size" "E3CB6A0057F6163164300619C118DD0C" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "DEED593F6B50A62C65B62DE71D43041A" "size" "D56C8AA9259BDA491FF8F6E16F4FE55F" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "4BFBC02643463CF46E86449544B76CA3" "size" "78B039343F794237EBC3C973C2A78C9F" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "26BF025DB1AEC33065358E3D94DF82A1" "size" "74DF657CE62BB0D7D722F845178BCD8E" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "FAB5CBD6855579C2E74CF45E099FD089" "size" "E58021BD199B5C6466F49F98A7193336" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "81CA9190E3A53F86548F0B81B04B9A35" "size" "DC7571F53DFAE3A105CF169A0A1CF190" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34338" { "config" { "language" "italian" "oslist" "windows" } "manifests" { "public" { "gid" "2019551163166850947" "size" "620913030" "download" "527765856" } "linux-pre-2022-update" { "gid" "2019551163166850947" "size" "620913030" "download" "527765856" } "linux_21.10_fix" { "gid" "2019551163166850947" "size" "620913030" "download" "527765856" } "mac_retail_1.4" { "gid" "2019551163166850947" "size" "620913030" "download" "527765856" } } "encryptedmanifests" { "carousel" { "gid" "B0A0A5B8D5BD356E7412B5ACAFFD1778" "size" "D13D0C55DA336CD34C06550EE7D75A7A" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "34F95CB53372AB6DC88A02316DE4BF51" "size" "09B27F7C99B1567FB907DC4335C5E1DB" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "6A81D69AD61AAA643D807217D755A8E9" "size" "1D480B9A465F96E567C8D067D9EB18D8" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "42E4DCF7C21383B1D177BB39475C8331" "size" "8DD80D8C29A01CF2BAAC0B32C0A110F8" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "D60E7DDEC487FC3640EA025D5EAB4892" "size" "50307286B1EF57219F008AB3EC1312DA" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "E5BCEBB39305112E1EADD2F1DB590DDA" "size" "113700EAEDC3C4C9A30DEA77DB59F18E" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "4AF1D9F8C703A64F06B1DF78639920B7" "size" "8E2B069C56D2465A73781E35979764C3" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "FC939F6B5C6C1CAE347B28359FA34264" "size" "20EA93ED98207037ACB5E8910DCB26E4" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "23DF78176412042C66AF06860E2A82FF" "size" "D4EC8B7BB2450441E3BFD504F4E74DB7" "download" "5E47C2E824568A04DA82577F76B3076C" } "kassius" { "gid" "AFBFFBB0102CD7136FB2BF9B494D073B" "size" "27B5E665A162D57D0DCD4E2BA37B3B83" "download" "CA14CE9742FCAD1ED1EF2F7F4F9D5BFB" } "launcher_test_1" { "gid" "8C3A676E8F1992CDF86A0C51A462D44D" "size" "74485450456E5FC91EA151A78C69A39A" "download" "8484330A39C6644BE7360C561F6C5E01" } "mac_1.0" { "gid" "61009E3DF04C2E704E8B260B26DB7798" "size" "05B7B3AE430EBDBC53BE4943A345AF81" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "F74B5416F37BF524D095BF80FBEF33F2" "size" "A271D5BD920B15C978FED3E5C7EE71FA" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "FBCCDC3310266EEA586041305269B794" "size" "BC0273CAA877DF46BACB220E1438AEB2" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "988265A8F2F971AB480AE9B173D15280" "size" "84AFD79B7BE67A65ECA32E4839A0341A" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "BC7AF123554AFFD32AF8656B7F02882B" "size" "9C78639BE75E9ADDDF001DDE26B24EDF" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "58B9DFA83A8D1845D99977B4A0CC15F4" "size" "31BCABA3E02754C493E74A8D07BFDA2E" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "F44376AAE6E62B32692D979E38232B60" "size" "D1E6912765D44937CCC5AFF158E7D065" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34339" { "config" { "language" "polish" "oslist" "windows" } "manifests" { "public" { "gid" "8741815696204403390" "size" "619509444" "download" "506026256" } "linux-pre-2022-update" { "gid" "8741815696204403390" "size" "619509444" "download" "506026256" } "linux_21.10_fix" { "gid" "8741815696204403390" "size" "619509444" "download" "506026256" } "mac_retail_1.4" { "gid" "8741815696204403390" "size" "619509444" "download" "506026256" } } "encryptedmanifests" { "carousel" { "gid" "802A8B8486B8E0D9F913A7D578CDBB69" "size" "A76531EB7BD90FD687B4708D422F1E24" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "FFC54438E73FC9AA55A5B5A941D10167" "size" "0300E465566A8759AF3733E05E42C23F" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "3E05783689B518706654D7DA5C2FFC4F" "size" "4BFA033B1EDC14C7B6A5524A45F11712" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "34DA543020734CE8614BCE57C992ECA1" "size" "047C16DCC4FC4CCB3DD9C67BB0107AAC" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "2CAAEEEE9072EDF29E2F6E8475AA8E3C" "size" "703CC4FC0C98A1E07099CD0BF0F059F4" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "84A23C92DDE46B2C8537D6E5C672CB16" "size" "557EFA45441A0828A8B485476034A9F3" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "EBE26A323A89C94BDE6E97531BD42921" "size" "7C6FE9134A8563F1C94087AC136FE722" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "BCE38EB78B284FD0F243AF954D5BD498" "size" "FE6A64B35676857FFCEBEA7357C40AEC" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "93BF834EA7910E19E1860D0ECA1AA49A" "size" "8999E99788F54DBE444105126A517E7A" "download" "66D8BDD77A21761C90C588121BA83D3C" } "kassius" { "gid" "498BDD459ED0A2E828FE5E11D2EAE6BD" "size" "A7F77B4919D47D393F59E56017BE7F34" "download" "269A6C600B0D389CCCE69957FA6EF477" } "launcher_test_1" { "gid" "633FA8DEA45548AC96161995E264BB2E" "size" "5436CF9D0FE8DCD19F2F1382222D00F0" "download" "E38BA5657280989FACD1DB2A6D524191" } "mac_1.0" { "gid" "6283AB8CA3963D93F94DDA8A117F2865" "size" "D535356594BE4B40B87E2B89DDD31A7E" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "9C434CFDF0E47AD12E7C76143660922B" "size" "986B935B91D9566F392CAB6DD2F6CDF2" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "BBFDC1E2EBA6C6D05011F730383079B8" "size" "B630CAAFD0FFFE9FAAD01A679237485E" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "AF2D593875CF3A1CE44CC94A8EA47024" "size" "BABDD3A152D9F7C3E25C4D13F048F931" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "71F1446D8D8E83E831017FCD28FF3543" "size" "C5112A61CB3D058C0C1F1D0A5500C0A2" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "7F5F337A08534DDC3FC972A388F0E6E2" "size" "933DB5F274C63210E97F72D333DE4FC8" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "BA8A02FA1BADCAEFEE7D47887B513C62" "size" "43E255DF7BE8565857CDF2AB9066E6E2" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34340" { "config" { "language" "russian" "oslist" "windows" } "manifests" { "public" { "gid" "8582852140904295544" "size" "592560451" "download" "515199888" } "linux-pre-2022-update" { "gid" "8582852140904295544" "size" "592560451" "download" "515199888" } "linux_21.10_fix" { "gid" "8582852140904295544" "size" "592560451" "download" "515199888" } "mac_retail_1.4" { "gid" "8582852140904295544" "size" "592560451" "download" "515199888" } } "encryptedmanifests" { "carousel" { "gid" "88EF888A1EE1F4BD529E68C0BA0291E6" "size" "9C93445AB275D53B91E4509D7B888457" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "1E847DDD973C15FF3B8CC53A45C5B1FD" "size" "0F82D25A8538B9CB4F88EA83FE20CE4A" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "476111682AC97CE654E598AD212C3800" "size" "50B1B3A61B01D23F1DF25E21D43CB41C" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "658748DA9A426B3C986358C109F9FE34" "size" "DFAF53F7668EB1A1BE15B641568BA699" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "75E592DECC5D43D883DB598A8CC35BAE" "size" "43FE01583D77EEC55B7ADFC25278ADD9" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "DF1D6A5ACB0C9D7D1193B742537EA34F" "size" "1A5F4BE95443D061FCA9023C5124E565" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "0EC73812E80E501470AE45C860695903" "size" "F5E916F60DDE78B7A77FF63DE879A310" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "7254814A3716F4E2F73B9D97B4BE5430" "size" "B562F250D7CA2BB44C24EABA238B3426" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "0E407BB5189F108373B8734D9AA16624" "size" "E2B05EDD71ED5F2E9202EDC15DEA93AB" "download" "89F20264DE9F1E6AFFD797E8501F43CD" } "kassius" { "gid" "B32189E3FB15355E659B55B35437217A" "size" "A29C4C33DE02FBCC2BD2F3FC50548EC2" "download" "EAC22A00D22A888C0D6B25F8D825157D" } "launcher_test_1" { "gid" "572CACC9D65C3C90B46816536F6AF360" "size" "B58D6AA26511F18F06ECFD32D6098AA3" "download" "FFDF1F2143E23F0AB64FB4BF0A3B1A94" } "mac_1.0" { "gid" "9DD2DD3F6DCB3F4FB13A04C5010B370D" "size" "469F2375E1B1E27454B70B44B66195E4" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "F83C17A4866804361644DE4596C548CB" "size" "0755B705064E576282125BF850E83FBA" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "B556558136F5F4B2D39CA15C355A7B0D" "size" "B5E247D05A17E4A02FA1FB64F5DE58A5" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "AB427082D01485C07FEA6F3044068135" "size" "E989AE7C8B3CFD6002BE4C137C978408" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "746A9815E9A9E4E42A72FB7182E52C78" "size" "5F9655B346CC1DE208E7528D34A1604E" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "3AB6C8A1003ABF6E37D0833081D7090F" "size" "38C076CEE994C90BE611D39ECD687CC5" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "A25856D8F7034E423BF6966B7AE7DD0E" "size" "184309B45C3B81724BFE451B059085F7" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34341" { "config" { "language" "spanish" "oslist" "windows" } "manifests" { "public" { "gid" "4726807682131071446" "size" "595488261" "download" "477190016" } "linux-pre-2022-update" { "gid" "4726807682131071446" "size" "595488261" "download" "477190016" } "linux_21.10_fix" { "gid" "4726807682131071446" "size" "595488261" "download" "477190016" } "mac_retail_1.4" { "gid" "4726807682131071446" "size" "595488261" "download" "477190016" } } "encryptedmanifests" { "carousel" { "gid" "2E8F631C1FC45B2F85C94C7EBE0D7855" "size" "AD329B38394009E524E4D460D74A301A" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "771CF9EC9911DE706120F2C9D9F9FD77" "size" "72B67B3B8E35E105A03B2211580B4FBE" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "4574CD80E5E2B87139BDAC59D6468B8C" "size" "CAAAE6E1C4533A94EFDF70ED5336686A" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "1BE89C56552135777111971DB539B247" "size" "78FAC4BF1FB56AE9990BFED6719A5361" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "87967AD42D7E45C87D43DC4B5AFD6052" "size" "E7F0A38A798BB5772D8E62EFC069500A" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "BB0704CCCB0344C0AC5BD2DF03B2517B" "size" "F5DD057CB5ECB0C72DA5CCB6F296AF67" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "24FAC518837E3FF4246F1C5ED05632A2" "size" "DCD4A6A04F253E09E89F6D8E7E1A3DBF" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "9782309B8A882B39D351C964D252C2BA" "size" "201D80A579B3817BFA7891E07FA31A19" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "F5115BE5903642753FBF4F253B9B08DE" "size" "8E2B8A0D72E17255DFD4CAAAB91E609D" "download" "32C9B169C816A19E912603EA53F549E2" } "kassius" { "gid" "255EC98EEE01E3DFC445E3974251E719" "size" "1BB704FA18606184AA8DEAAE2D08DE3D" "download" "E661D31E85DCB575757FA5923728BEBE" } "launcher_test_1" { "gid" "1C31AF3E10DF432FABB999F62577ACBB" "size" "336F732700103F2BC4D3C9298D9CFD4E" "download" "23B0FAA4FE72D12CEA0DD57CBE23DD85" } "mac_1.0" { "gid" "E7AEAAC8286B66FAC175EE239B49C2F6" "size" "494CFAB49671672305CEE46609712B4D" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "0096B0F6BFB8AEA2DB612EE56E533EAC" "size" "75B55C56EC76C810D77F1E20B822ED89" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "E8E0F3B7FFE2CF9A4FEEF6D45AE4463F" "size" "3AC841E836C8909C94408DBABBE02683" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "93034CAD8D25B433E9E24D116A0570CE" "size" "29205E4A2EF537D1D9ECAEC00B213C50" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "C4687908B1A429B90DF1B9668C185089" "size" "8333C47EEE2F1982AB0B330AE21B958A" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "7E9480929CFC5AF270B428E403C7A20A" "size" "96B4B0FE479B047D1FE407848A3F5D0A" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "550D67DC5BFD9D4B56E279A1673C495D" "size" "510B539866DF0789119EFBC7645A45D8" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34362" { "config" { "language" "japanese" "oslist" "windows" } "manifests" { "public" { "gid" "2019728393033869948" "size" "517975764" "download" "0" } "linux-pre-2022-update" { "gid" "2019728393033869948" "size" "517975764" "download" "0" } "linux_21.10_fix" { "gid" "2019728393033869948" "size" "517975764" "download" "0" } "mac_retail_1.4" { "gid" "2019728393033869948" "size" "517975764" "download" "0" } } "encryptedmanifests" { "carousel" { "gid" "16B11680130F6C81C5126B976B0049B3" "size" "D834557AE2E5F07656BA5ADD78106644" "download" "0AB40211324AE3A076CEDCADA71D3225" } "domesticated_internal" { "gid" "2439B9AC001B541A1EE3E089D1789F4A" "size" "88BE6861C35800F13E41C3702208D0CC" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "CB9F5780C053781AECF01E40EBD3709C" "size" "4A169304C91E38AA8996BE68AE349BBD" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "38A42C9C7B4C06E8F2C8C0FAD8150FDB" "size" "261D0AD4781004520290ECAC533DB021" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "28C99024B6F7C737C9678B358D65BAE6" "size" "EFA773C9DDE213C66E89DF02AA66462F" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "52014436F0E6325930EA0386F1252E67" "size" "161F330B247D1C3610D9E5F3D10593B7" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "33FED4DDD393D7772391BBD9C333A075" "size" "96A3F7CCF8014D79A67801A60F0B90C4" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "427386E8FDC7CF44DF9FAFACCCC24E59" "size" "612C7D590CDE6C35EDBCE4849CF583F3" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "BED58FEDE963F725DE80363B1A4848E5" "size" "7B17D394ECFACFB13D15D3E966690427" "download" "1FC5A728E473D5A492FAC7E81AC78CEF" } "kassius" { "gid" "75FE953D2E03C3A5D1EB523AE825F5BD" "size" "066F28244BC9EF2FE72CF8038D4DD6B4" "download" "98037B7195F460623A9DBE07C7C0C670" } "launcher_test_1" { "gid" "F9BF2D210C3FA3E60632401ED19AAE2B" "size" "E6E1B91BC4393926565401FA37839E2F" "download" "46CC15CA26FCB4370B3968E46E15591E" } "mac_1.0" { "gid" "5231C611B67C7D3A68923377E07C34E0" "size" "FB8F20CC1303DC5E537C3E2D2B7DCF3C" "download" "8FDA978D189D4F62778BAC4ADD8F8EE2" } "mac_1.2" { "gid" "1566E066F53E61BF9A2B9C77FBD80FB0" "size" "B7C2F0D16DC80F0DC06E5C8BAA469E44" "download" "FED6042D7B21524FB0C3840CA562B73B" } "mac_1.3rc11" { "gid" "5C707F6A9E8231E5DA0B43F4BBDB256C" "size" "8505870B50772B39B63F234E007209DB" "download" "A4E4967171987960B02A20DEB4C38B43" } "mac_1.3rc12" { "gid" "565375E93E0344A53B890F56999887EA" "size" "F231A94974287664CF9BCC5A659B3E22" "download" "59C89B99CC2E7002DC9D1B058ADCE407" } "mac_external_beta" { "gid" "7C3EA89A07629807DB13B514D2479BEC" "size" "E750AB7E603C43B72F0E2CCACF2A4360" "download" "E8C52BBC70A455CB9CA1E8143589026A" } "platform_merge_branch" { "gid" "A349641250CD4824E2EA9BE838ED54DC" "size" "FF9C064D55EA4DF3F98AD1DD382A5859" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } "release_candidate" { "gid" "84CEC2B783A5FC6C75FA2557E07D5854" "size" "A25C9788294CEC3A564E709870773B0E" "download" "A114184C6C88EC68F9328B25D66A60AA" } } } "34349" { "config" { "oslist" "macos" } "manifests" { "public" { "gid" "7434482738042123192" "size" "22997001781" "download" "13913982944" } "linux-pre-2022-update" { "gid" "7434482738042123192" "size" "22997001781" "download" "13913982944" } "linux_21.10_fix" { "gid" "7434482738042123192" "size" "22997001781" "download" "13913982944" } "mac_retail_1.4" { "gid" "6393434948689679344" "size" "21635829358" "download" "13520647904" } } "encryptedmanifests" { "carousel" { "gid" "80BA1F6C31D63ACA3456C4CE25F2C9D7" "size" "BEA30F4A2A1C31858E59531568F176FE" "download" "0A814CD733986A702AF3BCA7E94597C2" } "domesticated_internal" { "gid" "BC7C0C350659FA755F9332CE579BB51F" "size" "D8738B9615456CF76B9647EF30B3C8BE" "download" "A604B28109D1A891C6DAA941867ABC2C" } "domesticated_merge" { "gid" "7B6AEB678F796E778407A85113B046E6" "size" "EE81E953A13AE4D71F48BD3588891703" "download" "3DC08326908FB3D98377D6E9EC2A00AE" } "domesticated_privatebeta" { "gid" "6593E53516C557386BF8C9B01CCB6590" "size" "5A9E0DE3F21E7CA8224451BBEF690E6D" "download" "0308BE92182071CE8C4D31C2E683F425" } "domesticated_qa_branch_a" { "gid" "F5E821AC78B320C1E21F1C287F2AE9E9" "size" "CF59391FF50184EEBB380D80E593F95D" "download" "BE1A59B4663D5879225F89F37D2C9CEB" } "domesticated_qa_branch_b" { "gid" "F51EAD6E00665253D2C4AA9D28ECD50F" "size" "EAA28A5E95B22EBD5B0FB4A197D221A7" "download" "60CCA48511CBAA95C81608BEA6372A39" } "domesticated_submission" { "gid" "7E4E4004CD8351488B7F5563C8B7D115" "size" "1CA83B9F07324C62684418FD0DF3FFE4" "download" "227609269F4B3E41C746EEB14AF44F13" } "domesticated_submission_2" { "gid" "F2D6C9182DDE54A3C8D0EAC93318CE34" "size" "D790E425498633BDE1FA3D96B5218615" "download" "F2B1E5CFFCC069D9BAC6B83448723BA2" } "domesticated_windows_sync" { "gid" "89427A79E44E1193E4454C58CEBB6595" "size" "D51D4AC9E98E74BEDE2898038C79CB7D" "download" "C4E67AFF6E3DC4D84CD97AFCA3C58D52" } "kassius" { "gid" "478A041BA73172C981A9727C15272D54" "size" "3ED26685D9CFC9B61780C4D94997CA66" "download" "765551C8385C1C17A484BC01AA67025B" } "launcher_test_1" { "gid" "8CB3442902C59DB583ABD175BF5A3EE7" "size" "77291FDB9C14BC88EE1E868DE196940A" "download" "FC77F07B6DDDEB0C49453D6B26BB9DC7" } "mac_1.0" { "gid" "4BAF231BDED0AC42A1675D83FF98C0F0" "size" "EAA6AB934480D59A20DB4297CFE6630C" "download" "8901A5CE6A80494FAFE668A3A14078FE" } "mac_1.2" { "gid" "4340FD94B14098B49EFE13EA5BB5B504" "size" "ECEEBC41F7332C9D624D468000268291" "download" "64C6F496FDCB1652979655B3EDB10947" } "mac_1.3rc11" { "gid" "E80BDE1DADB532B9B28180AEF35A889B" "size" "308CB09C420923CB351D343B69E5DBF5" "download" "084082E74839DA60DFAC0C9B6430D259" } "mac_1.3rc12" { "gid" "E4A18E5E892EB1A84412421BC0A58EAD" "size" "653EF66E00FA0DDA7FB742F93FF24EDD" "download" "B53A3A826888586E4AA0F221FDF6D51E" } "mac_external_beta" { "gid" "0E08758DE5AD00632AA0581FB6F3B2FD" "size" "59C9F2384F59A8203225AB8DF9097847" "download" "2F1C7CC3DF927B2E5B0FB90FAA6A49E9" } "platform_merge_branch" { "gid" "CF1AB6107F2B41FD4813C8434993BDDD" "size" "A559AE79EC11D09F2B50399883B8E6D1" "download" "9760A987FD7832C9FD22C0947EBC129D" } } } "203711" { "config" { "oslist" "macos" } "manifests" { "public" { "gid" "585301899018748156" "size" "111433000" "download" "50304768" } "linux-pre-2022-update" { "gid" "585301899018748156" "size" "111433000" "download" "50304768" } "linux_21.10_fix" { "gid" "585301899018748156" "size" "111433000" "download" "50304768" } "mac_retail_1.4" { "gid" "280447288648360754" "size" "97298377" "download" "33589312" } } "encryptedmanifests" { "carousel" { "gid" "1BC4CEBED77CA9E429BB95C17F3BB6AA" "size" "1BD40FDE4CF5F9ED7E88ABA452ECC004" "download" "FBD58725C25097A72CF47CFB56053272" } "domesticated_internal" { "gid" "F81594F02490CCABE785C70ABEE69AEA" "size" "80DD7D104A2536B80691193AA658B85C" "download" "C02783A01BC0E1F35C79214A69F19F3F" } "domesticated_merge" { "gid" "689F3735D571DC89253108A5CCDB3C37" "size" "F49FC8EA2F05B35989596A62C3206DD4" "download" "C22CAFEF724399CA0392E5291896A4D3" } "domesticated_privatebeta" { "gid" "9C0AAE13BF1F24C3B7F41EB4D868FE3B" "size" "843A50566A745B9C6F08DB0640D3CEAE" "download" "D0854A5A65FD8B59E2600450BE9D9BC9" } "domesticated_qa_branch_a" { "gid" "245C98FAD1FE2AE876855E3E1F594F7A" "size" "11B619E19EFD97D9EF62B454ECB2C998" "download" "27EA32A6650879580EECD5B033BF4810" } "domesticated_qa_branch_b" { "gid" "EEC92AEF89D143CF8C356C9DDEEE1B92" "size" "D41C295B837239C36722A7196A8B706E" "download" "68525F99E8D6B77750FC4C300F127E62" } "domesticated_submission" { "gid" "930A361C9476EB0A12CD392A8CAA8125" "size" "08B3E844CDA4326B0EF1C12A3BAE72E8" "download" "80BC5F9CD092512A20ED5C3CF81CE33F" } "domesticated_submission_2" { "gid" "E61DCCCC6DDC4C0F96E2A600D9CC0EFF" "size" "B0D0BFD4C3D56D4BFD83FFC69A1FE5D7" "download" "F824375420351BE1ED2E79A33ECBBE01" } "domesticated_windows_sync" { "gid" "059C6A30E98396A373BE6E2EFF40CAB1" "size" "1BC337B453C6762C60FDC9E40FE5961E" "download" "7279D3039366F84D763E35ED72D9D413" } "kassius" { "gid" "7E8CA0C24235E1AC509FB2C5DBDF70A5" "size" "9F767D8F060F51B3629E30319F627BE9" "download" "34963D230B3D3FE5E17FD204BA61271D" } "launcher_test_1" { "gid" "DB3B29A375BC66EB42F9E93EB45BA4A9" "size" "7BB9C5E42B095AA92C4B6BF21112BF63" "download" "005F216A5AB985A17E7C965DF0D566A8" } "mac_1.0" { "gid" "877B7643715B3663E46EB7360E58A1DD" "size" "40141719762DC96E61C7BE9BA0336F99" "download" "F12774EFAB01B2C4D35384D7467682E8" } "mac_1.2" { "gid" "ADCA1A83027B49EB373137EEB42D1181" "size" "6E0CC7E2AAFDB76DBE0B617CF4D55005" "download" "9E4791DE358AC4E361388C91ECB00D52" } "mac_1.3rc11" { "gid" "66063614E859610383FA37855A7169AD" "size" "DF3D5ABC839DD7267560CCE48735CA5C" "download" "E9DFB51D14C02C93B9EC4E81CBC996C6" } "mac_1.3rc12" { "gid" "BA4B35F47DD11114064E7954F8F55EC9" "size" "159A969E7C26AD427F3573A037D6C252" "download" "922BFD980534416AC1C847DA060495CF" } "mac_external_beta" { "gid" "E7B04FBB672F5933DCBF9A15407BF9CF" "size" "9855A284C43EA7E00689539D9849060E" "download" "71E03699FFAFEF4E513E6DC19A41099C" } "platform_merge_branch" { "gid" "FD994E112E608516A0C2BBC6B8AF2265" "size" "8403B1B6F2952B28EE3D401A9C34006E" "download" "9E157EC69919FAFE2B9F7E9DE816E185" } } } "203712" { "config" { "oslist" "macos" } "manifests" { "public" { "gid" "8760837523389306295" "size" "226116207" "download" "193568192" } "linux-pre-2022-update" { "gid" "8760837523389306295" "size" "226116207" "download" "193568192" } "linux_21.10_fix" { "gid" "8760837523389306295" "size" "226116207" "download" "193568192" } "mac_retail_1.4" { "gid" "1268440574808975389" "size" "15" "download" "285710424" } } "encryptedmanifests" { "carousel" { "gid" "B411B4428CA757B7D5B7545501D899EB" "size" "90180B204D7DC60A62CEA2201BDE0187" "download" "C39AEBC9EEE80D54B0FC2913C7DC8D43" } "domesticated_internal" { "gid" "B04C33EAE9DA6EC89C0D4B4E092A16ED" "size" "4DDE93D5FCB9B040C7BBAA996E0F6647" "download" "915E56A3F06FE41803630D6771B29742" } "domesticated_merge" { "gid" "7ED9BCB0003435BA4372AB84B013A49A" "size" "C135482D467CEE077EE22C772379F611" "download" "84BE8B2AAD87161E87912096915FC448" } "domesticated_privatebeta" { "gid" "2DB9579DEB58CCFDEF89EC4B011D3B3A" "size" "0C88429AE4FDECFC4AB65D4BB8101C30" "download" "258A75D5E4AD7C84904C17E1AFD8DF35" } "domesticated_qa_branch_a" { "gid" "44023F5B1F37A08548FB72372E87F80C" "size" "FDC06A119B5866214D3C1A39CABE82C3" "download" "44511D3D12D083B774F4A5DEC66F4FE7" } "domesticated_qa_branch_b" { "gid" "7B17B0D39A86E9B510E3D78E451951FE" "size" "371E03264B5BAE9EC31CAA7D2DA0DCDE" "download" "0B06640C629C1C0A4373E5987EFFF20C" } "domesticated_submission" { "gid" "74BCDBC9BF712EEFAF4E73BC75B48669" "size" "39904E6977D75342AA50F3983EA124B5" "download" "865756A1F3BE55584387C332F6BE04F1" } "domesticated_submission_2" { "gid" "ABF51FC2DE0A7E1DC8B017ECE39F6D92" "size" "BE579067311C2032AA40AD1595C34927" "download" "F5AF7F4EE9F20F2C717CD2EC26560F0E" } "domesticated_windows_sync" { "gid" "63DB973101A955551EE006DD8C9F8D60" "size" "AE356696EF800E93BD477E8727C6DDE2" "download" "08246C42593622961BE7EBE072DCDE0B" } "kassius" { "gid" "61E6AB5E19748E960F1EEE4B49220B4B" "size" "257755B10C7B2BE9B2D51FD2A4DC784E" "download" "2784E092B7364D37489AF189E221C44A" } "launcher_test_1" { "gid" "2B0F55332B3E7D2BCAA02EE471C450B5" "size" "B1B8AEBF7117F4DB34CD20EF84D44F06" "download" "D82A8F9FAC1BCAB5DF1D16755822CFE0" } "mac_1.0" { "gid" "D4D7A0AA4A580B723F49699C149A5DCB" "size" "756146B5A71AF41F4DA4B36C0C4C7CBB" "download" "B6FC3BA7D061A186AFE7FF139A808290" } "mac_1.2" { "gid" "DE2860E862539F4179722030065E3251" "size" "A3611540996B7C55C6ED006342690F64" "download" "94720239EBC829A743F5E7BB3A259137" } "mac_1.3rc11" { "gid" "BB0B05931B1C8BCF7272F873AE9929D8" "size" "DC7D26D49057DB74BF9832B214FE28DE" "download" "05363126B3DB2D3BAACF32133C9FDDCA" } "mac_1.3rc12" { "gid" "F94F51F235028BFC676077EE30305D1E" "size" "4D312D9F0F0F45D9C448CF6E96CECDD2" "download" "45028805C7307F5F53EFDDB54DA3750E" } "mac_external_beta" { "gid" "0606B810F2A5250DCF89B9EA9BABC956" "size" "8B9BA719034DDF11DF45CDE276DBC741" "download" "9F4A8737F7FE7D48A87537A430D30213" } "platform_merge_branch" { "gid" "D20DD9B2A67DB4CE56554C83E298331E" "size" "92DD1A7FEBBCD5B61404C342883D5E17" "download" "326FCB3FB6ED35A1E95D0F7604E3CCC3" } } } "203713" { "config" { "oslist" "macos" } "manifests" { "public" { "gid" "7294532923074008469" "size" "2259750452" "download" "1325062080" } "linux-pre-2022-update" { "gid" "7294532923074008469" "size" "2259750452" "download" "1325062080" } "linux_21.10_fix" { "gid" "7294532923074008469" "size" "2259750452" "download" "1325062080" } "mac_retail_1.4" { "gid" "1866374797516873607" "size" "2831998054" "download" "1864040384" } } "encryptedmanifests" { "carousel" { "gid" "4483C3E41535A292E75CB6E311DEDF02" "size" "47997DED4CCBF1B27F250074CF6F5728" "download" "4B9D1315BF27D1D41541EF6118EBEAA4" } "domesticated_internal" { "gid" "68269FBD76C7A1B3EA01E7BFCAA907AC" "size" "4B89DA3BC34CE48052ED47238135D664" "download" "323F268345DAE12442A4F5206C6852D9" } "domesticated_merge" { "gid" "8D2FFBAF66D912868C76F8890EE74FC5" "size" "39931E6746FDE393D164D1A18E11F855" "download" "06863EA68BAF0A165D6DBA46D5D57D8D" } "domesticated_privatebeta" { "gid" "B2FE2B4FC93DAFD04150DC657F5DF02B" "size" "AFE2B58A6ECE983F7D93262E82181BC0" "download" "6C1E1A4FF577EA2A4B1F481B98F134DB" } "domesticated_qa_branch_a" { "gid" "EE94DDD25F97869606C611E7E3EC28E2" "size" "5020DEFA0184C2F3926325DB600CCCA7" "download" "74302B4344CB5B094B8312C4336C51D2" } "domesticated_qa_branch_b" { "gid" "F76264FC1531B8C1C9C84AC083BAA5D6" "size" "FC71CAB9E7ED7E30A12EC65D7B14A498" "download" "D15511010211003FB16A775CF718E739" } "domesticated_submission" { "gid" "7E527D1B79C01DC53A1F258DDC5E45CB" "size" "81A0846A79E36DDA6D5E2CC7C8A17C1E" "download" "6667BB2188AA631E677A9CF896033EC8" } "domesticated_submission_2" { "gid" "E3C1BCB1560ABD6A4D2B440BF03FBDAC" "size" "D2DD255A021AF4338935AF0FB8C17B59" "download" "A3818F54681807B0CC11FA8DE6CB38B2" } "domesticated_windows_sync" { "gid" "E285DDA34BF51498545D09F5F8CA07A7" "size" "A26218795CBE8D66EDE0186A648597C9" "download" "EBBA9DF05A5E149C79328F21FAA3FECD" } "kassius" { "gid" "1AA8689B392E505B631D4C94697DA875" "size" "A0DA15CBCA18142807B6510165CAA1C6" "download" "F52E32EF46F9540BA59B1BCFF58D55EB" } "launcher_test_1" { "gid" "5E5933190C7A6607A51CBC3B027B8AE8" "size" "2018598CAC58583A223F1F61F800663F" "download" "CB545D785429A2F4A9FBDF85CB998FED" } "mac_1.0" { "gid" "C86397B57440D4FC520F6980F0DA6E4B" "size" "25F94D354149C0727E5BDB64BB707AA8" "download" "6E92DE93AC549317E44C9B2A15F816EB" } "mac_1.2" { "gid" "B0F20B821C4E1C32766EF6708D752956" "size" "05EBDA27239CFC61782A04BC29E03DDE" "download" "E00D2DBFAE7BD992AA844557AFBFC4BF" } "mac_1.3rc11" { "gid" "42093732E854B5247A6BA5BB321A5305" "size" "CFBEE7F265D15D4C4AEDE4FF28287E9F" "download" "9C4075B861B4B6BBAFFB16E069B1C18D" } "mac_1.3rc12" { "gid" "593F2C107FC8E4752D8FEC4B3E783418" "size" "01B1DD1A41779A374AC2EDDE4834464D" "download" "78CC89CF1034F6A3CEE3C1665A19A76B" } "platform_merge_branch" { "gid" "99B16352AA5D8EF6B7B73500ED0D2C85" "size" "9BA94DB984B5721E3FEEAE826EBD3D69" "download" "FD375C3CD64B437748638677A493761B" } } } "203714" { "config" { "language" "english" "oslist" "macos" } "manifests" { "public" { "gid" "518326888580160621" "size" "624350439" "download" "515683504" } "linux-pre-2022-update" { "gid" "518326888580160621" "size" "624350439" "download" "515683504" } "linux_21.10_fix" { "gid" "518326888580160621" "size" "624350439" "download" "515683504" } "mac_retail_1.4" { "gid" "628388837067139549" "size" "624350439" "download" "515706592" } } "encryptedmanifests" { "carousel" { "gid" "D5E51FDE06A00FC1D740C2537E4A6918" "size" "407C64A9824CB866C3C21193C8F27B64" "download" "3EB531044FDB9082D10C248A37B4F53B" } "domesticated_internal" { "gid" "C9B6CCFC05FF86D2701A600A81D16C33" "size" "672318E06CE484F364C321D42C0ED711" "download" "19C63401782E9A7BAB4D905C7031AACB" } "domesticated_merge" { "gid" "085352A0D26A9EE33136F0C1B77087DC" "size" "B70FAC668E4A217B69EC5FD4CC2ED32D" "download" "B6211282F4FD689638A1D194D962A054" } "domesticated_privatebeta" { "gid" "872DFBC6C0BD78CF5066362674365036" "size" "FD5D587C619B56C73074D0CD7129B801" "download" "0DB6C288D393C42BA781D814F5CA49AE" } "domesticated_qa_branch_a" { "gid" "4C43326C4204336D4388C7D2EF7EB491" "size" "7121FD07746EB2B5457E8971220B3791" "download" "314D8B2DC59A871D9C8494F661DF9DB6" } "domesticated_qa_branch_b" { "gid" "F28DC2DEC6A30443916F2CEBBECEADBA" "size" "0FD9FE4727EED898FF0DE37CDEA9E2E2" "download" "9E109B8DFAD7C56358E8F0651C6E82BF" } "domesticated_submission" { "gid" "8D13CC79B744C93EA54A8632FBED9B04" "size" "E4C7E2E9AC92C9F8D1FCE0A32B5F09AC" "download" "A14FEE7D7D6D57989128637870C64139" } "domesticated_submission_2" { "gid" "21638AF5ECF7DA5D7E5BBB96F2F66CE7" "size" "F76E4F7971207984F586470653D27939" "download" "457B52569F868AA4D1D3054508C14521" } "domesticated_windows_sync" { "gid" "901C7B1E6D8B79CF8B79D850C5E056C3" "size" "C20178F056710FB2B6C08FDC53D45972" "download" "97C4B53B6BA4226098E25239F9A0B529" } "kassius" { "gid" "673853CB0E2C289D91E2ADD323BCCD42" "size" "17D9EF301B093A6DC5A899CE2AC259FC" "download" "68E1BF04AE56B1B632823CE8ECCA4CBD" } "launcher_test_1" { "gid" "1C062C81FB829037535DB8CA88539B58" "size" "8B416E754A8FDD8D3D70BF9270743A01" "download" "6053DFD00F42E879F29FF1E5529C99B4" } "mac_1.0" { "gid" "09DF21ED3A6E78A1DFD94EE156210B6A" "size" "CF8CBF2FF6693E1BD77DE85DE8DD1E91" "download" "E1467CBDD5D474C1E5AF7190EB4FEF6A" } "mac_1.2" { "gid" "44D81D051B261EB42AB944131B47DA84" "size" "DB3E1366296303FC596CBB4E16B04E72" "download" "9E5A2B04FD58E1C74A4B578CCDA2A848" } "mac_1.3rc11" { "gid" "5EB8275A453C61B6AAAE4E2DB5A17117" "size" "C0B626146BBFE287982D863CB352F8C9" "download" "1D9E0B71BD13A7C743210216885FF3DE" } "mac_1.3rc12" { "gid" "958CE085AA29DEBE7BB1BBA2757F8919" "size" "023A4543DB03D6AAB9F829F891159019" "download" "F96211CA711F823E7E698A2460DB4606" } "mac_external_beta" { "gid" "A1539D644AFB4D2FD200DA4EA0F6A3AC" "size" "92600BA4B4DF81B9E86E068284EED4DF" "download" "4B6531DDE5B6F5350B2E3DE6F05CD602" } "platform_merge_branch" { "gid" "441E8404E597F77843E9D3990FE706DC" "size" "E84D95D9D2A6A4E08611A3AFD903C36D" "download" "66BA873FB0BF328B23093E5FD3926218" } } } "203715" { "config" { "language" "czech" "oslist" "macos" } "manifests" { "public" { "gid" "1056051627441399654" "size" "44673350" "download" "5428976" } "linux-pre-2022-update" { "gid" "1056051627441399654" "size" "44673350" "download" "5428976" } "linux_21.10_fix" { "gid" "1056051627441399654" "size" "44673350" "download" "5428976" } "mac_retail_1.4" { "gid" "1183197238962596164" "size" "610271975" "download" "502760176" } } "encryptedmanifests" { "carousel" { "gid" "EA803E30BB1302C7365C7727D02DE22A" "size" "67D261AF0CF1F24FDF7BFF543F4C43A0" "download" "138AE84086998755EAEFA32C5E5BD1E6" } "domesticated_internal" { "gid" "BFF118A9CD0D9BC7166D98920998DF82" "size" "3877ABA920D7D448CDB7257EC37E7299" "download" "CC4AC8262D06221218593876AB341423" } "domesticated_merge" { "gid" "2A90B2C2E13B620299D4C6C5EA4000E2" "size" "3FF08E010771587BA0C92B2428E85D95" "download" "4F1B4E0A7FCC3D10BEB9E620FD5AE545" } "domesticated_privatebeta" { "gid" "D38B19C6E023BADCD4EC247D82C4B8FE" "size" "982ED07F3B5F5FF95C12413D1FB4C532" "download" "BE6EE81B80275E7D92AF4E42D6D0D1D9" } "domesticated_qa_branch_a" { "gid" "E09C61E1EED963C14E9FA6A8765F7F57" "size" "901B80B3CBD7BAC557C0DAF69BA27082" "download" "CD07E5027F9C549748AE679112D771FD" } "domesticated_qa_branch_b" { "gid" "D8F922FBEE038D32593D1DE445F17818" "size" "AF7B8E5509DA31BE70BB8F3D9792FF76" "download" "8EF984630B96019CE15F92A652EE8FE1" } "domesticated_submission" { "gid" "284D10BE7BAE8C68EADC7F16DDC0A3AE" "size" "52C419277CD772DC64F9D1493B1300CA" "download" "3785CB4EB636BCABD59EDE1C445B9BE7" } "domesticated_submission_2" { "gid" "4DB4811B6555BBF3615E82FCE2F20F4B" "size" "8BB1E2229243243770646C94441946CB" "download" "9FAC800D0F00F826B150FA52109B3F76" } "domesticated_windows_sync" { "gid" "92AFE0034829BCA0A1A6F165A1E1C69B" "size" "3498B9DCCADC30CC947A51D49DAA441F" "download" "6DF5C8F81B8F383E5C6F80537CAA5E16" } "kassius" { "gid" "C8CBA406E493AE7D7C84DA7E929B55E3" "size" "619F533C0C7A22F0BCBE0E808656AD11" "download" "8649AA44F4F5654EB16DF2737C64FDE4" } "launcher_test_1" { "gid" "BCB0170262CD9CD79BE9535DD25B3012" "size" "8F9018C9EF368EF4D6651F16EA649710" "download" "B0B6B1D04D3AF461ED65AF7501AFEF7F" } "mac_1.0" { "gid" "FB971883F143E5C3EFF3CDA112992E99" "size" "772E70E17BFB1592568393D7CAF7BB17" "download" "C22C2959F8CAB3A981019AA20D9D1C87" } "mac_1.2" { "gid" "EEFF341C84BF2400DCE68CD22DFD40BC" "size" "4A6101D1A41D26667CAD44EACE6698A9" "download" "09557DD3A17860C0067E26ED8CAA6DC6" } "mac_1.3rc11" { "gid" "A2D1B470456D1FEDCC6E53E019746F2B" "size" "C2E173C290440835AC181DEA7DBE9FB1" "download" "F4BFA501D39989F74805ADC9597D833A" } "mac_1.3rc12" { "gid" "CDCDCC79F329B021DE141A0BED2DA3D8" "size" "CBE5080964A3421D4CF79C263343E4A2" "download" "B279CEA4B38EB68ED15D9810734A7868" } "mac_external_beta" { "gid" "9754DEB881A626EA307C9D78CF8380A2" "size" "5D6D9C438AC2460D34E41987F50F7621" "download" "B603C4B25BB2298671BD2304000C9CA6" } "platform_merge_branch" { "gid" "8193091A2EAF4F643BCD2F965F656CBB" "size" "C162AC39878CC546C198C69BF5811999" "download" "E728A89B4A3BA99D238B3C4AF880310A" } } } "203716" { "config" { "language" "french" "oslist" "macos" } "manifests" { "public" { "gid" "1925710679528494771" "size" "45098694" "download" "4938544" } "linux-pre-2022-update" { "gid" "1925710679528494771" "size" "45098694" "download" "4938544" } "linux_21.10_fix" { "gid" "1925710679528494771" "size" "45098694" "download" "4938544" } "mac_retail_1.4" { "gid" "2269766420080111912" "size" "574750263" "download" "470147456" } } "encryptedmanifests" { "carousel" { "gid" "6822E83A39FBD268F5953ACF78F108AA" "size" "FF02FA0C86C3E7A5E8C8F52164CA4B57" "download" "A74DB029AA06D0F992E333301F679C0A" } "domesticated_internal" { "gid" "368CA8FE4A1007B5665EC3A498233F92" "size" "E2F34C8433A1D9F2A727BFDE9EFA5ADA" "download" "BDB64557F69E5E80E720E4E72C6DE7F5" } "domesticated_merge" { "gid" "D2EAE13DEAF75018D0D711F85166DA66" "size" "1FC7638D2B946F67ACCD2BE90ADAF0A1" "download" "AED77B34F357AEB163DBA63576026F67" } "domesticated_privatebeta" { "gid" "2984890FDB02C70EC2E5F4DA5C2E5B93" "size" "C2ED68EF00BF47101E38C4F8B81B6A92" "download" "ADB07A1727851509076E85C11BB1C4B1" } "domesticated_qa_branch_a" { "gid" "661EC1EA52286CFE1349DD1B2AB29CDC" "size" "753F927031E37B0A7B4ED89AA70951FB" "download" "82FB4D99EFA53A3C05B4114598DF0C3E" } "domesticated_qa_branch_b" { "gid" "8084F0107D90AE48E16E8916B9B26702" "size" "BEC63AF30CFE90E0C440B91D42A6E4BB" "download" "9C22E2DABCF2CE25F80A4E8E356D2165" } "domesticated_submission" { "gid" "6BF1FC5F97AB311A58E00F5A2DEB60F3" "size" "61B38DE7EE08073C950E39411F8C14B1" "download" "9B4BCC3BDB6AEDFD8679123B1D947448" } "domesticated_submission_2" { "gid" "F3F20B13D647A837C947CF7A346A3BA1" "size" "8A6E69E7BF8EE4CE45BC7682E07B6300" "download" "D70DD899DC2B910832E12A9673EDD607" } "domesticated_windows_sync" { "gid" "031251F48834C1CFC6C65217B87E2996" "size" "B2C608995068F9964C572D65C2E91A65" "download" "D5B7A7A625491B41DBB91E0DB47CE23E" } "kassius" { "gid" "5B04498AD87B5C6B2190619364C4825D" "size" "B72CCED5807861CB2D916596AE52ED7E" "download" "41F6FFEF35F95E9A30F12B337170C120" } "launcher_test_1" { "gid" "F5B50979F0119F8AC17388EA4B0E1B31" "size" "DA960EC64033D8C1F93954224616114D" "download" "33DEEF426A7709F7B0276B1D2A7091F4" } "mac_1.0" { "gid" "28A0AB1638CE39331749ED271693402C" "size" "5768E2E12CEBC097808BDFB266828350" "download" "DE3BC8FCF89FA8BE05BEDE01120E772A" } "mac_1.2" { "gid" "28D80C978F688651BBC10E1490D1C3F2" "size" "B27D11C99A0C8232BB953F0C2D1D8BAE" "download" "9256E744B38FF584E3548EC9587F33F4" } "mac_1.3rc11" { "gid" "DCE59D5CC6A7FA9EE9F36C074210CF9F" "size" "4AB1D34F91A2006EA3B4CFB99CB822AC" "download" "A671B049EF6BA790F0A17313721507C6" } "mac_1.3rc12" { "gid" "4F6DE7565DFF29C51C0D08F830B2FE38" "size" "91DF8015339A07F67746F52BF9554580" "download" "1E67A4A9A2345D4822D334D6684E44DF" } "mac_external_beta" { "gid" "07D924F281B7D974131F2BE03EB70055" "size" "6E642507C2D420D0AE8891B50405A3EF" "download" "F2367756DFD6F27E7D7C2807EBE447CD" } "platform_merge_branch" { "gid" "63C57A7AC159E31316A97B9315619B7E" "size" "BF7C2AD33462E2BE51B82FEBB2D455BE" "download" "DE3028801D6B1BA356568CB80581958B" } } } "203717" { "config" { "language" "german" "oslist" "macos" } "manifests" { "public" { "gid" "3935614286324550775" "size" "44879086" "download" "5084016" } "linux-pre-2022-update" { "gid" "3935614286324550775" "size" "44879086" "download" "5084016" } "linux_21.10_fix" { "gid" "3935614286324550775" "size" "44879086" "download" "5084016" } "mac_retail_1.4" { "gid" "4380699829137518043" "size" "573096863" "download" "478147440" } } "encryptedmanifests" { "carousel" { "gid" "FC43FB39169C26EBC2D27973891A5DDE" "size" "6EB251EE16E1C36D694C3A4D4C747304" "download" "DA45094826E459E66212A4D21B02B447" } "domesticated_internal" { "gid" "5BC756F361E104652906AFF6B1E10357" "size" "B016603E364FD29648F0927A88956E55" "download" "415F4AD1F51FA0889B0AA6EEDFF3C9A5" } "domesticated_merge" { "gid" "F61E2F777274B04E83A14959B7CB7C3B" "size" "DDEC462459020246B0C281E76A7A6A5E" "download" "9A93F73CD6AAAC8687474CF2F4C195ED" } "domesticated_privatebeta" { "gid" "EC0FB04E66FBA5873880FA9DF380464A" "size" "956BABF72A1E3DB4FE5B352033750D0B" "download" "10D6372BDBEB8EE2C52A24D4224463F4" } "domesticated_qa_branch_a" { "gid" "C811B98195AE70827BF208F3D65BA785" "size" "887E2B3724C4C38FB84D666E1ACA64E1" "download" "54E9F493FD98CAEB6ADA4050AAC29D33" } "domesticated_qa_branch_b" { "gid" "C9A01D52790D7520259AD53CF96775A9" "size" "1E781D40E452EA6ECA4F8393725902A5" "download" "6F0A392660E6DF03DFE61F61394D0707" } "domesticated_submission" { "gid" "03E528F8B14173A6D4CAE1DE419B31D2" "size" "A29F2A30F50C895BE9A1D93EB60B9B86" "download" "00175DF0DC14DA33A7C19E600DA37322" } "domesticated_submission_2" { "gid" "F1ABE8D900EBDDEDADB7D00C76260745" "size" "1F105C3AEB15D400DE7D3B8245ED6887" "download" "AE032BE065A6BFE314D7416424090A38" } "domesticated_windows_sync" { "gid" "53F93375D0254029CB00EBE3564F6A10" "size" "278E4EFE3740282185D37A1550FD07D8" "download" "4B794F63653F0E3484DAA35A47C8126E" } "kassius" { "gid" "5AE33E13E888E008A0C806DB3B605FCC" "size" "5A8DC0D785CA813B499635D54F954B5F" "download" "9122815C618AACA762AE879D6A553F3F" } "launcher_test_1" { "gid" "F8B7F5920F0B3CC536699820F02FF11E" "size" "8831B9B8DC11E83CCB44E4DCF1B8A9E9" "download" "96009AFC42C7018AEBC56559ED3F1CBC" } "mac_1.0" { "gid" "6565E98F35FCE39AEDC22FFE0647754C" "size" "B8EF38E2702F82E248244470F28613AF" "download" "2E22C17EB959A9E618C3A895E912F0D7" } "mac_1.2" { "gid" "3A5FB47343557864C683D2B238564FE6" "size" "1864DF12FA9473DADABBC084CDB0950F" "download" "81AE3E7303060776865350E0371D17E7" } "mac_1.3rc11" { "gid" "EFD2C2A1DB0DD141FAD6651CC9E7A1DE" "size" "62553593938E6102C9122A0D2CF7B039" "download" "AF42270CF6FE658A4051F1FB19744EC9" } "mac_1.3rc12" { "gid" "011DBC487686A2869C9D844D0453E83C" "size" "81E943892822E942D95BDD94F49128B5" "download" "A4E8CE9B626DBDF8199DD9B69B109C48" } "mac_external_beta" { "gid" "2840205938C7FF4474AD816B897E223D" "size" "CDB92123855E2214F914F2E43188B73D" "download" "74180E39643619442BD114A24199F6DE" } "platform_merge_branch" { "gid" "C8D1E04F8938050956C02E2ECBC273A4" "size" "6719CFDD0521F956224EF0370E2521DD" "download" "04A3457E2B982135F4BAD2A3340AC038" } } } "203718" { "config" { "language" "italian" "oslist" "macos" } "manifests" { "public" { "gid" "7093356102196200004" "size" "45142672" "download" "5133136" } "linux-pre-2022-update" { "gid" "7093356102196200004" "size" "45142672" "download" "5133136" } "linux_21.10_fix" { "gid" "7093356102196200004" "size" "45142672" "download" "5133136" } "mac_retail_1.4" { "gid" "635634265744266460" "size" "611445229" "download" "525306128" } } "encryptedmanifests" { "carousel" { "gid" "FE91D023D24BD64CD1CEC421612307A3" "size" "11490D251D58A5488D9CF45E84D64FDE" "download" "8A647F31435BEC97EF24A3702D647D59" } "domesticated_internal" { "gid" "1E08C04BB15C62E303FD8AB4D2E96D5B" "size" "0FBC053A57C4CB6BF21E0A933E85B8D1" "download" "1A140936D2C875972DEBE74159637728" } "domesticated_merge" { "gid" "8D0EEF61B1432AF99F841B540133B69C" "size" "3A1B80E053401E938B9A9F86C57B7EF6" "download" "9CA4998104590966E5BABF727725E4A4" } "domesticated_privatebeta" { "gid" "AF5B9DBDC46A0C3D2CCCEDB310EFD5E3" "size" "96CEF6603D51E530D37D964D349A89E8" "download" "394D638DA2DEC104A12AADD2FF13735A" } "domesticated_qa_branch_a" { "gid" "A04E13E3A32CEA8468DD58087B84C39F" "size" "BB6CAF7EF9B70B14B27A3F72CB09331A" "download" "CD2759175EC0E1DBEB8500A6413D1FC6" } "domesticated_qa_branch_b" { "gid" "4F87BA7C54270B7C7DCDCC7730A372C5" "size" "3C5CF7D3A45E092693D1E0363EDC1AD3" "download" "4793E1DF4825B4D40912F6A8821E53E3" } "domesticated_submission" { "gid" "254B57B96C5E0663D88300458633100C" "size" "A9FCD15175964DAD40BAA2E66CF5912B" "download" "D4BA778DED710E9542B465227173383E" } "domesticated_submission_2" { "gid" "8A7AE7B884897482D1AD43476B66D985" "size" "C734B842AD8C1AEFA64A52093A618B3B" "download" "D3F14F8393EB27558FB3A78FFCFA746E" } "domesticated_windows_sync" { "gid" "CD199BFCD320470CF147D5E126EBE64F" "size" "A813F064A4F442265EC632E7B7C70649" "download" "ED5A81095E73118FF340A66D7486631B" } "kassius" { "gid" "70F8E0559B51E0B89199E80622823599" "size" "8A85CA67EE359606A70EB28EB7DBEDEF" "download" "21068B04B5F914357AA1D77B1C4FF847" } "launcher_test_1" { "gid" "1008117048BA70A8AC5D66A3EA1336CF" "size" "B909F6EBEDF51F09760B26E9883BB784" "download" "0CA0156F10BB3AAE005A569D08F50F66" } "mac_1.0" { "gid" "9F949EE70645499091136EC951BEE850" "size" "D87946E9FF437A5EA5FB97F18C2C436B" "download" "78557221AB9DDBC0DE309CA260212381" } "mac_1.2" { "gid" "F5CE81F8875DAE5E2F696235F2A549AC" "size" "5EF626E3D568CBB01D476B7CC95F8C14" "download" "8AFC0B4543C032E301B43B73D33B3F90" } "mac_1.3rc11" { "gid" "D592A01F9DCA69914B39C38198B8BCAE" "size" "E27D6DF2E406FFAF30A9DF02EAB11B61" "download" "AF2136FF5D0CABD8913AE60C65130683" } "mac_1.3rc12" { "gid" "AECD4B1A382BEA2BEB583A91895B5CBF" "size" "4769A8994BC2B46CC4353CE1D67C8C59" "download" "0470608893DBA94A99EE9FDE3187A873" } "mac_external_beta" { "gid" "7E55C62D1AEB719557C89E4A3FA288BE" "size" "147E3D6F58359831ADC89BD744F7FE19" "download" "B6CFCB24A93CD1281EA3D2045434E60D" } "platform_merge_branch" { "gid" "D8E3BD9C5A7B7B3912F8FD09E4DC29A0" "size" "ACB5CDCA43A6E7B14D2DA6AE8184B953" "download" "96EB3424C9B9976FF3FE47EA501207BD" } } } "203719" { "config" { "language" "polish" "oslist" "macos" } "manifests" { "public" { "gid" "14936802368121482" "size" "44664551" "download" "5361024" } "linux-pre-2022-update" { "gid" "14936802368121482" "size" "44664551" "download" "5361024" } "linux_21.10_fix" { "gid" "14936802368121482" "size" "44664551" "download" "5361024" } "mac_retail_1.4" { "gid" "1922905075691669950" "size" "610263176" "download" "502682752" } } "encryptedmanifests" { "carousel" { "gid" "73EE40B0B63F788EB93644C55162741C" "size" "26F260C1CB01CA1DC26EF25F08A3D0AC" "download" "03FB63206B13A7F522CCE28227210377" } "domesticated_internal" { "gid" "0F80FAA40C8B607E5B34F82B89B263C4" "size" "D12A962AE28B607CD0C0DFD104AFF22C" "download" "6CE65DDA46282F70ADB5259283B20994" } "domesticated_merge" { "gid" "0981965227C5CB56C85856FAD3B6DB7E" "size" "57C0F24F1916A4E504CC8E75A87D2E0A" "download" "F45A45D52B00D295CEA0392F574B4126" } "domesticated_privatebeta" { "gid" "6A9907D99DA967667C4861069A41FDD1" "size" "807B6CF4ED4988CE8648B9789D75768A" "download" "EB5D6AF54F47D06D1A22A012E0902BB3" } "domesticated_qa_branch_a" { "gid" "D8A0CFDE05E65422B530370842FA1909" "size" "CAFDA70049F65EECBE496DD6AFB5919E" "download" "FD1D5211E04DFEA4A702B851F79835A4" } "domesticated_qa_branch_b" { "gid" "AAC45DF0D29E01FEE073A16EF7588CBB" "size" "C2F9703D29A331B7E641D09C19C93F13" "download" "03CD7A79A54576B9E92030839399C726" } "domesticated_submission" { "gid" "73B519B8E25E34E53B12A7CF0F6645F5" "size" "452650C5DD43077D72795675E6297094" "download" "A523F0BC83AF482156512A96267ED75E" } "domesticated_submission_2" { "gid" "C177268A0D4839C8045855B706B0FCB8" "size" "20DC741CF038EAB28B9CDEF1B85EFBEB" "download" "5A18CF837FFABBC1D6324CE177AFBF97" } "domesticated_windows_sync" { "gid" "FA1ED91F578E3A50E2CDEB86321E96F7" "size" "00548A22FFBC4E6898E3EDD02C3403BF" "download" "867235764BC4D24A25F58F626004AE20" } "kassius" { "gid" "89219B314758DFA112736153C1F01029" "size" "4531E8E079026543EB0085F7DBD37A0C" "download" "81B47E22A2D6C99FFFB36703FDCD8A0F" } "launcher_test_1" { "gid" "27AEE668ABC04711BEBBB5B3C63B8079" "size" "E6206770AFBCCEFE70052BFDE6C44537" "download" "7D6856E27C7A1BA17307652CC9D3A609" } "mac_1.0" { "gid" "F889CF2B5E1DF3E967E3223C78F49A3F" "size" "71FD02B2796A789370E83D4153464FD4" "download" "3C4594E20EEB65D97F793242AE65CB66" } "mac_1.2" { "gid" "DB7D9401535F8E86730CDBB29CE621A9" "size" "42C291F0C0147FC28166FE8EB0D5F891" "download" "AA4105010DA708F66FB7A54672D7B8DE" } "mac_1.3rc11" { "gid" "5E0E441F282C4D6C5896CC95972D60BD" "size" "821AE30AF42FFCED3CB7A4830B1ACCB0" "download" "EC3CC556CAC2D61B5AB11F3B3F1B9A50" } "mac_1.3rc12" { "gid" "5E3C925925A798D5B8F10F1799781C8E" "size" "B54A62D267EEB5E08953EB1A3BF5EEEC" "download" "7BEBF3232025C80D38F6AF920870337A" } "mac_external_beta" { "gid" "0660BF4A14F158E3990EB989D006C2ED" "size" "AC455F0AC0B29773BC4747FD9AAF9BD8" "download" "133CD4C92463A735640459737E19E8C5" } "platform_merge_branch" { "gid" "A6A50FD1E763E5816A46C5F51B7BE3D2" "size" "9D43144E26AA994C5F91944988664E97" "download" "5A88D28C41B7AE5487E426AD57E5A1D5" } } } "203720" { "config" { "language" "russian" "oslist" "macos" } "manifests" { "public" { "gid" "8777279047211202439" "size" "28702936" "download" "2953072" } "linux-pre-2022-update" { "gid" "8777279047211202439" "size" "28702936" "download" "2953072" } "linux_21.10_fix" { "gid" "8777279047211202439" "size" "28702936" "download" "2953072" } "mac_retail_1.4" { "gid" "602644954695362770" "size" "582044679" "download" "511614160" } } "encryptedmanifests" { "carousel" { "gid" "FDA33F458D19ED9DC030FE9250FD2453" "size" "98C4BC7FB87B5D9B71BA240C7D1727CC" "download" "7003FCADF11E03AC78F2D2C02FC3C7D4" } "domesticated_internal" { "gid" "2BF092BEF6C519CD109484D46874B0CE" "size" "658D4A4C8544B9C3EE77DC55CEE343B1" "download" "FD6A8156AB63FBFFC3B12619EDA0194A" } "domesticated_merge" { "gid" "D70F367DD9472B759832825FD901BEEB" "size" "54DE70E952C50B3FD6D1BAB4C05499B5" "download" "C1F1E3C7EB0A478E15BE7C29EB49D285" } "domesticated_privatebeta" { "gid" "E7CAF672C68C0F4A6361C57A387AB9ED" "size" "3A376389FFA6CD4EB7B16BAACBB5C1CD" "download" "D8CA79CEB190179973591BE37EA5C7AA" } "domesticated_qa_branch_a" { "gid" "C264ADF572135E2B194F4B029385BC4F" "size" "ABA86C0A7327CE11AFC990B20E41FAF7" "download" "8F5558752D89363D8489A4196BCD08B9" } "domesticated_qa_branch_b" { "gid" "C2E19E494F78CD3E2FBD34FE83DB52C5" "size" "A5C1CBC9D568AF462F6C7904061DED80" "download" "7DE5C84CA336475CC66D1E9A496765D5" } "domesticated_submission" { "gid" "964520EAA927C8F40ED7DDBC4EE1459A" "size" "7FA25227E1EF13F76F2821218E131D45" "download" "D3321F5F3347FD5A535E81E19A627F9A" } "domesticated_submission_2" { "gid" "47FC6F1E05B385ED3B788F2C15734920" "size" "1908FCC6EA448BFF729E7EA293980821" "download" "71E7572F286691E9679FDD28455CBFCD" } "domesticated_windows_sync" { "gid" "DF4D4C5B29599E2CE0CD93C32123514F" "size" "5AE361EF7F26B85A73E82536AC70B28B" "download" "31162BAF01AD4E7BF7DDF54F0E098191" } "kassius" { "gid" "4EF35C435ACC6DD6142F027256ED08F3" "size" "B31F156C0E6489DA65A3C508B787F9DD" "download" "C1D23BC17ACBA2F61A1AA4D79ED3F8F0" } "launcher_test_1" { "gid" "239E6BEA4A51489A2945001C85AE7B16" "size" "34BF30D76921829680C280037526DC0C" "download" "B5CD6D44AE6A5249349C71651339FF4A" } "mac_1.0" { "gid" "5CB80B09892612FEE9C7E5C70DEFED60" "size" "46D77E2DCA663972297F2A20881DFFB7" "download" "F35CCBED10943EFE52E2407DB07799D1" } "mac_1.2" { "gid" "426A3A533BCC2705304B85EB725B2A4B" "size" "2BBD2D2DB9B6AD2438E3A6AC992ADC2E" "download" "B9F88E0CAD298A31DEAF7E346A3D8C64" } "mac_1.3rc11" { "gid" "54FF9F0A51F552A8DD1845D9DD816F3D" "size" "ABD74F2E689619E473A9AD5E1E16C435" "download" "E564E7CA88D22F2CC072DBB92C91AADD" } "mac_1.3rc12" { "gid" "15671E5D8CBE58D01CA14478C037F81C" "size" "655C90099022048768AD50A532F4997D" "download" "47AA9BB560A4F1456945370C23072748" } "mac_external_beta" { "gid" "D94FA90A0D5DCA34BAB1C67455FB735A" "size" "729995C9CDB3FE2380F6CED44032AE2B" "download" "74D62FC933551D22391C3D2E5D438490" } "platform_merge_branch" { "gid" "DC23B26D81A3F5D1803DECA5328EF427" "size" "12FC0CCD6BEC15DF37859F6C16469A45" "download" "F92108F4D448B8B3B1F378CAE3641F90" } } } "203721" { "config" { "language" "spanish" "oslist" "macos" } "manifests" { "public" { "gid" "4196835143774225587" "size" "45032299" "download" "4895776" } "linux-pre-2022-update" { "gid" "4196835143774225587" "size" "45032299" "download" "4895776" } "linux_21.10_fix" { "gid" "4196835143774225587" "size" "45032299" "download" "4895776" } "mac_retail_1.4" { "gid" "1036502998177507790" "size" "586166194" "download" "475951200" } } "encryptedmanifests" { "carousel" { "gid" "E76EF97BA2089BEF7CAEC386FCBA9206" "size" "E6C6F2053D619021172F9D24D3E3B6FD" "download" "BC9C01C254E0C25E7B512297967E6EDA" } "domesticated_internal" { "gid" "FC085B175C9B29AE1AD1B7E23DBE679A" "size" "9F237CD1EE945EB6682A1C9A52710E4E" "download" "52E2DC55DF02E613577C7056212BF7BD" } "domesticated_merge" { "gid" "6ECC6AEE01A7FF1E32200C5C9A6175F7" "size" "68183BEBF3E872404968FC07EC076B24" "download" "3EDE7B76DF3377275FE6290B94BB5317" } "domesticated_privatebeta" { "gid" "4D03F830175D79009E9B4AEFAC93DEF2" "size" "F6A98318F0D63B7171CA881603594DAD" "download" "748F464656A3C65C30CD9CC89D516B43" } "domesticated_qa_branch_a" { "gid" "CEE115530960370FEFFE2466492F020F" "size" "C79E77BD179F307D51B8165592266BFC" "download" "4B4FF34F2E0F7FBDBAD756AD7AA456DB" } "domesticated_qa_branch_b" { "gid" "1C0D9CB0F0D8A68D8487C94397098A84" "size" "55D07FAA48E41D39AABE5EE85CAA1BCC" "download" "BC33E2C8DA9338589043EDC8439CC391" } "domesticated_submission" { "gid" "D7C92ABE196AB33CDA0334FADE2B4215" "size" "61081B338590273C8D5D0FF6F5B8F193" "download" "73B1C79E70D84A00C3C549450BA4014B" } "domesticated_submission_2" { "gid" "2A5A8DF85B590F96FA6C67121F4B46DC" "size" "7284C6C50D78FF11E4C81EA9E0B8BAA5" "download" "34D7DC068C7D173CAE70604D7233828A" } "domesticated_windows_sync" { "gid" "25FB1BAD0497300E6488CC0747A5EDE7" "size" "BB0047B85185F1C446427C5834E7C9B7" "download" "B05319C0E65DDC0F65094447B7926F1A" } "kassius" { "gid" "E10576FAF9DDD54A10D5CECBD8125967" "size" "F2C570CD9C79B4584E40A1404BBF1964" "download" "A6B2995189FE1B8753E55CB0C7C54B9D" } "launcher_test_1" { "gid" "98F2F60AA223870E654C8871045AA9F8" "size" "90B1556CF68016036EABE346E9076B45" "download" "79F2F4B899CD7C679DE4D76D1A1D3FA4" } "mac_1.0" { "gid" "57EFBAA602E076CAB7049DACB805A150" "size" "884184F0BC5CAD2FF589DF64862F2F4D" "download" "A0570A1459E02176C49E6CF2B99CD1A0" } "mac_1.2" { "gid" "8B006381F39F58D9E8CB9298C56D7C1E" "size" "B61940A6A16EA882AF1753A37BE47649" "download" "E36795F29C496DEE6C275CA00D26F62C" } "mac_1.3rc11" { "gid" "2CE89D0C9943BB8D434F4E7C6A9149D1" "size" "64BC9EE6830FE74A6B2089F10F93ED52" "download" "6DFD8C30FD08F908D1E1F84BD42316CA" } "mac_1.3rc12" { "gid" "A3B736C76D35FAE9366D0F47F92B7DDF" "size" "6D370826CA39295AD38DA082F276B6DD" "download" "3BABF447344509DBAEF71D60F799A8DA" } "mac_external_beta" { "gid" "CEF8D9FFC6F5BD051549A88B7C2FF7BD" "size" "00D721AC294D0BF3C32D5F43A845B32A" "download" "0D2F76C66AB849D3DACF4F385343EADB" } "platform_merge_branch" { "gid" "45AF1C267F153BFF1A351A143BB382FC" "size" "46C04FAB241B4648870F7B9ECEFA6A81" "download" "7D43A641AEA3D623BB4E2B682606DA4D" } } } "203722" { "config" { "language" "japanese" "oslist" "macos" } "manifests" { "public" { "gid" "1317818465072882453" "size" "510680166" "download" "17762177424" } "linux-pre-2022-update" { "gid" "1317818465072882453" "size" "510680166" "download" "17762177424" } "linux_21.10_fix" { "gid" "1317818465072882453" "size" "510680166" "download" "17762177424" } "mac_retail_1.4" { "gid" "1317818465072882453" "size" "510680166" "download" "17762177424" } } "encryptedmanifests" { "carousel" { "gid" "3918B8227A72046B656DAE51E53FC9AC" "size" "329B043770907CF0B91191ED9E7C42A2" "download" "2D68C590A4A84E5F14C213EC1890CDF7" } "domesticated_internal" { "gid" "4FDF7C48ABBF411B33B0E1E0A675C0A7" "size" "68ABDC52CF96EA59C0B700A5E087AF42" "download" "08B55BBF391E412614BCC7C5D49A8B63" } "domesticated_merge" { "gid" "FB4E8838B9EE331B73088C19BCC03CA4" "size" "CD35C3DDE1FA28C883461385CF8C1DBF" "download" "18E938DA615B71F3BBF4D525CBEBD6D2" } "domesticated_privatebeta" { "gid" "56FAE7EB3F0B4A400A3B66A0AC6BEC31" "size" "F5D82F2A6772897CA8652CE1755CBA64" "download" "6E7D7478340F6B68C2E814F5A1842275" } "domesticated_qa_branch_a" { "gid" "7741A0AA95197EE37ADB8E50B8500DEC" "size" "87067E7ECFD8BBD7255E55EED29CEE32" "download" "AFF3ADBA66924E3B0B6D7A2FC421FF05" } "domesticated_qa_branch_b" { "gid" "7D9DBA78A20FFC364A232ABFD0EB757B" "size" "D3264CE90DB67952FACE8053CAB078C2" "download" "D63962450EC168564799594CDD8931E1" } "domesticated_submission" { "gid" "C248D04B5F089862B130D20F3E89962B" "size" "88D515A1B1B6DBE47C048EA47E23BF15" "download" "D8EEAD7E8327769E3A5304CD32A17FBE" } "domesticated_submission_2" { "gid" "18D2D944745B92698AE83309E72DF941" "size" "255A10A70D4F7843979D53A8C05E0643" "download" "C11FBE427B40E2EFB97A49E7E9420AA0" } "domesticated_windows_sync" { "gid" "99164ACD423CE8AD58D03BBF5BC2D0E4" "size" "65FC0CEDAE9061056AB5C10053C076C1" "download" "870B93AD6D6A5839C70D03B9CF1207C3" } "kassius" { "gid" "22F0D822B960F7FC431A02D7AB7FAB20" "size" "A934675B6011A08A255993ED8E44E463" "download" "612EF106635C15A83968AE302FA58A48" } "launcher_test_1" { "gid" "AE0253921333C876DE4E1758DBD79931" "size" "0C6EA8328EBEEDA890932CC206C0BE23" "download" "99D4AB7F26EE32848204557F635C43D4" } "mac_1.0" { "gid" "694DBDA54F064ED79D0E32B3987E41B6" "size" "D0A06A107FEB47BEE860781588F3C9EA" "download" "BA07F654ADFAEAD2477BDDDA4C048CE4" } "mac_1.2" { "gid" "B417E7E42C372E8A0AA9F58299868EF0" "size" "738D308C849BD0A72842E251E5DA2E48" "download" "3E26DA9E616E44F7D97B7F84BEC81114" } "mac_1.3rc11" { "gid" "AA6DFDA7AAAAB1C8026F17EAB37EE4F0" "size" "875C182905FD32541EA8974C392054FE" "download" "B16F571246665A6BEAEF8EAC4A8665FE" } "mac_1.3rc12" { "gid" "A4DD422257CAC01570E904F545AA3DC8" "size" "1F0EA99AEBFDD9CF5A486DB14C4A53B6" "download" "2B8020E6F25231E2334BC42004198398" } "mac_external_beta" { "gid" "994B4E314E45511A85DCD37F33F456E4" "size" "066579A6366D4DF7A6B6144D88356D51" "download" "88C11A8CD12C4BF31E818613889F1C1A" } "platform_merge_branch" { "gid" "EBFF1756243754C6E725CFBA8059B90B" "size" "350087B29D32AEB05AA9D5525CEE94ED" "download" "174A7E0382B8B46C681A4B33E2589EFE" } } } "203723" { "config" { "oslist" "linux" } "manifests" { "public" { "gid" "4675046982445241787" "size" "22372534593" "download" "13680311968" } "linux-pre-2022-update" { "gid" "4675046982445241787" "size" "22372534593" "download" "13680311968" } "linux_21.10_fix" { "gid" "4675046982445241787" "size" "22372534593" "download" "13680311968" } "mac_retail_1.4" { "gid" "4675046982445241787" "size" "22372534593" "download" "13680311968" } } "encryptedmanifests" { "domesticated_internal" { "gid" "36687BF4999E017E0ED5973997AC386D" "size" "9BFF0B2E07A6BD805CCF75E616A2B96C" "download" "06053F76EDAAB0701195BF1CED3B8DF4" } "domesticated_merge" { "gid" "DB558CED3B85FED5029F6364E69E64FC" "size" "4568D5D868BF4E1B381705F24E897412" "download" "5CCA313FFC6CBCA3882360A9528962F7" } "domesticated_privatebeta" { "gid" "0E4FA281F014887CBA7B3736BE5C83A7" "size" "AEF1EE050F6F2AB4D14B8048BADDE862" "download" "BFCB35F562F3C84F935779ECB1A30DF1" } "domesticated_qa_branch_a" { "gid" "C0476D9AF522246EBCCE0379538471D2" "size" "68E796E69C9B467E1528EE9C31005863" "download" "3A834159695F58043EFA38BA222A184C" } "domesticated_qa_branch_b" { "gid" "A651D0D158A9B32644061CC5D8428CD6" "size" "5396A3FF781F00642F8AF0C3B6A2EA1A" "download" "51DDC766A3DF1FBA4631183FDE4C0209" } "domesticated_submission" { "gid" "5EB511F9BD43EE912A6C0CD16CCBC14F" "size" "371C406C6BCB4EBE643DC4F7F5754637" "download" "4BD7D506CB0F35FE546A274C8A6C4E7D" } "domesticated_submission_2" { "gid" "C5FFEDDB600873D515370EA4B3F74BBA" "size" "BB0877CE6CF65FB53208E2673E908849" "download" "B3543986EB4EE814B58BB24EB16FF427" } "domesticated_windows_sync" { "gid" "2BDDADBE3C76AA6BC019617708EEE162" "size" "0091245147F0310B512FEB13230BEDAE" "download" "B95CE50AB35309FC7B141581975EF2C3" } "kassius" { "gid" "CBB04EA1A1C2EFCF70EA3C52BC18DCBF" "size" "4C1CFDC64EED3E6B6DFC2DF3442DF40B" "download" "2BFA4B95F8C8922A8ABD0A1E5924FBE5" } "launcher_test_1" { "gid" "50CA5707EFE8F1760FECB48DA5703DF5" "size" "9B3ABA191BCE94B0FC5B059ED8C71697" "download" "2A747EF6CD6182AC918002BCEA788B15" } "platform_merge_branch" { "gid" "3649A1271F20A28EE8AF4919268BD852" "size" "A8906CA6C287A35A778B1594A5A2DE90" "download" "8CD0196235EE7D5C342BFF43ED08E4D9" } } } "203724" { "config" { "oslist" "linux" } "manifests" { "public" { "gid" "930061958965971308" "size" "270773732" "download" "96017040" } "linux-pre-2022-update" { "gid" "930061958965971308" "size" "270773732" "download" "96017040" } "linux_21.10_fix" { "gid" "930061958965971308" "size" "270773732" "download" "96017040" } "mac_retail_1.4" { "gid" "930061958965971308" "size" "270773732" "download" "96017040" } } "encryptedmanifests" { "domesticated_internal" { "gid" "49F8471829D52D3DDB3D8C6B5CA76BEE" "size" "684D6CD50C6A851B60A40E1D1F6EDBB3" "download" "12F3DC8AEC9650A95EAEC26B0797A0A3" } "domesticated_merge" { "gid" "80E900D05CCD9CB4AB9AA9A09DAFE2BE" "size" "2E7FF22BFFFDE8D22F37E4E01E9E7934" "download" "BD98F98B773A09FDD30A02CA3C65422A" } "domesticated_privatebeta" { "gid" "14C4023076C8243C513C05590F24F21F" "size" "9EF8412539067A1D94FA921C0866E15E" "download" "23F7CB1B40625E168A069651E5DCC805" } "domesticated_qa_branch_a" { "gid" "EBF9AD50006A5D4D4FF6D7A74560CBC4" "size" "8F6E491E262E5854FBB5115549FED515" "download" "4A6FFBA4C97DF181C35C36D2514223A6" } "domesticated_qa_branch_b" { "gid" "4CCBA7B4FAC3186B17E842185DA1730B" "size" "0EC20B271A6E4E2A275A29C34395C788" "download" "A1BE752544471526F841B9CA45FDAD4C" } "domesticated_submission" { "gid" "26E3FBBDE9FBDBCCD32EE0CAE10FD131" "size" "306AAD638C1B1290BDE95592AB896AE1" "download" "FBE196667530F426529F1009B572447F" } "domesticated_submission_2" { "gid" "6F7C0870CD519B9460A2DFDF59A8B6C2" "size" "E5C3FC27F063FF7833B6A88F850E2C55" "download" "90E64F51B505AF2CCCD38FB20228FD73" } "domesticated_windows_sync" { "gid" "39C853E054EF465FFB6B55C58E008FED" "size" "79BF639F1C9C3CF894B7DE897C27213D" "download" "51FAA273B2F2756E487CE34E771C9608" } "kassius" { "gid" "DF9E210BD9D6959148573028F109E5C5" "size" "7B1E38147A2D17F7BE7854F26EF680C8" "download" "66994A0A306C8789F604AFF9DF999883" } "launcher_test_1" { "gid" "FD92A1D5D58DCE0DC9A7F6717565ECAD" "size" "2FC90DD6F0735D00D15FEF06E2B8DBA2" "download" "F8E6BC628AE58A05B9DF42AA23BCD061" } "platform_merge_branch" { "gid" "69D4203A1FF93A1B0D303F70489FAB48" "size" "A4BC07FC5F2A29F036DE73D9404BB6B9" "download" "AAB5F71F6028DECC8D0A6A9F2DF09341" } } } "203725" { "config" { "oslist" "linux" } "manifests" { } "encryptedmanifests" { "domesticated_qa_branch_a" { "gid" "CD5A4360ED34C794FB41BC204BB5F579" "size" "FDC06A119B5866214D3C1A39CABE82C3" "download" "494915B8AD0EE6353CC9C3F8E0758193" } "domesticated_qa_branch_b" { "gid" "0F24C420F5D61C77C7392A115756E5FB" "size" "371E03264B5BAE9EC31CAA7D2DA0DCDE" "download" "0B06640C629C1C0A4373E5987EFFF20C" } } } "203726" { "config" { "oslist" "linux" } "manifests" { "public" { "gid" "3089071817864978857" "size" "2551836275" "download" "1581893712" } "linux-pre-2022-update" { "gid" "3089071817864978857" "size" "2551836275" "download" "1581893712" } "linux_21.10_fix" { "gid" "3089071817864978857" "size" "2551836275" "download" "1581893712" } "mac_retail_1.4" { "gid" "3089071817864978857" "size" "2551836275" "download" "1581893712" } } "encryptedmanifests" { "domesticated_internal" { "gid" "644AFFFB4EB718497B6F0AA6B8372052" "size" "24B32C480A32A016D5F4FFCF5FF6EBBB" "download" "975064F57CAC92A18D4F9BE90CC6F543" } "domesticated_merge" { "gid" "F449FFF582CE253BCF9B8FA6314B9F71" "size" "9693E5F7D30A2536930E7BCD38077775" "download" "6D20758CBB13B3D3E8DAF1F3A7D45BAE" } "domesticated_privatebeta" { "gid" "10357FC4E63302AF48279197AF79AE9D" "size" "71919180897E50D788D8452F3D327AE6" "download" "D7BFC8E8D639C5806E3ED7C1159FC018" } "domesticated_qa_branch_a" { "gid" "9C9CC6531937A5F5F93FD5BCAE99113A" "size" "7D7AD6CFCF8C1FC6C61C442970750F9D" "download" "D575EACBB41FC43DB4A95E50D8A33CF5" } "domesticated_qa_branch_b" { "gid" "45CD0467CD072F916650643803E8004F" "size" "FC71CAB9E7ED7E30A12EC65D7B14A498" "download" "02EDBFF9C6F8737167BFE0556BB711AF" } "domesticated_submission" { "gid" "305B9B68CD1C14FB58220DA00E4282EB" "size" "84C3D7009A943966528B4E4BCE03956E" "download" "1C4B5C690585F7261FB6D78530167FAB" } "domesticated_submission_2" { "gid" "789853922DE5A59BE5015652B6ADA7B8" "size" "10BB6E1744256E0326533E65A7C24B9F" "download" "07A45F94C34E630AD0F90E1F69CB29C3" } "domesticated_windows_sync" { "gid" "3195E95C60BFF7BF8885A4D2043FE8F6" "size" "EB28FC3BB652DE9F1C6E105A6D8A3354" "download" "BA0D7F6DBFA9C3E71AEC523894DAD8F4" } "kassius" { "gid" "E05154B736CB119C8552D9CBAB7CC8FD" "size" "876CE0831AB42EFBDBD111B7993E9E16" "download" "B5675700F0C5F84E5A0AFED0E720E87C" } "launcher_test_1" { "gid" "2D4F8C5BC7EA44089163942BC19B342D" "size" "79339F80916C4E5C55D2EA1276B5827A" "download" "5DD1CCB940FCA0FAD211FFBEF60329A5" } "platform_merge_branch" { "gid" "8C0A4D4497D646C33AB7EAC66385F556" "size" "6724598838B5CAC5F178E84FD81ABE40" "download" "9BC0336EDA3A25915E72E599A9B90AFC" } } } "203727" { "config" { "language" "english" "oslist" "linux" } "manifests" { "public" { "gid" "306841927912146962" "size" "624350439" "download" "514523744" } "linux-pre-2022-update" { "gid" "306841927912146962" "size" "624350439" "download" "514523744" } "linux_21.10_fix" { "gid" "306841927912146962" "size" "624350439" "download" "514523744" } "mac_retail_1.4" { "gid" "306841927912146962" "size" "624350439" "download" "514523744" } } "encryptedmanifests" { "domesticated_internal" { "gid" "94E0FA8690D4969FDC4083AF9B69FA69" "size" "672318E06CE484F364C321D42C0ED711" "download" "D685362B8EAABB24AD58134C421F0EB3" } "domesticated_merge" { "gid" "4124021B1C60C30A9BAE58E4FA99774D" "size" "B70FAC668E4A217B69EC5FD4CC2ED32D" "download" "6E002CE418DC037B0450482D5DA61E7F" } "domesticated_privatebeta" { "gid" "099681D49D56B328BC2CE7086055E6D6" "size" "FD5D587C619B56C73074D0CD7129B801" "download" "E5699560A3BB7C097DA6AE791D75142D" } "domesticated_qa_branch_a" { "gid" "4CA9491F962E39E791AB64F3CB442FA8" "size" "7121FD07746EB2B5457E8971220B3791" "download" "9D1A37B74C0A2B267056A795FAA878C8" } "domesticated_qa_branch_b" { "gid" "92222E160EFF4812BFC1077007454314" "size" "0FD9FE4727EED898FF0DE37CDEA9E2E2" "download" "342377868A3566554A4D56FA5B2FBC5C" } "domesticated_submission" { "gid" "ABD10C46751B56DD1BA0851F912F0F98" "size" "E4C7E2E9AC92C9F8D1FCE0A32B5F09AC" "download" "9FE5C2B2F207B30BC67EAA7667654D7B" } "domesticated_submission_2" { "gid" "AA317198CFA7DE38B141C3B254FEE28C" "size" "F76E4F7971207984F586470653D27939" "download" "9CFB6CA9FC5288DF5645C590ACC24EEC" } "domesticated_windows_sync" { "gid" "276D815BBA4DCCDF4EDAEAB1FBCE0F53" "size" "C20178F056710FB2B6C08FDC53D45972" "download" "904F69B0E24C96B68F26A2528F9D50CE" } "kassius" { "gid" "10084436D34628E0ED1C80CF96EC3AEE" "size" "17D9EF301B093A6DC5A899CE2AC259FC" "download" "F35AA1497D82C5CA9272DB6F4642AA6D" } "launcher_test_1" { "gid" "AF39E19CE85E72DC9AC0B01D2ED6B2F7" "size" "8B416E754A8FDD8D3D70BF9270743A01" "download" "A0FC694CFCF237DCEF1FF148C40D7F32" } "platform_merge_branch" { "gid" "A28EAA9CA1690D9A2666329700E1B156" "size" "E84D95D9D2A6A4E08611A3AFD903C36D" "download" "0A8CDBEA70B330115C106CBA085BA094" } } } "203728" { "config" { "language" "czech" "oslist" "linux" } "manifests" { "public" { "gid" "3266502893584101" "size" "610271975" "download" "501310736" } "linux-pre-2022-update" { "gid" "3266502893584101" "size" "610271975" "download" "501310736" } "linux_21.10_fix" { "gid" "3266502893584101" "size" "610271975" "download" "501310736" } "mac_retail_1.4" { "gid" "3266502893584101" "size" "610271975" "download" "501310736" } } "encryptedmanifests" { "domesticated_internal" { "gid" "0B2E799F2DB213F9DA299F147657B23D" "size" "3877ABA920D7D448CDB7257EC37E7299" "download" "A9F66AC6F85FD0D63A0F01DD8DD986ED" } "domesticated_merge" { "gid" "C487B11EE89D3E842819E2B800CFF0AB" "size" "184E255FBF1958A29D4A3840842DDF8C" "download" "02D2963C6C22340F11FBB2B80294B78C" } "domesticated_privatebeta" { "gid" "EE35F0AF095AEA2F795597A83425B6C5" "size" "982ED07F3B5F5FF95C12413D1FB4C532" "download" "9349C247CD4A16AEE022E3B250E61C47" } "domesticated_qa_branch_a" { "gid" "600A7A8583A6B1E8EE548C4E9C69FF82" "size" "6C24FF579D3FE5BFFAACAE1E3E7F6D0B" "download" "F09373D1B3BCD0519778371D9C1182FB" } "domesticated_qa_branch_b" { "gid" "29BA16F1492B8D7BBE487ABD9B420186" "size" "AF7B8E5509DA31BE70BB8F3D9792FF76" "download" "6292D1189F8F96044F807B278C2F89A5" } "domesticated_submission" { "gid" "76E2DB00978A2222C1986E4607AEC823" "size" "52C419277CD772DC64F9D1493B1300CA" "download" "6661252B875F4D6512FDB0A57DBD834A" } "domesticated_submission_2" { "gid" "D75262E1615F209B6E7AB9B287DB4EAF" "size" "8BB1E2229243243770646C94441946CB" "download" "21C99EB85CC350623925B51B8A3F9278" } "domesticated_windows_sync" { "gid" "0E099F7ACDD32BE621C1CE52917BBFE4" "size" "3498B9DCCADC30CC947A51D49DAA441F" "download" "96180E133B7556F1629AF523AB625BBD" } "kassius" { "gid" "758EA1C903AFE1E273C03912C4070B8F" "size" "F8A24705B9C2B6B6A4919D69CAEF9EA0" "download" "ACE3485E8C522B0778CC450B566DE552" } "launcher_test_1" { "gid" "76BD1669681327F390FD4D17567FDC88" "size" "3AB979972D1B58028C03F0086F9AB9A9" "download" "1EE92ECB83C711E7B1D024BCC2CE9875" } "platform_merge_branch" { "gid" "98FF73D5D2F35A34B22FAA74EDE5554D" "size" "B677BC4B317143A74B3D62CB4296F845" "download" "3EC794C3D975AC2A05C4382A2CA83455" } } } "203729" { "config" { "language" "french" "oslist" "linux" } "manifests" { "public" { "gid" "1017658135622700246" "size" "574750263" "download" "468590528" } "linux-pre-2022-update" { "gid" "1017658135622700246" "size" "574750263" "download" "468590528" } "linux_21.10_fix" { "gid" "1017658135622700246" "size" "574750263" "download" "468590528" } "mac_retail_1.4" { "gid" "1017658135622700246" "size" "574750263" "download" "468590528" } } "encryptedmanifests" { "domesticated_internal" { "gid" "38E06B60F04E4373546E0F00A31C5534" "size" "E2F34C8433A1D9F2A727BFDE9EFA5ADA" "download" "1987B2115230F0A8FEEB7278FECEA382" } "domesticated_merge" { "gid" "D6903A7CA57268A0A07D64C617A0DDFE" "size" "72EFFAE3860436A5DD556FA6ABF96F8D" "download" "78F9D2E96B23CD873C694B47BA237F31" } "domesticated_privatebeta" { "gid" "1F67343A43D6312410B2272399897B66" "size" "C2ED68EF00BF47101E38C4F8B81B6A92" "download" "F8E92EFB31CC64C9171AC53AE2AE0F61" } "domesticated_qa_branch_a" { "gid" "3D395AD309AAE2957184208E963872D0" "size" "28689EB069FCEBCE52B7E9A56377463B" "download" "9E079FE2C9000AEA5FD0629ED7B8FE98" } "domesticated_qa_branch_b" { "gid" "4BC5732A84A307228F1884F86801B811" "size" "BEC63AF30CFE90E0C440B91D42A6E4BB" "download" "8EF08BA9D4C9E5388FB3099B5DDEA26C" } "domesticated_submission" { "gid" "18AD01EBAA35839A5BDB460BCC308E89" "size" "61B38DE7EE08073C950E39411F8C14B1" "download" "6CFEA6C7910C0B25E4E681C41B44C9A4" } "domesticated_submission_2" { "gid" "6EC03233FAFBAED475E8AB14A8025AE4" "size" "8A6E69E7BF8EE4CE45BC7682E07B6300" "download" "426748E7A7F18BBCBF2379FA3B4BF225" } "domesticated_windows_sync" { "gid" "7CB74AF280160562886B1197A939FD20" "size" "B2C608995068F9964C572D65C2E91A65" "download" "78A722E2EB982194EE84C7CB6588FE8C" } "kassius" { "gid" "F922178DB2BD69C5192A4128065F04E8" "size" "06DCC474607B06DB6D068169CE4CAA22" "download" "2142B69FE1CA7D5A30F50F59D0107504" } "launcher_test_1" { "gid" "F9586BF4385930165AC82979EAF7BFAC" "size" "404498543DE1F50B5382388C7100B89F" "download" "24B304CAF613F192F13D85549D489784" } "platform_merge_branch" { "gid" "B08D7653A820C0278A3BCC45377AF44C" "size" "051BE836EDE7CB1CD4C49D25C9611780" "download" "1E2FBDA6015EE2C449D8AF37B958853C" } } } "223182" { "config" { "language" "german" "oslist" "linux" } "manifests" { "public" { "gid" "496316355454709144" "size" "573096863" "download" "476663072" } "linux-pre-2022-update" { "gid" "496316355454709144" "size" "573096863" "download" "476663072" } "linux_21.10_fix" { "gid" "496316355454709144" "size" "573096863" "download" "476663072" } "mac_retail_1.4" { "gid" "496316355454709144" "size" "573096863" "download" "476663072" } } "encryptedmanifests" { "domesticated_internal" { "gid" "4D8D0D5B87A93D46CA4F63520E05DF22" "size" "B016603E364FD29648F0927A88956E55" "download" "D871158D09B60C91529D56494287DF50" } "domesticated_merge" { "gid" "6096C9CD22F306D7D71EAAC42A10D806" "size" "78E3D98A23D1FB4BB6DC2FDFB7201E5B" "download" "48855DAF98073A68FDA41C3299B42D9C" } "domesticated_privatebeta" { "gid" "6C8958A03F013708C2880DCD7C878828" "size" "956BABF72A1E3DB4FE5B352033750D0B" "download" "E009476496E0CCAEB60E9D9C0586AE73" } "domesticated_qa_branch_a" { "gid" "1BE612FA7532B88E8EAF54D1961F1344" "size" "9867E69B24C803BDDC3CD4BC3CF7FC34" "download" "CF3CEDBD9F5EE4EDABF01BD1C2784190" } "domesticated_qa_branch_b" { "gid" "276219A582DB83421611DC884DB44375" "size" "1E781D40E452EA6ECA4F8393725902A5" "download" "D80D9BF83D3B2D00A193DCAE299FB569" } "domesticated_submission" { "gid" "5303A0A70A4C27B53E97FE2B66C9CA95" "size" "A29F2A30F50C895BE9A1D93EB60B9B86" "download" "4EE40BA880973C0EC96220CEEA97E905" } "domesticated_submission_2" { "gid" "86B65C93C605E7C423DCE863494F5501" "size" "1F105C3AEB15D400DE7D3B8245ED6887" "download" "7D69902D565F3934022F228D9E31025D" } "domesticated_windows_sync" { "gid" "FC4F0FAACEB76FE92F8809B68BC0F04A" "size" "278E4EFE3740282185D37A1550FD07D8" "download" "BEE6DDC1539D697D313ED5212970E9F2" } "kassius" { "gid" "0B10DFBCA92A3E3F6C3311B8BB52197A" "size" "3624AC6B6CA4E97CF54A5EEAEF3505CD" "download" "CB1E602BC8411A1DA7D569638327F855" } "launcher_test_1" { "gid" "04B40EC71BBFF4EBFAF705DCFF96C2F9" "size" "61EAE8FE23F17C69C60DA7FE98F0C862" "download" "97508935DE60B25F2EA87B453F154405" } "platform_merge_branch" { "gid" "7CD810C988D4969CD6214F1D5CC2A3CB" "size" "BD50D36D445F4F5C91B64906FE3CDCA3" "download" "DB9CDA027964E3C03EC58E48F24E67DE" } } } "223184" { "config" { "language" "italian" "oslist" "linux" } "manifests" { "public" { "gid" "682921555830121021" "size" "611445229" "download" "523809216" } "linux-pre-2022-update" { "gid" "682921555830121021" "size" "611445229" "download" "523809216" } "linux_21.10_fix" { "gid" "682921555830121021" "size" "611445229" "download" "523809216" } "mac_retail_1.4" { "gid" "682921555830121021" "size" "611445229" "download" "523809216" } } "encryptedmanifests" { "domesticated_internal" { "gid" "30CA1A339D431DD60BC76CFE7B2A36B5" "size" "0FBC053A57C4CB6BF21E0A933E85B8D1" "download" "BA89E91D63CB20E9A4D7FEB54E5AF3E5" } "domesticated_merge" { "gid" "615A17FCEB7D28E88A78F62203B08E93" "size" "0C42424D6738282A8403A44CD90E3263" "download" "E7C71ECF4042D5473E9649DF30F248B2" } "domesticated_privatebeta" { "gid" "E40FA7CC29BFBBD02F71BBF6175DB3EA" "size" "96CEF6603D51E530D37D964D349A89E8" "download" "E6929DFBC776249A71297637B5AA9D42" } "domesticated_qa_branch_a" { "gid" "3DE284DB8505FEC2498F71C2BC2D2229" "size" "C6D61C0C572EA27611DF7400E9B136A5" "download" "034B6394BD21EC4754BE2026A8701FDD" } "domesticated_qa_branch_b" { "gid" "935F3DBD9005E0E2015F76F0ADE8B5E0" "size" "3C5CF7D3A45E092693D1E0363EDC1AD3" "download" "2DE2F9C370629544B4A8F24084487FD2" } "domesticated_submission" { "gid" "09907E51903E1AF0BFD38B48F5BF705A" "size" "A9FCD15175964DAD40BAA2E66CF5912B" "download" "6C758A1C700E6F80DE0B1EFD48C5EC95" } "domesticated_submission_2" { "gid" "F43944D0FAC204DF584CBE9E35933F7D" "size" "C734B842AD8C1AEFA64A52093A618B3B" "download" "86EC4339D0333FBDE9D3FB357C26E04E" } "domesticated_windows_sync" { "gid" "B508734EA4CC621F2AF3526A5C7C6DC9" "size" "A813F064A4F442265EC632E7B7C70649" "download" "02D875C8B9CECCD06D7EC07FB954EBCF" } "kassius" { "gid" "40DDD69F970C27FDE0FE9DEABFE0B4D2" "size" "9B7251AF27AD70498ED5076BE05F8AF6" "download" "D5BE64A61F2A9F182C960F414BEAA765" } "launcher_test_1" { "gid" "FB69EFFFB429C3CAC2A4C962E3AB96CF" "size" "179866E790D5F7CD6E7596F432163661" "download" "BDF8E76331E174A18D36472E3613049C" } "platform_merge_branch" { "gid" "FB861F56F62212ABE0E6AADB6B1D9002" "size" "531D1991D17683929DEDEB1C7699D3A7" "download" "B769ADE4D5BF2B92843AFA99A7BABB42" } } } "223185" { "config" { "language" "polish" "oslist" "linux" } "manifests" { "public" { "gid" "1109516620999867060" "size" "610263176" "download" "501240688" } "linux-pre-2022-update" { "gid" "1109516620999867060" "size" "610263176" "download" "501240688" } "linux_21.10_fix" { "gid" "1109516620999867060" "size" "610263176" "download" "501240688" } "mac_retail_1.4" { "gid" "1109516620999867060" "size" "610263176" "download" "501240688" } } "encryptedmanifests" { "domesticated_internal" { "gid" "00D061904355EF6B695EB804B5C35654" "size" "D12A962AE28B607CD0C0DFD104AFF22C" "download" "7AA32880AEFCE9677B0DA6F8C0F3734F" } "domesticated_merge" { "gid" "5CFAEDC350C1B7FBDD9B9E44727BB6DD" "size" "87DA300FF7E3D0B842168D4AA9AF327C" "download" "EF0E427A7584F616C50C083147F8AC47" } "domesticated_privatebeta" { "gid" "5B035C5CC177182ADA92C38F090EA781" "size" "807B6CF4ED4988CE8648B9789D75768A" "download" "CDD586FEBA7FEDCF4B1B818D698F4BF5" } "domesticated_qa_branch_a" { "gid" "9AF47B330567AF22325E10A22AB63E64" "size" "B8026B75D5A85139B632ECEFB5ED06F3" "download" "EA5F1C96090389A8EF53C8700FEEC480" } "domesticated_qa_branch_b" { "gid" "2B55083E629F42F0033B9C39081F584D" "size" "C2F9703D29A331B7E641D09C19C93F13" "download" "E180A1C599C0FACC03E88BBBC28C33E0" } "domesticated_submission" { "gid" "EA90726CCE4A9468329B3B33E3BD7230" "size" "452650C5DD43077D72795675E6297094" "download" "116F5148DF8DD599517FB8FC0FA47E70" } "domesticated_submission_2" { "gid" "4E964A1298B2CA047F7D2E48FC876D2A" "size" "20DC741CF038EAB28B9CDEF1B85EFBEB" "download" "40191A59E94EE2ECF09C95A6A1CDAE77" } "domesticated_windows_sync" { "gid" "4C32344FC9EA024E203BFEFD771400ED" "size" "00548A22FFBC4E6898E3EDD02C3403BF" "download" "817C64257CCD90F36F2A91025C54B659" } "kassius" { "gid" "A5670D5EFD25E5A0CC3F1F1950690E1F" "size" "1B1160C8F880FD4603020BE3FF360937" "download" "AF86646A3D9BE257E873DF8AEEAB270C" } "launcher_test_1" { "gid" "DCCD957996CEBE014BF96F58EA99E9C0" "size" "10450CB53AB99970F091B35E63747A54" "download" "7CFBC20D9567DE461F74F43045096839" } "platform_merge_branch" { "gid" "3F968C6FAC5BA72A3991F392C179201D" "size" "60B2E95084B0D1B75A71E00612BB8B59" "download" "0261149D42FC7DE8256B3C357B42D378" } } } "223186" { "config" { "language" "russian" "oslist" "linux" } "manifests" { "public" { "gid" "635506733625013845" "size" "582044679" "download" "510629744" } "linux-pre-2022-update" { "gid" "635506733625013845" "size" "582044679" "download" "510629744" } "linux_21.10_fix" { "gid" "635506733625013845" "size" "582044679" "download" "510629744" } "mac_retail_1.4" { "gid" "635506733625013845" "size" "582044679" "download" "510629744" } } "encryptedmanifests" { "domesticated_internal" { "gid" "8BDFA7E6BFA7C46381C6B3B0838618F8" "size" "658D4A4C8544B9C3EE77DC55CEE343B1" "download" "C0BB9C86C0C4F80D6D84FA17C8B69E64" } "domesticated_merge" { "gid" "4228ABEA012173B1427C03694986B86C" "size" "56A6C2A51CDD4625EAC6E50653B0A07C" "download" "6C6E2E810E8DC6AB6BC56BA25F50239C" } "domesticated_privatebeta" { "gid" "E45F9062F218563C349B8B44DBA483B3" "size" "3A376389FFA6CD4EB7B16BAACBB5C1CD" "download" "A58C74CFCC1BFBE1A9F95E387964ECF7" } "domesticated_qa_branch_a" { "gid" "462F6382858E7DF20B5FCDDC64ACEADF" "size" "147CD9483EC19B063FBB0A31ECF836B4" "download" "A850DE0F2696680FDD48EF485C0B8062" } "domesticated_qa_branch_b" { "gid" "1FE32AC50341FB28D9AACB32FD663CB7" "size" "A5C1CBC9D568AF462F6C7904061DED80" "download" "AF0254C508AA5CB44600B5BA2122297B" } "domesticated_submission" { "gid" "6E7728A50E97990490B40CF596EA0297" "size" "7FA25227E1EF13F76F2821218E131D45" "download" "39D8F0F5BB7D81AC5A7347772F994E91" } "domesticated_submission_2" { "gid" "A748FC59EF9A6BE964323FB106856A2F" "size" "1908FCC6EA448BFF729E7EA293980821" "download" "C7DB8903F19CCACC6D652B8E3A844655" } "domesticated_windows_sync" { "gid" "FDA856977384767495E8D3FC773FBC62" "size" "5AE361EF7F26B85A73E82536AC70B28B" "download" "F9DF768F6A42A56FAFABE5B6CEC052D2" } "kassius" { "gid" "6515E8927C611F50CDD471CFA23B6F46" "size" "99C6E01ADEB38C9093AE2D7E61F96462" "download" "F9AEBDA42ADD4070B443B89EB6DFEA47" } "launcher_test_1" { "gid" "B672588F1B8E45E15FCE397DC2D5455E" "size" "AEABAB0B3178ED17DA925E2E3D564D28" "download" "09053628B265BC971C72E118D87C2339" } "platform_merge_branch" { "gid" "CE180E91B53ABF1574BF7E18AE081CB1" "size" "85E071E87AB77EAB72E6025D58A4558D" "download" "7B4A20BB3FE020F959637C1D837E5CE7" } } } "223187" { "config" { "language" "spanish" "oslist" "linux" } "manifests" { "public" { "gid" "66859539443567871" "size" "586166194" "download" "474294224" } "linux-pre-2022-update" { "gid" "66859539443567871" "size" "586166194" "download" "474294224" } "linux_21.10_fix" { "gid" "66859539443567871" "size" "586166194" "download" "474294224" } "mac_retail_1.4" { "gid" "66859539443567871" "size" "586166194" "download" "474294224" } } "encryptedmanifests" { "domesticated_internal" { "gid" "E61266133A46A1FF15ADDC6C68674AB8" "size" "9F237CD1EE945EB6682A1C9A52710E4E" "download" "16157A2B2F86897821A220E6D34BC027" } "domesticated_merge" { "gid" "9479327936F64669D9025397988E6A3C" "size" "C79754B1455853BA967F7124CC2AE2E5" "download" "89ABFE5052CCFCBB0CC2C6E7C685874C" } "domesticated_privatebeta" { "gid" "FFBAD3A536BE11496653A38C67FC72EB" "size" "F6A98318F0D63B7171CA881603594DAD" "download" "75AD7E2C9D9718D2839072FDBE998311" } "domesticated_qa_branch_a" { "gid" "FA1430D073283698BE47336051C2BBFC" "size" "005943B5CAC555E4BC1906D4CC93EFBA" "download" "780FFE6C52334EF967E10A24C95BA53A" } "domesticated_qa_branch_b" { "gid" "7D08ADFB951C359BAB4BF76DA2BA4EBB" "size" "55D07FAA48E41D39AABE5EE85CAA1BCC" "download" "9A243C4208C231B7C0C3A25FF317E1F4" } "domesticated_submission" { "gid" "1F31D3E5DFCFD0029A0CEFFA16619CE4" "size" "61081B338590273C8D5D0FF6F5B8F193" "download" "4DC0A3C3395985E16E3C228854A6125F" } "domesticated_submission_2" { "gid" "83DA34F64F200DFD53A209A414FA3604" "size" "7284C6C50D78FF11E4C81EA9E0B8BAA5" "download" "6615448D5929411C2CD02C62ED3ACC24" } "domesticated_windows_sync" { "gid" "4190375E008D9975483EB3FD5419C9EA" "size" "BB0047B85185F1C446427C5834E7C9B7" "download" "B14BC556CD173E65A16CF3AFA8697297" } "kassius" { "gid" "E439677E4397EDF941C70BDC5EAB8C94" "size" "5D9920A372DCF9F523C36D94D89815B7" "download" "2303598DC9BF308D0657FDC76886D853" } "launcher_test_1" { "gid" "93106355DCC36D964D1C89B9094BAF61" "size" "3712753F4566300746BB682D058AB6EB" "download" "B78F31F3B5E9379A88560D48DA7CB1D0" } "platform_merge_branch" { "gid" "B7C62A51A668EE83CE1763409AC13381" "size" "269E20033E61D761A7BAD7C49E4694F3" "download" "4A8AC4D498394946D9CCC0C75E6F60BD" } } } "223188" { "config" { "language" "japanese" "oslist" "linux" } "manifests" { "public" { "gid" "3594582976460501426" "size" "0" "download" "0" } "linux-pre-2022-update" { "gid" "3594582976460501426" "size" "0" "download" "0" } "linux_21.10_fix" { "gid" "3594582976460501426" "size" "0" "download" "0" } "mac_retail_1.4" { "gid" "3594582976460501426" "size" "0" "download" "0" } } "encryptedmanifests" { "domesticated_internal" { "gid" "61FA4AB5548B027ECFE304640924AD87" "size" "13FD609CE6BB6F9E48765B2C0DB37911" "download" "13FD609CE6BB6F9E48765B2C0DB37911" } "domesticated_merge" { "gid" "9E55951341B9911AB8B7C188E4E8B9D4" "size" "6CAA4D3AFAE6739030643B458E09C0E4" "download" "6CAA4D3AFAE6739030643B458E09C0E4" } "domesticated_privatebeta" { "gid" "259265A04976E4CEACF7AAAA9757F79A" "size" "EDEECC84B8CCD08B50F65E3734ED7F15" "download" "EDEECC84B8CCD08B50F65E3734ED7F15" } "domesticated_qa_branch_a" { "gid" "AB167DA3DFE800C3D08908BDF739CC4E" "size" "E063771EF8C7914E8E7A4969094F7ACD" "download" "E063771EF8C7914E8E7A4969094F7ACD" } "domesticated_qa_branch_b" { "gid" "5E0699EA5F3357297FED8EF19AEE20DE" "size" "D6ACEE56D0CF60A7606340F6B3C299B5" "download" "D6ACEE56D0CF60A7606340F6B3C299B5" } "domesticated_submission" { "gid" "59A478B6886DFAFC22C9BC0B8899AE9F" "size" "93B0A526D9F7FAC7B10986D6354BF56F" "download" "93B0A526D9F7FAC7B10986D6354BF56F" } "domesticated_submission_2" { "gid" "F20B68F28AD0AB5A016179E4704E2C97" "size" "64E9CC5E020A2772E4DA858E45BD70F2" "download" "64E9CC5E020A2772E4DA858E45BD70F2" } "domesticated_windows_sync" { "gid" "1EAFDF1215D5C97E20A6D3E978AA851A" "size" "1FC5A728E473D5A492FAC7E81AC78CEF" "download" "1FC5A728E473D5A492FAC7E81AC78CEF" } "kassius" { "gid" "0A9AEEE26CF30D103BA9636A3CEFDBA1" "size" "98037B7195F460623A9DBE07C7C0C670" "download" "98037B7195F460623A9DBE07C7C0C670" } "launcher_test_1" { "gid" "6525382D76B789EEC334556F36FAB308" "size" "46CC15CA26FCB4370B3968E46E15591E" "download" "46CC15CA26FCB4370B3968E46E15591E" } "platform_merge_branch" { "gid" "CB6A370A8F98FE0AC2789DB63D4CDE67" "size" "36DA32FEB8206B12BFC2B4C4CC2E85A7" "download" "36DA32FEB8206B12BFC2B4C4CC2E85A7" } } } "223183" { "config" { "oslist" "linux" } "manifests" { "public" { "gid" "7739883907705681489" "size" "22734" "download" "5744" } "linux_21.10_fix" { "gid" "7739883907705681489" "size" "22734" "download" "5744" } "mac_retail_1.4" { "gid" "7739883907705681489" "size" "22734" "download" "5744" } } "encryptedmanifests" { "domesticated_merge" { "gid" "E0751960BE72A8898BA7230794786EFA" "size" "26AF6702E9BCD85CE2C0CEDF40A71831" "download" "CFB3BFEC8DE7FF3B9EBED0339E4F56B9" } "kassius" { "gid" "C180F4731A5FA637FF5AF5B123C70A8A" "size" "318C08188E82ED138E1113A7A94A3ACE" "download" "099BC04A08F11B18EAE41955AC92CAAB" } "launcher_test_1" { "gid" "DD289AECD3CA98A43A33710C17F47D44" "size" "BC57A308EE102487473A90B7ABF8FC08" "download" "57D7450727D01739766872971B2D7F34" } } } "372531" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "5926732820581946169" "size" "205270382" "download" "57385008" } } "encryptedmanifests" { "assembly_kit_test" { "gid" "0D5D9A0CF79301FE6DCEB24AEC4BB7E8" "size" "A5913247B538D82DDE95FDC378709A84" "download" "D53BFF25821243A373B9FFD0F57DF72E" } "bayberry" { "gid" "FC5B8B817E5193177537FEF5D084620A" "size" "24A660E29F3C4FED6E4971320D3161EC" "download" "8CD986B40F0D106197172BB7635B050E" } "beach" { "gid" "3DFCA7067DAB5016A914E3E99F09E259" "size" "98C3C74DB2755A1FB7C0088609365400" "download" "D1B1BED0E72CD4F53133A38D85C780CD" } "blackbird" { "gid" "2566C07708C361BFE780065DCACDFC75" "size" "F25C795D3E2F335636C8F9FD6589CF3C" "download" "871B3A015222D0815B51851630C452C4" } "cakes" { "gid" "4E7CC37A7186FEFA996F6456ED63D703" "size" "5F6B176F6A62298F2014F51683772936" "download" "A9D48CD2D2CC59903F013362AF6739AB" } "charlie" { "gid" "B83B47FB3D15EE9D89B1AA7E8DAF4A4C" "size" "78D84CC4DFCDB6C9DE085051655AA86B" "download" "BB5419CC6237C43F0422A99B8CF66FC4" } "cw_nightly" { "gid" "B7F26F3B4DEA7C9B1D619C8C8EFBE47F" "size" "AA253D8C52A4D0C3E8D55884E3E96F21" "download" "B84961BC01D7017635390EBF5D52E7A7" } "cw_release" { "gid" "4763DB7950C04200BCB8CDF1E6472B10" "size" "E1023512508DBAE15E6005DA78BE0312" "download" "E08639C99D4C1BF977B046BF972FF7EC" } "dev_nightly" { "gid" "6215E4A78DB0DBE35516293A5F960497" "size" "598C57A2696EA8453D440DC62884CBFD" "download" "39DA6ED52582D69D1E220C94DCF79E8D" } "domesticated_sync_current" { "gid" "A13AC1A8CA1417F4F0808813A6DC1993" "size" "4FE94852A1D7EEF6C97C17D0FB1AF2D2" "download" "55840C42CC238584D3B8B5F150D3DCC1" } "gamesworkshop" { "gid" "DC69CD1C4BD6BEBB24DC0D158D938B1A" "size" "11202F71D6BDA82EA1EBFDB638FCDCB0" "download" "342E4D916F35B200C816A21A57E39A60" } "gojiberry" { "gid" "DB520BA486F08DF14E10E8AA6CC58F6A" "size" "CCB018D1DEB0F44F171190463CEADFE9" "download" "FBCAFCC1D6BE286684178CB721C284CF" } "guru" { "gid" "E0A320BAC03E27D54347B5D5275A50EB" "size" "764E02DBA24F90C753EBB1038A4C19DB" "download" "22C95C1B20E68A64820A267B60091EAF" } "launcher_review" { "gid" "A98652AE04C25E1B5CECA5186B81CED9" "size" "EC202D799477509FFB928A1DE9E3F72B" "download" "7FC9F41E487B2E23308331330B78E63B" } "launcher_test_1" { "gid" "00A744168ADA062CD8541B7D2E20D1B8" "size" "C89E4E4A170D262AFFFF7BF954AFB958" "download" "530D94F77724DE26AC98772700F20F5B" } "launcher_test_2" { "gid" "DF267DD529BA6B05E9D37A147FFC5E3E" "size" "87C4E4DD02E2878D17C0F08FF8D8FB80" "download" "856D4960E75015AA43F85C3273B012AE" } "launcher_testbeta" { "gid" "C9118CB39A7803C43EAB6AEBE06A9F09" "size" "ED5C1FC72EE9D08404D4D4697E472450" "download" "C74E4AEF88B75EAC6E0096C964D5F0AE" } "launcher_v1" { "gid" "6A82AB5CDA6E82E45225161272504585" "size" "3DBC88A626F803C393711C43C763D821" "download" "8B83E379FAD4E0C6613DF0657E6E422B" } "launcher_v3" { "gid" "4FA59D5646FC6D512FD8B6CBDD91D07E" "size" "96DF6BE6169BB03EC01BA623EBBA50AD" "download" "5E8E74DF94C4A28F4F55BEFB50FAF271" } "mp_test" { "gid" "89E6FC45828CEBFF6845C3D47242AB60" "size" "DB27174E94733DAEB1365100E210B7F2" "download" "45FEE38C2B8EFF5A29CB5FA781E866EE" } "nightly" { "gid" "8671530DE2590317B20522E3B0896C20" "size" "66FBFD8C7093F959E85D6CF73C31F9AF" "download" "42565B2736161CE1330C34033443626B" } "nightly_rc" { "gid" "8A5787751CA9B862137CD6E31730E534" "size" "560F0139021A00EB0C6DD8872290E912" "download" "B4A61DAA959D314ED4C846389212AC51" } "qa_test" { "gid" "CF395BF432E22167B981E687FF470520" "size" "6DD4BAE3BC6E825605B7DE412C4249A8" "download" "57099DB32DE10E65F48EAD26B640DEB4" } "release_candidate" { "gid" "749A08A6921AC8DAA98B649E1791DE9A" "size" "C03BF299FE92B34BB5A98A73DE98BFD1" "download" "C1A09A13B605BDEC8DD68CD50C3B12CC" } "review" { "gid" "4365B919801D5638370E787134B79F9A" "size" "2A10E4CF2C877E117444D74962E4C306" "download" "350F4ADB0F94ACE3D1F34C34E9496986" } "sparrow2" { "gid" "262D06705C1DC191DD32FE3550F82E92" "size" "645A28FF3D1FF604CA13FAE97C99932F" "download" "A27DBCC7FD4F886018EB83FBA88CCD12" } "update_beta" { "gid" "A222532E583B99831B72442327F11FBF" "size" "C66C074344B0094510C7330120B0039D" "download" "E6176C96A800731E56109E631E3FA014" } "vets" { "gid" "94B2349EF4409E4D543345E620DCFB82" "size" "E3E28B7DA7455FA780FB797DC4895165" "download" "708858C3E7C020DBF68211343C07E170" } } "depotfromapp" "372530" } "branches" { "public" { "buildid" "11306771" "timeupdated" "1684933286" } "carousel" { "buildid" "659908" "pwdrequired" "1" "timeupdated" "1467102059" } "domesticated_internal" { "buildid" "1867717" "pwdrequired" "1" "timeupdated" "1496665058" } "domesticated_merge" { "buildid" "8001969" "pwdrequired" "1" "timeupdated" "1641906223" } "domesticated_privatebeta" { "buildid" "1802203" "pwdrequired" "1" "timeupdated" "1493982686" } "domesticated_qa_branch_a" { "buildid" "12472978" "pwdrequired" "1" "timeupdated" "1697639095" } "domesticated_qa_branch_b" { "buildid" "6228215" "pwdrequired" "1" "timeupdated" "1613094576" } "domesticated_submission" { "buildid" "1801997" "pwdrequired" "1" "timeupdated" "1493977225" } "domesticated_submission_2" { "buildid" "1812051" "pwdrequired" "1" "timeupdated" "1494416225" } "domesticated_windows_sync" { "buildid" "4132842" "pwdrequired" "1" "timeupdated" "1566560750" } "kassius" { "buildid" "12556968" "pwdrequired" "1" "timeupdated" "1698434954" } "launcher_test_1" { "buildid" "11306771" "pwdrequired" "1" "timeupdated" "1688381954" } "linux-pre-2022-update" { "buildid" "11589524" "description" "." "timeupdated" "1688051215" } "linux_21.10_fix" { "buildid" "11589541" "description" "Linux Only Update" "timeupdated" "1688051321" } "mac_1.0" { "buildid" "474270" "pwdrequired" "1" } "mac_1.2" { "buildid" "469691" "pwdrequired" "1" } "mac_1.3rc11" { "buildid" "656150" "pwdrequired" "1" } "mac_1.3rc12" { "buildid" "657542" "pwdrequired" "1" } "mac_external_beta" { "buildid" "330790" "pwdrequired" "1" } "mac_retail_1.4" { "buildid" "11945472" "description" "MacOS 10.9.5 to 10.14.5 ONLY" "timeupdated" "1692101176" } "platform_merge_branch" { "buildid" "6360139" "pwdrequired" "1" "timeupdated" "1615392697" } "release_candidate" { "buildid" "57470" "pwdrequired" "1" } "assembly_kit_test" { "buildid" "3908468" "pwdrequired" "1" "timeupdated" "1560527630" } "bayberry" { "buildid" "3961216" "pwdrequired" "1" "timeupdated" "1561652788" } "beach" { "buildid" "8440040" "pwdrequired" "1" "timeupdated" "1649167235" } "blackbird" { "buildid" "3698646" "pwdrequired" "1" "timeupdated" "1554902365" } "cakes" { "buildid" "3276571" "pwdrequired" "1" "timeupdated" "1541495881" } "charlie" { "buildid" "4721807" "pwdrequired" "1" "timeupdated" "1607609795" } "cw_nightly" { "buildid" "8763439" "pwdrequired" "1" "timeupdated" "1655289641" } "cw_release" { "buildid" "8440040" "pwdrequired" "1" "timeupdated" "1649167351" } "dev_nightly" { "buildid" "8440040" "pwdrequired" "1" "timeupdated" "1649167415" } "domesticated_sync_current" { "buildid" "8440040" "pwdrequired" "1" "timeupdated" "1649167427" } "gamesworkshop" { "buildid" "6600566" "pwdrequired" "1" "timeupdated" "1624872155" } "gojiberry" { "buildid" "3327963" "pwdrequired" "1" "timeupdated" "1548165405" } "guru" { "buildid" "3200064" "pwdrequired" "1" "timeupdated" "1539264914" } "launcher_review" { "buildid" "3310090" "pwdrequired" "1" "timeupdated" "1542637668" } "launcher_test_2" { "buildid" "12425482" "pwdrequired" "1" "timeupdated" "1697125120" } "launcher_testbeta" { "buildid" "3938669" "pwdrequired" "1" "timeupdated" "1561049230" } "launcher_v1" { "buildid" "3529580" "pwdrequired" "1" "timeupdated" "1549282269" } "launcher_v3" { "buildid" "7202522" "pwdrequired" "1" "timeupdated" "1629207118" } "mp_test" { "buildid" "3539648" "pwdrequired" "1" "timeupdated" "1549620330" } "nightly" { "buildid" "11639534" "pwdrequired" "1" "timeupdated" "1689674388" } "nightly_rc" { "buildid" "8440040" "pwdrequired" "1" "timeupdated" "1649167381" } "qa_test" { "buildid" "3961216" "pwdrequired" "1" "timeupdated" "1562231730" } "review" { "buildid" "3750805" "pwdrequired" "1" "timeupdated" "1556119010" } "sparrow2" { "buildid" "3276571" "pwdrequired" "1" "timeupdated" "1541495896" } "update_beta" { "buildid" "3868315" "pwdrequired" "1" "timeupdated" "1559574891" } "vets" { "buildid" "2097281" "pwdrequired" "1" "timeupdated" "1504769392" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "1000" "hidecloudui" "0" } } ================================================ FILE: FreePackages.Tests/TestData/app_with_language_support.txt ================================================ "appinfo" { "appid" "440" "common" { "icon" "e3f595a92552da3d664ad00277fad2107345f743" "logo" "07385eb55b5ba974aebbe74d3c99626bda7920b8" "logo_small" "07385eb55b5ba974aebbe74d3c99626bda7920b8_thumb" "metacritic_url" "pc/teamfortress2" "name" "Team Fortress 2" "clienticon" "033bdd91842b6aca0633ee1e5f3e6b82f2e8962f" "clienttga" "689dd46bd63e3e460cdd86d936d5de409a291633" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "portuguese" "1" "polish" "1" "danish" "1" "dutch" "1" "finnish" "1" "norwegian" "1" "swedish" "1" "hungarian" "1" "czech" "1" "romanian" "1" "turkish" "1" "brazilian" "1" "bulgarian" "1" "greek" "1" "ukrainian" "1" } "clienticns" "b0780e91df4308b1ad57cc93d6032b4f0e2930cc" "linuxclienticon" "b2659c540592221fcd7675d76a0171f4b3782c1c" "oslist" "windows,macos,linux" "type" "game" "content_descriptors" { "0" "2" "1" "5" } "has_adult_content" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "2" "test_timestamp" "1648771200" "tested_build_id" "7850740" "tests" { "0" { "display" "3" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigNotFullyFunctional" } "1" { "display" "3" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsDoNotMatchDeckDevice" } "2" { "display" "3" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsNotLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } "4" { "display" "1" "token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "1" "small_text" "1" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "market_presence" "1" "metacritic_name" "Team Fortress 2" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "26" "height_pct" "37" } } "store_asset_mtime" "1682961190" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "37" "genres" { "0" "1" "1" "37" } "category" { "category_8" "1" "category_12" "1" "category_13" "1" "category_14" "1" "category_15" "1" "category_17" "1" "category_18" "1" "category_22" "1" "category_27" "1" "category_1" "1" "category_29" "1" "category_30" "1" "category_33" "1" "category_35" "1" "category_45" "1" "category_46" "1" "category_41" "1" "category_42" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "danish" { "supported" "true" } "dutch" { "supported" "true" } "finnish" { "supported" "true" } "french" { "supported" "true" } "german" { "supported" "true" } "italian" { "supported" "true" } "japanese" { "supported" "true" } "norwegian" { "supported" "true" } "polish" { "supported" "true" } "portuguese" { "supported" "true" } "russian" { "supported" "true" } "schinese" { "supported" "true" } "spanish" { "supported" "true" } "swedish" { "supported" "true" } "tchinese" { "supported" "true" } "koreana" { "supported" "true" } "czech" { "supported" "true" } "hungarian" { "supported" "true" } "brazilian" { "supported" "true" } "turkish" { "supported" "true" } "greek" { "supported" "true" } "bulgarian" { "supported" "true" } "romanian" { "supported" "true" } "thai" { "supported" "true" } "ukrainian" { "supported" "true" } } "original_release_date" "1191999600" "steam_release_date" "1191999600" "metacritic_score" "92" "metacritic_fullurl" "https://www.metacritic.com/game/pc/team-fortress-2?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "workshop_visible" "1" "community_hub_visible" "1" "gameid" "440" "exfgls" "1" "store_tags" { "0" "113" "1" "620519" "2" "3859" "3" "1663" "4" "1774" "5" "19" "6" "4155" "7" "5711" "8" "4136" "9" "3839" "10" "3843" "11" "3878" "12" "4195" "13" "4202" "14" "1685" "15" "1719" "16" "5752" "17" "1708" "18" "4562" "19" "1702" } "review_score" "8" "review_percentage" "93" } "extended" { "developer" "Valve" "developer_url" "http://www.valvesoftware.com/" "gamedir" "tf" "gamemanualurl" "http://store.steampowered.com/manual/440/" "homepage" "http://www.teamfortress.com/" "icon" "steam/games/icon_tf2" "icon2" "steam/games/icon_tf2" "isfreeapp" "1" "languages" "english,german,french,spanish,russian" "loadallbeforelaunch" "1" "minclientversion" "1393366296" "noservers" "0" "primarycache" "441" "primarycache_linux" "452" "requiressse" "1" "serverbrowsername" "Team Fortress 2" "sourcegame" "1" "state" "eStateAvailable" "vacmacmodulecache" "160" "vacmodulecache" "202" "vacmodulefilename" "sourceinit.dat" "validoslist" "windows,macos,linux" "deckresolutionoverride" "Native" "publisher" "Valve" "aliases" "tf2" "listofdlc" "456,457,458,459,217221,217222" } "config" { "verifyupdates" "1" "signedfiles" { "hl2.exe" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "client.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "engine.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "server.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "prec.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100BA240326DFC66BFDC28782BD644FC3BAB284F4A07554E17A8DA6CCA0B4AFBFC9BAB2938846D7595BC7A560FF6215C670C74EEB9D118DE9FC0E8ED0A18DD24D8DBAE8B950C6C062BA5DEFDECB967745C53433839EB7B1A6CA340D0E48273E18AB87106FBD22AC32B2776092E924D3C414DC3328735E984E4A1B1B4E72B0F41017020111" "sourcevr.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" } "usemms" "" "systemprofile" "1" "checkforupdatesbeforelaunch" "1" "installdir" "Team Fortress 2" "launch" { "0" { "executable" "hl2.exe" "arguments" "-steam -game tf" "vacmodulefilename" "resource\\sourceinit.dat" "config" { "oslist" "windows" } } "1" { "executable" "hl2_osx" "arguments" "-steam -game tf" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game tf -steam" "config" { "oslist" "linux" } } } "vrcompositorsupport" "0" "steamcontrollertemplateindex" "1" "steamcontrollerconfigdetails" { "1172518660" { "controller_type" "controller_steamcontroller_gordon" "enabled_branches" "default" } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2125279140" { "controller_type" "controller_mobile_touch" "enabled_branches" "default" "use_action_block" "false" } } "uselaunchcommandline" "1" } "depots" { "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish,brazilian,bulgarian,greek,ukrainian" "workshopdepot" "440" "hasdepotsindlc" "1" "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "441" { "systemdefined" "1" "manifests" { "public" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "pre_07_25_23_demos" { "gid" "2023276112389133529" "size" "26125661395" "download" "11978937568" } "pre_jungleinferno_demos" { "gid" "7707612755534478338" "size" "18855865767" "download" "7735778976" } "pre_smissmas_2022_demos" { "gid" "314077012305764573" "size" "24749544116" "download" "10985537760" } "prerelease" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "vscript_test" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } } } "440" { "systemdefined" "1" "manifests" { "public" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_07_25_23_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_jungleinferno_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_smissmas_2022_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "prerelease" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "vscript_test" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } } } "232251" { "config" { "oslist" "windows" } "systemdefined" "1" "manifests" { "public" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "pre_07_25_23_demos" { "gid" "1093030316367308660" "size" "585005817" "download" "467050320" } "pre_jungleinferno_demos" { "gid" "2174530283606128348" "size" "562700702" "download" "445092848" } "pre_smissmas_2022_demos" { "gid" "8319568912250137931" "size" "584144460" "download" "466735776" } "prerelease" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "vscript_test" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } } } "232252" { "config" { "oslist" "macos" } "systemdefined" "1" "manifests" { "public" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "pre_07_25_23_demos" { "gid" "4845664414220472500" "size" "510895405" "download" "391271824" } "pre_jungleinferno_demos" { "gid" "8624037758464932425" "size" "485750759" "download" "370815712" } "pre_smissmas_2022_demos" { "gid" "2262584799279223344" "size" "509176417" "download" "390890000" } "prerelease" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "vscript_test" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } } } "232253" { "config" { "oslist" "linux" } "systemdefined" "1" "manifests" { "public" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "pre_07_25_23_demos" { "gid" "8481848623592128300" "size" "562481508" "download" "446661232" } "pre_jungleinferno_demos" { "gid" "3512165917877440762" "size" "536705326" "download" "424011840" } "pre_smissmas_2022_demos" { "gid" "2039032268643181297" "size" "560994616" "download" "446299360" } "prerelease" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "vscript_test" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } } } "444" { "config" { "lowviolence" "1" } "manifests" { "public" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_07_25_23_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_jungleinferno_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_smissmas_2022_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "prerelease" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "vscript_test" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } } } "445" { "config" { "language" "russian" } "manifests" { "public" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_07_25_23_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_jungleinferno_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_smissmas_2022_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "prerelease" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "vscript_test" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } } } "446" { "config" { "language" "german" } "manifests" { "public" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_07_25_23_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_jungleinferno_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_smissmas_2022_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "prerelease" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "vscript_test" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } } } "448" { "config" { "language" "french" } "manifests" { "public" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_07_25_23_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_jungleinferno_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_smissmas_2022_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "prerelease" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "vscript_test" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } } } "449" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_07_25_23_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_jungleinferno_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_smissmas_2022_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "prerelease" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "vscript_test" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } } } "branches" { "public" { "buildid" "12558449" "timeupdated" "1698450187" } "pre_07_25_23_demos" { "buildid" "11753452" "description" "Pre-07-25-23 Demo Playback" "timeupdated" "1690416239" } "pre_jungleinferno_demos" { "buildid" "2119861" "timeupdated" "1690827460" } "pre_smissmas_2022_demos" { "buildid" "9872056" "description" "Pre-Smissmas 2022 Demo Playback" "timeupdated" "1690827525" } "prerelease" { "buildid" "12558449" "timeupdated" "1698450253" } "vscript_test" { "buildid" "12558449" "description" "VScript beta. Cannot connect to public servers or matchmaking." "timeupdated" "1698450262" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "1000" "hidecloudui" "0" } "sysreqs" { "macos" { "supported" "1" "wants_fast_gpu" "1" "intel900" "warn" "intelx3100" "warn" "8086" { "27a6" "warn" "2a02" "warn" } "10de" { "009d" "deny" "0391" "deny" "0393" "deny" "0395" "deny" } } "macos104" { "supported" "0" "os_min" "macos1058" } "macos105" { "supported" "0" "os_min" "macos1058" } "macos106" { "supported" "0" "os_min" "macos1063" } } "localization" { "richpresence" { "english" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Main Menu" "#tf_richpresence_state_searchinggeneric" "Searching for a Match" "#tf_richpresence_state_searchingmatchgroup" "Searching - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In Match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Joining Match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Joining {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Joining Community Server" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Special Event" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "bulgarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Главно меню" "#tf_richpresence_state_searchinggeneric" "Търсене за мач" "#tf_richpresence_state_searchingmatchgroup" "Търсене — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "В мач — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Присъединяване към мач" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Присъединяване — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Общност — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Присъединяване към обществен сървър" "#tf_richpresence_matchgroup_competitive6v6" "Съревнователна" "#tf_richpresence_matchgroup_casual" "Неангажираща" "#tf_richpresence_matchgroup_specialevent" "Специално събитие" "#tf_richpresence_matchgroup_mannup" "Щателни Манневри" "#tf_richpresence_matchgroup_bootcamp" "Тренировъчен лагер" } } "danish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmenu" "#tf_richpresence_state_searchinggeneric" "Søger efter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søger - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I en kamp - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Slutter til en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Slutter til {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Fællesskab - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Slutter til en fællesskabsserver" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Særlig begivenhed" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Træning" } } "french" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Cherche un match" "#tf_richpresence_state_searchingmatchgroup" "Recherche - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Dans un match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Rejoint un match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Rejoint un match {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Serveur de la communauté - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Rejoint un serveur de la communauté" "#tf_richpresence_matchgroup_competitive6v6" "Compétitif" "#tf_richpresence_matchgroup_casual" "Occasionnel" "#tf_richpresence_matchgroup_specialevent" "Événement spécial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Camp d'entraînement" } } "german" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hauptmenü" "#tf_richpresence_state_searchinggeneric" "Suche nach Spiel läuft" "#tf_richpresence_state_searchingmatchgroup" "Suche läuft – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Im Spiel – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Spielbeitritt erfolgt" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Sie treten {#TF_RichPresence_MatchGroup_%matchgrouploc%} bei" "#tf_richpresence_state_playingcommunity" "Community – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Verbindung zum Communityserver erfolgt" "#tf_richpresence_matchgroup_competitive6v6" "Wettkampf" "#tf_richpresence_matchgroup_casual" "Gelegenheitsspiel" "#tf_richpresence_matchgroup_specialevent" "Sonderevent" "#tf_richpresence_matchgroup_mannup" "Mann-Up" "#tf_richpresence_matchgroup_bootcamp" "Training" } } "hungarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Főmenüben" "#tf_richpresence_state_searchinggeneric" "Meccset keres" "#tf_richpresence_state_searchingmatchgroup" "Keres - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Meccsen - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Meccshez csatlakozik" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Csatlakozik: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Közösség - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Közösségi szerverhez csatlakozik" "#tf_richpresence_matchgroup_competitive6v6" "Versengő" "#tf_richpresence_matchgroup_casual" "Könnyed" "#tf_richpresence_matchgroup_specialevent" "Különleges esemény" "#tf_richpresence_matchgroup_mannup" "„Mannj rá”" "#tf_richpresence_matchgroup_bootcamp" "Kiképzés" } } "italian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principale" "#tf_richpresence_state_searchinggeneric" "In cerca di una partita" "#tf_richpresence_state_searchingmatchgroup" "Ricerca in corso - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In partita - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Unione a una partita" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Unione a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunità - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Unione a un server della Comunità" "#tf_richpresence_matchgroup_competitive6v6" "Competitiva" "#tf_richpresence_matchgroup_casual" "Leggera" "#tf_richpresence_matchgroup_specialevent" "Evento speciale" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Addestramento" } } "polish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu główne" "#tf_richpresence_state_searchinggeneric" "Wyszukiwanie gry" "#tf_richpresence_state_searchingmatchgroup" "Wyszukiwanie - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "W grze - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Dołączanie do gry" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Dołączanie do trybu „{#TF_RichPresence_MatchGroup_%matchgrouploc%}”" "#tf_richpresence_state_playingcommunity" "Gra społeczności - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Dołączanie do serwera społeczności" "#tf_richpresence_matchgroup_competitive6v6" "Rankingowy" "#tf_richpresence_matchgroup_casual" "Swobodny" "#tf_richpresence_matchgroup_specialevent" "Wydarzenie specjalne" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Trening" } } "russian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "В главном меню" "#tf_richpresence_state_searchinggeneric" "Ищет игру" "#tf_richpresence_state_searchingmatchgroup" "Поиск ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playinggeneric" "В игре: %currentmap%" "#tf_richpresence_state_loadinggeneric" "Заходит на сервер" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%}: %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Заходит на сервер ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playingcommunity" "Сервер сообщества: %currentmap%" "#tf_richpresence_state_loadingcommunity" "Заходит на сервер сообщества" "#tf_richpresence_matchgroup_competitive6v6" "Соревновательная игра" "#tf_richpresence_matchgroup_casual" "Обычная игра" "#tf_richpresence_matchgroup_specialevent" "Праздничный режим" "#tf_richpresence_matchgroup_mannup" "МАННёвры" "#tf_richpresence_matchgroup_bootcamp" "Учебка" } } "spanish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } "thai" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "เมนูหลัก" "#tf_richpresence_state_searchinggeneric" "กำลังค้นหาแมตช์" "#tf_richpresence_state_searchingmatchgroup" "กำลังค้นหา - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "อยู่ในแมตช์ - %currentmap%" "#tf_richpresence_state_loadinggeneric" "กำลังเข้าร่วมแมตช์" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "กำลังเข้าร่วม {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "ชุมชน - %currentmap%" "#tf_richpresence_state_loadingcommunity" "กำลังเข้าร่วมเซิร์ฟเวอร์ชุมชน" "#tf_richpresence_matchgroup_competitive6v6" "การแข่งขัน" "#tf_richpresence_matchgroup_casual" "แคชชวล" "#tf_richpresence_matchgroup_specialevent" "กิจกรรมพิเศษ" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "บูทแคมป์" } } "turkish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Ana Menü" "#tf_richpresence_state_searchinggeneric" "Maç Aranıyor" "#tf_richpresence_state_searchingmatchgroup" "Aranıyor - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Maçta - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Maça Katılınıyor" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Katılınıyor {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Topluluk - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Topluluk Sunucusuna Katılınıyor" "#tf_richpresence_matchgroup_competitive6v6" "Rekabetçi" "#tf_richpresence_matchgroup_casual" "Basit Eğlence" "#tf_richpresence_matchgroup_specialevent" "Özel Etkinlik" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Eğitim" } } "brazilian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Buscando partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Em partida — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Entrando em partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Entrando em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor da comunidade — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Entrando em servidor da comunidade" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Treino (MvM)" } } "czech" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hlavní menu" "#tf_richpresence_state_searchinggeneric" "Vyhledávání zápasu" "#tf_richpresence_state_searchingmatchgroup" "Vyhledávání – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Zápas – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Připojování do zápasu" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Připojování – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Komunitní server – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Připojování ke komunitnímu serveru" "#tf_richpresence_matchgroup_competitive6v6" "Kompetitivní" "#tf_richpresence_matchgroup_casual" "Nenáročný" "#tf_richpresence_matchgroup_specialevent" "Speciální událost" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "finnish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Päävalikko" "#tf_richpresence_state_searchinggeneric" "Etsii peliä" "#tf_richpresence_state_searchingmatchgroup" "Etsii - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Pelissä - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Liittymässä peliin" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Liittyy {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Yhteisö - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Liittymässä yhteisöpalvelimelle" "#tf_richpresence_matchgroup_competitive6v6" "Kilpailullinen" "#tf_richpresence_matchgroup_casual" "Tavallinen" "#tf_richpresence_matchgroup_specialevent" "Erikoistapahtuma" "#tf_richpresence_matchgroup_mannup" "Miehisty-tila" "#tf_richpresence_matchgroup_bootcamp" "Harjoitusleiri" } } "portuguese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "A procurar partida" "#tf_richpresence_state_searchingmatchgroup" "A procurar - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Numa partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "A entrar numa partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "A entrar em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor comunitário - %currentmap%" "#tf_richpresence_state_loadingcommunity" "A entrar num servidor comunitário" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Iniciação" } } "ukrainian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Головне меню" "#tf_richpresence_state_searchinggeneric" "Пошук матчу" "#tf_richpresence_state_searchingmatchgroup" "Пошук — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "У матчі — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Приєднується до матчу" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Приєднується до {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Спільнота — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Приєднується до сервера спільноти" "#tf_richpresence_matchgroup_competitive6v6" "Змагальний режим" "#tf_richpresence_matchgroup_casual" "Звичайний режим" "#tf_richpresence_matchgroup_specialevent" "Особлива подія" "#tf_richpresence_matchgroup_mannup" "«Манневри»" "#tf_richpresence_matchgroup_bootcamp" "«Тренувальний табір»" } } "swedish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Huvudmeny" "#tf_richpresence_state_searchinggeneric" "Söker efter en match" "#tf_richpresence_state_searchingmatchgroup" "Söker - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Går med i match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Går med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Gemenskap - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Går med i gemenskapserver" "#tf_richpresence_matchgroup_competitive6v6" "Tävlingsinriktat" "#tf_richpresence_matchgroup_casual" "Vanligt" "#tf_richpresence_matchgroup_specialevent" "Specialevent" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Träningsläger" } } "greek" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Κύριο μενού" "#tf_richpresence_state_searchinggeneric" "Αναζήτηση αγώνα" "#tf_richpresence_state_searchingmatchgroup" "Αναζήτηση - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Σε αγώνα - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Σύνδεση σε αγώνα" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Σύνδεση σε {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Κοινότητα - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Σύνδεση σε διακομιστή κοινότητας" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Ειδικό συμβάν" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "norwegian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmeny" "#tf_richpresence_state_searchinggeneric" "Søker etter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søker – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I kamp – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Blir med i en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Blir med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Samfunn – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Blir med på samfunnstjener" "#tf_richpresence_matchgroup_competitive6v6" "Konkurransespilling" "#tf_richpresence_matchgroup_casual" "Avslappet" "#tf_richpresence_matchgroup_specialevent" "Spesielt arrangement" "#tf_richpresence_matchgroup_mannup" "Mann deg opp" "#tf_richpresence_matchgroup_bootcamp" "Treningsleir" } } "schinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主菜单" "#tf_richpresence_state_searchinggeneric" "正在搜索比赛" "#tf_richpresence_state_searchingmatchgroup" "正在搜索 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比赛中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "正在加入比赛" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "正在加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "社区服务器 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "正在加入社区服务器" "#tf_richpresence_matchgroup_competitive6v6" "竞技模式" "#tf_richpresence_matchgroup_casual" "休闲模式" "#tf_richpresence_matchgroup_specialevent" "特别活动" "#tf_richpresence_matchgroup_mannup" "曼恩奇现" "#tf_richpresence_matchgroup_bootcamp" "新兵训练营" } } "dutch" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hoofdmenu" "#tf_richpresence_state_searchinggeneric" "Naar een spel aan het zoeken" "#tf_richpresence_state_searchingmatchgroup" "Zoeken - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In spel - %currentmap%" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_matchgroup_competitive6v6" "Competitief" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Speciaal evenement" "#tf_richpresence_matchgroup_mannup" "Vermann je" "#tf_richpresence_matchgroup_bootcamp" "Trainingskamp" } } "japanese" { "tokens" { "#tf_richpresence_state_mainmenu" "メインメニュー" "#tf_richpresence_state_loadinggeneric" "マッチに参加しています" "#tf_richpresence_matchgroup_competitive6v6" "対戦" "#tf_richpresence_matchgroup_casual" "カジュアル" "#tf_richpresence_matchgroup_specialevent" "スペシャルイベント" "#tf_richpresence_matchgroup_bootcamp" "ブート・キャンプ" } } "tchinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主選單" "#tf_richpresence_state_searchinggeneric" "搜尋比賽中" "#tf_richpresence_state_searchingmatchgroup" "搜尋中 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比賽中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "加入比賽中" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%} 中" "#tf_richpresence_state_playingcommunity" "社群 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "加入社群伺服器中" "#tf_richpresence_matchgroup_competitive6v6" "競技模式" "#tf_richpresence_matchgroup_casual" "休閒模式" "#tf_richpresence_matchgroup_specialevent" "特殊活動" "#tf_richpresence_matchgroup_mannup" "曼恩對決機器曼起來模式" "#tf_richpresence_matchgroup_bootcamp" "曼恩對決機器訓練營" } } "vietnamese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Đại sảnh" "#tf_richpresence_state_searchinggeneric" "Đang tìm trận đấu" "#tf_richpresence_state_searchingmatchgroup" "Đang tìm - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Đang chơi - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Đang tham gia trận" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Đang tham gia {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Cộng đồng - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Đang tham gia máy chủ cộng đồng" "#tf_richpresence_matchgroup_competitive6v6" "Tranh đấu" "#tf_richpresence_matchgroup_casual" "Đơn giản" "#tf_richpresence_matchgroup_specialevent" "Sự kiện đặc biệt" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "latam" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_purchase_restricted_countries.txt ================================================ "appinfo" { "appid" "212200" "common" { "name" "Mabinogi" "type" "Game" "linuxclienticon" "9a431be93206e256568d0cc8a472af0d687f4dde" "clienticon" "7fa79cb00af00bc97c8ba41906a5e1ca98649c29" "clienttga" "67ba1b90bc9b004b9670ff05d99cec8ced547361" "icon" "3c5bb76a73fcaa61fa2407134cca04f3d60574fa" "logo" "799a333b7e8f1925d49ea51d83aa111ea70887c7" "logo_small" "799a333b7e8f1925d49ea51d83aa111ea70887c7_thumb" "oslist" "windows" "eulas" { "0" { "id" "212200_eula_0" "name" "Mabinogi EULA" "url" "http://store.steampowered.com//eula/212200_eula_0" } } "steam_deck_compatibility" { "category" "1" "test_timestamp" "1643932800" "tested_build_id" "7646791" "tests" { "0" { "display" "2" "token" "#SteamDeckVerified_TestResult_UnsupportedAntiCheat_Other" } } "configuration" { "supported_input" "other" "requires_manual_keyboard_invoke" "1" "requires_non_controller_launcher_nav" "1" "primary_player_is_controller_slot_0" "0" "non_deck_display_glyphs" "0" "small_text" "0" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "proton-stable" } } "metacritic_name" "Mabinogi" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "17.527439671875584" "height_pct" "58.074966480290485" } } "store_asset_mtime" "1678990323" "associations" { "0" { "type" "developer" "name" "NEXON Korea Corp." } "1" { "type" "publisher" "name" "Nexon America Inc." } } "primary_genre" "37" "genres" { "0" "1" "1" "25" "2" "4" "3" "37" "4" "29" "5" "3" "6" "28" } "category" { "category_2" "1" "category_1" "1" "category_20" "1" "category_9" "1" "category_29" "1" } "supported_languages" { "english" { "supported" "1" "full_audio" "1" } } "steam_release_date" "1354816800" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "212200" "exfgls" "1" "store_tags" { "0" "113" "1" "128" "2" "4085" "3" "122" "4" "1754" "5" "597" "6" "19" "7" "599" "8" "21" "9" "1695" "10" "1684" "11" "3859" "12" "4747" "13" "3810" "14" "4726" "15" "4231" "16" "4434" "17" "1742" "18" "1756" "19" "10235" } "review_score" "6" "review_percentage" "73" "review_score_bombs" "6" "review_percentage_bombs" "74" } "extended" { "allowpurchasefromrestrictedcountries" "1" "developer" "NEXON Korea Corp." "gamedir" "Mabinogi" "homepage" "https://mabinogi.nexon.net/" "icon" "" "isfreeapp" "1" "noservers" "0" "purchaserestrictedcountries" "US CA MX NZ AU" "sourcegame" "1" "state" "eStateAvailable" "thirdpartycdkey" "1" "visibleonlywhensubscribed" "1" "publisher" "Nexon America Inc." "listofdlc" "212210,212211" "dlcavailableonstore" "1" } "config" { "contenttype" "3" "installdir" "Mabinogi" "launch" { "0" { "executable" "nxsteam\\nxsteam.exe" "arguments" "\"Client.exe code:1622 locale:USA env:Regular ver:246 logip:35.162.171.43 logport:11000 chatip:54.214.176.167 chatport:8002 setting:\\\"file://data/features.xml\\\" sn:{tracking_uid} sid:{tracking_sessionid} /P:{passport} -Steam\" --nx:title=Mabinogi --nx:serviceId=880915460" "type" "default" "config" { "oslist" "windows" } "description_loc" { "english" "Launch with Console" } "description" "Launch with Console" } "1" { "executable" "nxsteam\\nxsteam.exe" "arguments" "\"Client.exe code:1622 locale:USA env:Regular ver:246 logip:52.25.96.185 logport:11000 chatip:52.25.96.185 chatport:8002 setting:\\\"file://data/features.xml\\\" sn:{tracking_uid} sid:{tracking_sessionid} /P:{passport} -Steam\" --nx:title=Mabinogi --nx:serviceId=880915460" "type" "option1" "config" { "oslist" "windows" "betakey" "test" } "description_loc" { "english" "Beta" } "description" "Beta" } "2" { "executable" "nxsteam\\nxsteam.exe" "arguments" "\"Client.exe code:1622 locale:USA env:Test logip:35.162.133.173 logport:11000 chatip:35.162.133.173 chatport:8002 setting:\\\"file://data/features.xml\\\" sn:{tracking_uid} sid:{tracking_sessionid} /P:${passport} -Steam\" --nx:title=Mabinogi -- nx:serviceID=880915460" "type" "option1" "config" { "oslist" "windows" "betakey" "pts_test" } "description_loc" { "english" "PTS test" } "description" "PTS test" } "3" { "executable" "nxsteam\\nxsteam.exe" "arguments" "\"Client.exe code:1622 locale:USA env:Test logip:35.162.133.173 logport:11000 chatip:35.162.133.173 chatport:8002 setting:\\\"file://data/features.xml\\\" sn:{tracking_uid} sid:{tracking_sessionid} /P:${passport} -Steam\" --nx:title=Mabinogi --nx:serviceID=880915460 --nx:env=test" "type" "option1" "config" { "oslist" "windows" "betakey" "pts_test" } "description_loc" { "english" "pts test test" } "description" "pts test test" } } } "depots" { "212201" { "config" { "language" "english" "oslist" "windows" } "manifests" { "public" { "gid" "8162732607877253414" "size" "11186541794" "download" "10561583616" } } "encryptedmanifests" { "pts_test" { "gid" "95F86FA89B183655AE29E3E7B43BC608" "size" "F0FC37DE6F04AD04C79398E464CC8332" "download" "1E8E9FEEA59A8E89AB0E5FCE187D0A4C" } "test" { "gid" "EA4C0C38BE593ADCB61FDB7D21736275" "size" "BE8B082AF32F05E53BFCCD45FE2A7B3A" "download" "7FE11CBD4B1E866E4A0A62145C9919A9" } } } "overridescddb" "1" "branches" { "public" { "buildid" "12534881" "timeupdated" "1698330602" } "pts_test" { "buildid" "12513223" "pwdrequired" "1" "timeupdated" "1698081532" } "test" { "buildid" "12556464" "pwdrequired" "1" "timeupdated" "1698434619" } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_release_state.txt ================================================ "appinfo" { "appid" "1086940" "common" { "name" "Baldur's Gate 3" "type" "Game" "releasestate" "released" "clienticon" "ea19a7ce2af83c0240e775d79d3b690751a062c1" "clienttga" "a4cd79e3b930b890d17473ea7f0e40e2144fcfca" "icon" "d866cae7ea1e471fdbc206287111f1b642373bd9" "oslist" "windows,macos" "osarch" "64" "osextended" "macos64,macosapplesilicon" "eulas" { "0" { "id" "1086940_eula_0" "name" "Baldur's Gate 3 EULA" "url" "https://store.steampowered.com//eula/1086940_eula_0" "version" "3" } } "logo" "a8c254f3aaa272a8cd3222b76fc6cdb2358b4587" "logo_small" "a8c254f3aaa272a8cd3222b76fc6cdb2358b4587_thumb" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "polish" "1" "turkish" "1" "brazilian" "1" "ukrainian" "1" "latam" "1" } "content_descriptors" { "0" "1" "1" "2" "2" "5" } "has_adult_content" "1" "has_adult_content_sex" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "3" "test_timestamp" "1695427200" "tested_build_id" "12134408" "tests" { "0" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigFullyFunctional" } "1" { "display" "4" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsMatchDeckDevice" } "2" { "display" "4" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "0" "non_deck_display_glyphs" "0" "small_text" "0" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "proton-8.0-4" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "metacritic_name" "Baldur's Gate 3" "controller_support" "full" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "CenterCenter" "width_pct" "42.59539141078173" "height_pct" "72.26394372050225" } } "store_asset_mtime" "1696948779" "associations" { "0" { "type" "developer" "name" "Larian Studios" } "1" { "type" "publisher" "name" "Larian Studios" } "2" { "type" "franchise" "name" "Baldur's Gate" } } "primary_genre" "3" "genres" { "0" "25" "1" "3" "2" "2" } "category" { "category_2" "1" "category_1" "1" "category_38" "1" "category_23" "1" "category_48" "1" "category_9" "1" "category_45" "1" "category_46" "1" "category_22" "1" "category_28" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "french" { "supported" "true" "subtitles" "true" } "german" { "supported" "true" "subtitles" "true" } "spanish" { "supported" "true" "subtitles" "true" } "polish" { "supported" "true" "subtitles" "true" } "russian" { "supported" "true" "subtitles" "true" } "schinese" { "supported" "true" "subtitles" "true" } "turkish" { "supported" "true" "subtitles" "true" } "brazilian" { "supported" "true" "subtitles" "true" } "italian" { "supported" "true" "subtitles" "true" } "latam" { "supported" "true" "subtitles" "true" } "tchinese" { "supported" "true" "subtitles" "true" } "ukrainian" { "supported" "true" "subtitles" "true" } } "steam_release_date" "1691074800" "metacritic_score" "96" "metacritic_fullurl" "https://www.metacritic.com/game/pc/baldurs-gate-3?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "1086940" "store_tags" { "0" "122" "1" "6426" "2" "1742" "3" "4747" "4" "4325" "5" "21" "6" "4474" "7" "14153" "8" "3843" "9" "1684" "10" "3859" "11" "4947" "12" "9" "13" "4508" "14" "4182" "15" "4155" "16" "4604" "17" "3993" "18" "7481" "19" "1687" } "review_score" "9" "review_percentage" "96" } "extended" { "developer" "Larian Studios" "publisher" "Larian Studios" "homepage" "https://baldursgate3.game" "listofdlc" "2378500,2378510" "dlcavailableonstore" "1" } "config" { "installdir" "Baldurs Gate 3" "launch" { "0" { "executable" "Launcher\\LariLauncher.exe" "workingdir" "bin" "type" "default" "config" { "oslist" "windows" } } "1" { "executable" "Baldur's Gate 3.app" "type" "default" "config" { "oslist" "macos" } } } "steamcontrollertemplateindex" "2" "steamdecktouchscreen" "1" } "depots" { "baselanguages" "" "228989" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "1086941" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "3694534054212424521" "size" "159723958327" "download" "113162192384" } } "encryptedmanifests" { "agerating" { "gid" "E4B2C2D1DADE1F8D2F89F9AE8A3D2770" "size" "EFEDF90B8CBD2FD9D75E8CEDD92570FD" "download" "41588BDEF002D25D840CAD43AABD7765" } "baseline" { "gid" "25362C10C2DB19CEABB843BF76A13AB9" "size" "077C2AAED380E8601FE470CDB65B8F1A" "download" "6F1A860F3881A13D036058192EAF7C75" } "ch_main" { "gid" "207B8B4E07F1B10B4536EFAFE93F0AA0" "size" "6E6A756196030E795C97C79A5A1E9850" "download" "D5385A84ED249B2B965F066EF325CD9D" } "ch_rc" { "gid" "A5EA28049859FF9055F7469753DA6CD4" "size" "C376558611FBA7AF3782AB43F38E8CFA" "download" "7B1E0FFB18B50D1A4C7009AD7C2586E2" } "compat" { "gid" "C3554338064450DBA92A9769E2FE6692" "size" "75C2E493230A2BEC51C6ED641ECC500F" "download" "65F1DB2567CF81455E14F5D02785A78F" } "dlss" { "gid" "7D1D71C29D6E57C6A04A9C1C21D59C6A" "size" "9C4169DCF6B789105E2ED4011A69B8A1" "download" "C28FE105DAA9FA0D4ED11C36B1114A5C" } "mac_test1" { "gid" "D9D5FAF134942F858F4E03B723F22C6A" "size" "FF13736A8125B5FDA1FD79421FE0C0BA" "download" "BBF79B30B8141EF6D8746C14649CEAEC" } "mac_test2" { "gid" "2D4211D7E8DC6F5B1D6B712144A48E31" "size" "226AFD87D78F4145AB331F0D15EE555F" "download" "87D37F1A7B9C41AA72A6E8C009E79F26" } "mac_test3" { "gid" "E510BC43C1C0F2FB925DDCE6344AA8A1" "size" "5E89FD4800485DD03094D1E20D7B9C79" "download" "51E30980E631528AD3076CA2A85FCE6C" } "playtesting" { "gid" "F78EC31AB901B73FBE8B582812D2FA74" "size" "2A959854EA60977423F41E7D8E7D42EB" "download" "0BC584C4894713A2C496B6FCA7990B9B" } "pt_bcn" { "gid" "5E902B50444B42BA2DD36F73D23F24E0" "size" "6B31413AF2788904032265521B8316B6" "download" "A017FB37171C0BD7D5E2DBCDDF244CA4" } "pt_dub" { "gid" "FAA7C88E58562D27FA029EF13A46699D" "size" "A11993C7D94AA9C55A34A0FB089E2069" "download" "9AA7BFB6FC2A74EDB7F77092CD384A65" } "pt_gf" { "gid" "F8B46813F35C7F9C2C018DCA576115D9" "size" "27D251E7AA0D58026C1FA1B37C9C88F9" "download" "04EC1EC8C9B6D30A6EA19C680E21BB60" } "pt_gnt" { "gid" "4DFB5A5464364194F02ACFDA8204774B" "size" "8223737B3DEDE6C70114D6782BC85041" "download" "D21D73D7DB50BA650971510A7C6DB704" } "pt_kl" { "gid" "B6812DA509326ABF189B2E5A9D026DFF" "size" "78A992517226028AD8AA3169EAC388B3" "download" "872AA500F19581C8D85771F775E73DF1" } "pt_qbc" { "gid" "E194B2FD72FC9588AED3B5594B10171D" "size" "521827312F2C809E3F85D2A15D2448C7" "download" "95747A0F693B3085EC79F8AB47F5FDD8" } "qaprio" { "gid" "FAA4EDC980B1E33B5399393A8996626F" "size" "29FB1A8223462A11A37F60FE6F6BBEC6" "download" "9B3DD1C82981F88AD33C769F789A7FCB" } "release" { "gid" "83A08461B847F01B4B3730C7D463EA44" "size" "F3B55479441F86CED596FC4D9EB694B7" "download" "372200E1B883B8B10C007DF060C5844C" } "release_hf1" { "gid" "7AF0456A13BDD78BF2C1F0B2D2A13008" "size" "A3BE50DC4D27E775E89DF6748648670B" "download" "854F8EC330D77A78B09066FF63CE810E" } "release_hf2" { "gid" "89B4AA1AC5847092B166EF7C6EF38F8A" "size" "7A14D8335CD66DDE0F4A841AA6D7FCC3" "download" "6E82259324E9FCABBDBC05AA437585D4" } "release_hf2.1" { "gid" "4A66D1FAC14F5F89CC796F51710EF472" "size" "0934C5CD5EF31C4453A02667A5420979" "download" "5760D101A8F6042D01844BE28C273F00" } "release_hf3" { "gid" "BEFB4361B427775FAC6D4E31E814C03B" "size" "8B87AE4250C375527FC0897E77F16D1C" "download" "57E94AF304EFE14BC5944F1D8242F5E2" } "release_hf4" { "gid" "36404F0FF08E5725947BBA5D53AC93B0" "size" "2C2678DE75E2EF82FA4F63CF092DEB61" "download" "20AA6ED852E3B802647BDBD7B4520BCB" } "release_patch1" { "gid" "F532467AB08551B7CD01E364B6AAC5D1" "size" "808C7BD34390CABE047876CD12DBD7D7" "download" "135E06B30908FADDB79F1E010FC946B2" } "release_patch2" { "gid" "EA46820D353CE8A3BC6A8414792A603E" "size" "C54B3B54C60B828D8E15E1E3F85B6E8E" "download" "A68424831AB73569D93A6606947B63A8" } "release_patch3" { "gid" "3BADF4B698A67799DEA697DCB9440596" "size" "548A7A750F65A9DBD9C4A6F335E09522" "download" "FDA08C19E2AD14618690B64639E711EF" } "release_patch3_hf1" { "gid" "EE7C4659A69DFFBAC5F6A386FE6F676F" "size" "1D3BC098C0BBF1293DE739399F5713B1" "download" "3FF48E10924EA91DEAF20EF26CE886AC" } "release_patch3_hf2" { "gid" "C37DF918C62FB3B6E5B1F66C2B1B5FBA" "size" "F59E6481AF093890EDF28D375459711A" "download" "30ED53CDC592206F1DF66BAE08A4C6C3" } "release_patch3_hf3" { "gid" "1FDFA8B1A708D316CF914A6CEB7F7EF8" "size" "DD155FC49673F81BE601E0FBA8C558C0" "download" "DE9E3E50975C9F24EB1E6346A1465481" } "release_patch4" { "gid" "4518D8A7D6B3653A6B5B7F8F252CBCA9" "size" "23A083F34889A44C61809D399167FF03" "download" "E03F2D4D3D5A64A4DDC35C64C22BC972" } "summer2020_loca" { "gid" "15BF3173E1D1F3E9FC3F75B11E147405" "size" "534202A736EB986C07A85A7F6D6C660F" "download" "7D8ECC28DD5D28ECEBEA64FCE9623E40" } "temp" { "gid" "5C4CA69288659D1880765A5D16BE7635" "size" "172580BDC0C4C64B97945868CDC5EAA6" "download" "2E9AD37695BD903A52E2B814BF7A5E08" } "testbranch" { "gid" "79B0171C230B28A94E18AC2187AF6346" "size" "E4A91AD56074C616BA203DB852316BF5" "download" "33DF39B240A10D8D7A99CA3587B6E2DC" } } } "1086942" { "config" { "language" "english" "oslist" "windows" } "manifests" { "public" { "gid" "17875152607970122" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "C56CA96F704AD75B1773612C4029DCEB" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "baseline" { "gid" "DF76437AEE6A8F25E04E3C20B3127AD1" "size" "5847AB920AE50B03586B3EBDD4FAFB80" "download" "E5C33F04760FA64194957A6D0DBFE8BB" } "ch_main" { "gid" "F8D87C4B259F22F644B80AC588E5B2C8" "size" "AD8062173DDDCC75D21F68D9CF86CEF2" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "F62D2BBD3F8636882B2B56A1CBBFC1B8" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "BCFA59EDAF1CFEE180522806C1945F50" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "6F8D7381D5573F034E4FC02A48A233A8" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "01CFFA9EC58CF20F02478DDF6A562895" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "F02E9C1BFE0176838B7C0E8BE3E1CBE1" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "51F2E49EC3D45B47045B3F5FBBE5536C" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "F74F0D8F66C216892124648C651E8822" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "88105F5E8361A35984A590E4D87ECE7B" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "B09A5A942ED32BA01918105DDBA4EF93" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "3A0A1D467427812B1B7AD4057EA7F9DE" "size" "56DB2935C18F1B9BC7562552F8C7D468" "download" "5F83776DB7021651B99D1B14015A0648" } "pt_gnt" { "gid" "E265A9DA5D0416F19600D9EDA85D854E" "size" "EE9AAAF888D21E81F37F54B45F0F91EF" "download" "39CA42EF9583DABE0E257DC599693B19" } "pt_kl" { "gid" "3CBD7C1116EC0AEE859833C2F5D7212E" "size" "6E03523319BD32B57873A848BD7B5624" "download" "C50A325D39C9341C054DCFFBAF7C5CA9" } "pt_qbc" { "gid" "DB9F29B26F6D97EC19088A32EAECDEE6" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "F0895C2CE504EDF81E5CF754DD161AAC" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "A57EA9264A78383875A0BF0F87CC78B8" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "EC31DED23234A28CD72ADA5E58F23798" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "3AA5D6A8CC6F91F4BB1A880A61C4DE8B" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "82BE827E2E96D5FB59825688EA7E5222" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "A59D53E14E4B28D02AF04FD34CD0BB3B" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "FD275726C1BD417BAB67105FB0526ACA" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "8035E9C1EDD5199C60DC703B94013CB3" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "FF8689E4F186AC97D8381EF8C1EF4D1F" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "2AB614C33FDA06E167A2BDDD595835A2" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "3F64DEF3F207251BBD8DBDAC1966AA7A" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "22119B16F73651254C3A6EAA7838A201" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "B80CF787B409935DC2237FDAF582810F" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "635F0D0F6098E00FFF1CE9D7936D7093" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "E417DBBE1CFDDCC00766744F13F8E031" "size" "A8EF6516D2F4BEC8736612518D62F55C" "download" "6F8A129A74E53EF43F9C66C3C93002C4" } "temp" { "gid" "D3D423B2B08D90B3540D16F721508E4C" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "CEE64AD264AA714AC06F0145533F1ABB" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1086943" { "config" { "language" "french" "oslist" "windows" } "manifests" { "public" { "gid" "6209140131624329019" "size" "14899178" "download" "12885440" } } "encryptedmanifests" { "agerating" { "gid" "656C8506ACFE5760A63A4AEF5D86FD77" "size" "B4EB596C2BBD74E02BAE9D87466F4E9F" "download" "BC341D237E586AB2C479032DB9C74D81" } "baseline" { "gid" "85E778C27BBBB7E30D4C26462968204A" "size" "C598670816950C3679929088155AE634" "download" "7C4E2C1CD4267FA5A4C1B5C6278FB901" } "ch_main" { "gid" "4D03E2B06C38A54E779CC01C487E684B" "size" "8D3BAE118396AA331B034B2976D52528" "download" "39CD2150DAA4B084BE5C63FE171CCF50" } "ch_rc" { "gid" "CCAAA2D05A96370CE50E4EF4141BCC93" "size" "0EF9A7C3A14644B13D5DF21AD1C63B1F" "download" "802F58D89C895CA205F3ECA76AA95534" } "compat" { "gid" "E34C192E0D8DA5F88F180F961A14690B" "size" "85DF3E7CD0882CFFC9FAACC590C57695" "download" "9B54D8A0CB2E92891AA74D3B3101C227" } "dlss" { "gid" "686585CF6390E6A2DC41EBAC0301CC34" "size" "E7F33EDAE2D96083053F5F1E89CD3B7B" "download" "FBE27DB75CB7F17C873D8427A072C737" } "mac_test1" { "gid" "B31D2EAD6C1F44298C3ABAE76741DA17" "size" "F6C32ECA1A58C0F77DA19E6A807AE2E4" "download" "15411F10085BB2AC408F8D78ED30C1FA" } "mac_test2" { "gid" "62A503A0FFF5595B096FA2FD8B1034C4" "size" "87E75C2458F098837C41313E6BD773B3" "download" "4A18260811DE2F9C5F2C5C351B8D0B9B" } "mac_test3" { "gid" "31AA384AF17F39B89A05979B72A39950" "size" "864C47B6A662B9D065A8038677FCC752" "download" "A6A4129FCF7414CACCCF7560B16B3FEE" } "playtesting" { "gid" "D242D0E72D4C24A9F8E15EB39BBBC8BA" "size" "06044D9EECA50ED0D9A2E9F4D2117BA7" "download" "C3C0D9A366849AE688E702B3F35F68A1" } "pt_bcn" { "gid" "2183D59CC41F4F586ADE078EC6BDA2F5" "size" "0D74CD957B93759EAAD6BE982FC3169B" "download" "7E23EB32D226A6A1C68EF4FB1B9B7E6D" } "pt_dub" { "gid" "89FCCE9F9EF6985754783F64CC5C93CD" "size" "81B02228C0295C9893FA8E0AF764D4DA" "download" "07A8C581666E6A0BAB915B0D8DD73567" } "pt_gf" { "gid" "7E19D555EC06C3CFAB0558D1BEBCA8CD" "size" "8459CFAFF43278E80223EEC1C3CC12B4" "download" "7644608610F682AF1354421472225452" } "pt_gnt" { "gid" "414CBE0FC1CBAF724ABAC42BB89701B1" "size" "13F9D55DD012F0AF107A78DDF21F33F3" "download" "2A136C556D27F08B281D25F3C59AD218" } "pt_kl" { "gid" "9990550F29788CE5E71490B037CA1351" "size" "1B0A30D5B4F3853BC0B4F608ABAAAFEF" "download" "0121C0E99C841EAFEA90AEBCC4C419B3" } "pt_qbc" { "gid" "9901645A984EE4FFCB7AFBCB0C6B2AF6" "size" "28F2D5F1C9643E766B879F9C379839EF" "download" "C9C7FB13FEDA1CACB7AAA0D254146C34" } "qaprio" { "gid" "541A99D6308E96E2212F7638153405F6" "size" "49281FD960F0D33362D97575BAC4975E" "download" "55162E15BB2A7BDB65ED9148B8E582B4" } "release" { "gid" "CCF8FE6EF7E7801AB586482BA8966F18" "size" "68B44460C913BA23DA05F4F8BFC2B4B7" "download" "EBE24C2110E46D10968B8CC21C44B0EB" } "release_hf1" { "gid" "706F2C1E9E3752E54009102026D5EC79" "size" "03F850FDE8BB839B670CF7BFCEE4B0A0" "download" "C206D074269406A2F0AFCDABF3ADAD35" } "release_hf2" { "gid" "9E2988CAFE7CF7FCC9AFC924AB588705" "size" "5476E280FAE56410A385F6E3321A1491" "download" "9BE3A502D45F365991DC8390B2E8765D" } "release_hf2.1" { "gid" "5BEEF3ED1BB9534ECBC1CF12A19B0405" "size" "C0A84FA21CB43126C375E49D991BD301" "download" "ED927C36B7C15D4FB6F26CE3C91DB742" } "release_hf3" { "gid" "5786E85FB3CA6CD5BB9D59E7F4E459AB" "size" "F79A936885B8B84B57BBE43C5BFC1987" "download" "003C122C3C6562C2F62B51D5E724E0CE" } "release_hf4" { "gid" "D1E66904B40E4578B1263997321406F4" "size" "91B033CDE7211BF79EEE4EB624D8435D" "download" "E3842B500F46BF901EF0C6E89E927287" } "release_patch1" { "gid" "F151B6F11A9EFFB1A8FCA268151E6CFA" "size" "5058C5C56721102D5787379DDD3674D4" "download" "4DAC07F976ED79579B8DD7DD17D49295" } "release_patch2" { "gid" "BA77EE887A6B27FE58F49070FFE5A275" "size" "692647159AB0C562C86045818E63EAB0" "download" "326FE1B140AFAFD5E5A65DB742776A18" } "release_patch3" { "gid" "9BF5D6EEE08CF519A578742DB9E821E8" "size" "F5E053C20E17B7884D9FE29A3E555908" "download" "09E5839F7401B4283EBDB3D6811928D6" } "release_patch3_hf1" { "gid" "1DBB4655F2E409131EA1CD854FC74112" "size" "6AF2074F066CC72DD5C87E23DC25ADD5" "download" "82D7B146B60246B6E58377ACD377A7EB" } "release_patch3_hf2" { "gid" "FAB96A1854E4743D2E0EABDDDF5BC9FF" "size" "985B6EE024FE8673B8E8530EC87B67CC" "download" "3C20B44DD9059D2D4B8026159E817CF7" } "release_patch3_hf3" { "gid" "B304D45C4281374D725198060C08564D" "size" "D2FA1AD5AAC9A88F048C4AE703380BFB" "download" "2ED6FD6B3D6653D35749945690DFFA45" } "release_patch4" { "gid" "266B3B15F52418CC55168F330C4456E9" "size" "65781814403FBDC70333D783E0E88644" "download" "56DD4263DE71E24DFF964AF8BD9F3F99" } "summer2020_loca" { "gid" "B5197F5DE86D5575990E6047B36E0497" "size" "957421ACA0CD94EBAA96EC3D3F6D9ED4" "download" "FBFCEFA5CD712D0FDC05508E323671C6" } "temp" { "gid" "26CE6A5EF3BA93320AAE7AE78F4CC81E" "size" "6EEE321E3B3B8830F189563A5D700D4F" "download" "B4DD01799AF67B4E853D1A8771DE6319" } "testbranch" { "gid" "B8B1BB8711BB5758865CAE4C0DC4020A" "size" "9820031A4F0789D82490CD38283E331C" "download" "5E96EF6E4920D44926BCEA38BF3D7391" } } } "1086944" { "config" { "language" "german" "oslist" "windows" } "manifests" { "public" { "gid" "7716771822333365534" "size" "13511846" "download" "11697216" } } "encryptedmanifests" { "agerating" { "gid" "126EBB9C3D4513AD0149B393CBECBFD7" "size" "1A73BC8590467ACBE3109C0E16363FDF" "download" "B71C64576A8AB1C097D0B17D11564CFB" } "baseline" { "gid" "561E996EF91C9D2E348F59915BFA61C8" "size" "70AB7AC3690AF17DB4C4AE7130797FA6" "download" "900B594927500CB0F1CAF8DB81701756" } "ch_main" { "gid" "1E21B794EBFB12114AC65D3E327E2966" "size" "753DCFEC8C551003524306F24423EF40" "download" "96956F6EAD020DDCBB5D6AF6CAD3AAA1" } "ch_rc" { "gid" "32CF7E91F9837FF41258737BA3A95E3E" "size" "B2826D402F47B19512E2039DBCE2335B" "download" "278F469BB5F60A3470AFFDD54F5D16DF" } "compat" { "gid" "27E29C67452E01A9496C50FC35AD1B97" "size" "C61401D5A0109BEEF51ABAF1ABC05D33" "download" "43F27363708BB987055194DC807BD46E" } "dlss" { "gid" "4E443712500BAB3D7E4D6AA0D61C7B14" "size" "A8A87421CBBC7DEA6B92F5582E72F822" "download" "82C48A63C6E1095FE097259B7BE26E4F" } "mac_test1" { "gid" "E8441D7502234E5E74C247526D13249F" "size" "9C96835382D066B522874C9D3BA7E02D" "download" "FD4C87D18D35E60A36D5E35133A48EAD" } "mac_test2" { "gid" "87247FCBC6EE2CBBA06F1D45D06E6CB2" "size" "C582DB01D9E339247315F7DBF6AC9B27" "download" "FC11864B7E957EB2ECFD27055DF8C157" } "mac_test3" { "gid" "5488C73F601F47B3C4A0DBEEE4BF98F9" "size" "7B6B3330B1B7B83465350B28B6FEACE1" "download" "92C011C645622F46BA9F052F2C9417DE" } "playtesting" { "gid" "31327ADCCD1995EF50EB003E8BBBC40A" "size" "D61A881B35F84FAF1DAFD9262AE370B1" "download" "736916155F90D90DBFABD229D1BB1550" } "pt_bcn" { "gid" "791D5B0899F45F72C9BD486DC952247C" "size" "D0B2A177B1C56708814F4DC11CBB0AF3" "download" "A62303AFA43064A68B561C816C7D7819" } "pt_dub" { "gid" "14ADC08DE3E4237E2FBD281AFB14112C" "size" "E1A08EE7982A4751513C8C59DF265896" "download" "87FAF22D10D4D679154B1770644B0742" } "pt_gf" { "gid" "32FD0FCC7F967B6F8C0AFF9FDC958BAC" "size" "8AB482C646988B86BF5B21E679EB86FA" "download" "15ADC32E8AD3F0DFF5A997647B46B3CD" } "pt_gnt" { "gid" "9C70F5A3D3C1EF482F22222FE725D60E" "size" "A89146259699383F86BCDC2617AD25AD" "download" "923E91B13D982E878CE9B33BEC18E742" } "pt_kl" { "gid" "F71E35C6F739BDD9942BA5ABE308F963" "size" "BC465BA5A7C280A2E740E0DDCD0A13C1" "download" "F773C5AC2D9FF5B55493DCA19FD94079" } "pt_qbc" { "gid" "A3B65437D3959C89C15F356B5650E8D0" "size" "6E7E307691690B192379B4CB4C360A86" "download" "C0800E86D6B9CBEB3ECC1B79110D77CE" } "qaprio" { "gid" "C3C0476FBA0D40611D7D738029F8D5E7" "size" "8ECA343DBE3D710EA16C8DFC1F7AC39F" "download" "D365880EC66F0BE523B7F6AAB52DC593" } "release" { "gid" "CFA84DD236CD61A8A69CCB1C0E9B244D" "size" "6730ADE5B2DFFE46389630AA1CE8DB42" "download" "C02ACABEFE2E8DFFB5692DA2346BF54B" } "release_hf1" { "gid" "51B04F019DA3F17F1E8C5480995460E4" "size" "CFFA2347AC6256A727B0EBD42AC0E524" "download" "82DC0C90CBC2370B8923EF752D28BCB4" } "release_hf2" { "gid" "A82DBC8A50C66224851E0D9E5FB9B4EB" "size" "A872F4976C10CB9B6087E83EC3B7F1E8" "download" "B915376EA5E47E924C549EC781BBD5B4" } "release_hf2.1" { "gid" "DA70E36059B80704D9D0112C2B09644F" "size" "8E5F4D99FA53EF36E308A4B0F2DB3423" "download" "1384D04FC413E29BC4BF0CE96BDC4495" } "release_hf3" { "gid" "12BE0280ED6E81B56D407D8F829D69C3" "size" "6FDA9F1DBB7855BFC1EA9AEF0F21DFF4" "download" "5C268897815EEC5D5995417C584FBD83" } "release_hf4" { "gid" "451D1B3298C52D2A977EA15A27DE181D" "size" "6691CC84297FF40CB414F132B554669A" "download" "1BCB7718CA5965A9BEE9C1BA5DF6A722" } "release_patch1" { "gid" "5AA637B436459345854BB6D7C3174463" "size" "10B4FE1FDD0BCC4FDF597ECA9B9D5494" "download" "B5041F61330298A525305AAB50A1CB82" } "release_patch2" { "gid" "224BFE01A1590C979E41B27101B6734F" "size" "30923E9A79902098AFF7768CD5C01627" "download" "E7B8C314B3A823F9C1D4F885A63CE3C2" } "release_patch3" { "gid" "F3F615C5A524257D97831D185163B589" "size" "6D41C31EBA9B9667261CE6C4A10ED865" "download" "03C8A34DB0428AA35D1326796575F044" } "release_patch3_hf1" { "gid" "FF22EC9FA09A2CA62018AB429CB1AE9D" "size" "3239237BE4EA61483D4FC578E0C01C24" "download" "51512C861C144FA9C3082758A0732A71" } "release_patch3_hf2" { "gid" "E9F8E6E206D6955590CBFFDBDA20A137" "size" "2A6087D570B80402427CD57D550FFD3D" "download" "56D7C9E0C4F484986E16636D40A72784" } "release_patch3_hf3" { "gid" "C4EBD3A3CC809F5641593427C0759543" "size" "49A4C4ECE23CF448B06D25D26CAC4533" "download" "2A008510DC618FE3269BDE466F1C78C2" } "release_patch4" { "gid" "166AEBB1A42130A249BEFE58C78A4C02" "size" "490009A0E1D44AE7437BD421E8AFB28E" "download" "9138B6AB3675F7B130D73D4E3E9D7B2E" } "summer2020_loca" { "gid" "E58987133C94C4AF2DC372C27BA4FE7F" "size" "EC3664BAC6C9FBA2AD455E93FC925A62" "download" "AF2CC1D5F13D56FF7DE9D2028DCEA4F0" } "temp" { "gid" "145C963A552CA1AFF48DD856BDBA9263" "size" "36394803A17EC7ADAA693A0385CDF25C" "download" "AF8F9649E738D65FB3E9071823DCDA0C" } "testbranch" { "gid" "77647A887F29F06C128C8F3A96798D4C" "size" "B1ABF7127752018D01C6754278E08B94" "download" "93C6F751F66F1D01D2D11CBD073C6DF3" } } } "1086945" { "config" { "language" "polish" "oslist" "windows" } "manifests" { "public" { "gid" "3331576179541847055" "size" "14673065" "download" "12712832" } } "encryptedmanifests" { "agerating" { "gid" "F4549D79565A8F329CCB7DE530B16AE3" "size" "C2B0923AF8E569E7EF32DC584D203921" "download" "274FED2BD1EE2474EE3A94BDA9D302EC" } "baseline" { "gid" "7BC531FF90AC7E04705E54897A77B9BB" "size" "18ABCCB9CEBD5D511860208EEBC34AAC" "download" "62E8316CD522A02ECC8F796606506437" } "ch_main" { "gid" "5FB524A8FCAF2DBBDFE4E17C86FF40F3" "size" "776B8ABAEFD12BC1500619E199709465" "download" "DA42ADF4F2A7A4C78B37CE430DF15F34" } "ch_rc" { "gid" "259FC255795907647F78D0B4D80B288A" "size" "35DB64E1A05731C391DDD07BF3078933" "download" "5D03392D52109905646E759416EC0A54" } "compat" { "gid" "E433109CC24C677A271E02CDCCDBC833" "size" "E79F355CE9BDC4BFBD8373CCF866AEDC" "download" "D6E9F9D2813D832E70A42279C7AC1F13" } "dlss" { "gid" "25D99CEEE7582DCBC771A15F2EA706D2" "size" "6A39E5DF29E7DA09536CCB7469825695" "download" "6D2CE2C47BC74E5026358EEFF9AC5AC1" } "mac_test1" { "gid" "7E8B2D6235D043153345967FBB67FD42" "size" "A1411948E7188D8E90CD53D256C94B59" "download" "7CB7DD4F7692F91DF95AD5BA5BEC70C2" } "mac_test2" { "gid" "8051FFAB6DB4628ED0863BE46565079D" "size" "B155EB44DAE8FFD1E796987815E7B349" "download" "B93C5AC10E45C14969B59ABDAC5C680A" } "mac_test3" { "gid" "53A51768C5DE42231BA4DEC7FE54603A" "size" "0F312AD91D7D482B27D7CFDEA1D06B3A" "download" "D8712212B208EA0308B9301CBE463FCD" } "playtesting" { "gid" "21041081D537850D1D3DADF9734D8F13" "size" "04385DE7C49E173B0DBC5708CFAC952B" "download" "F0059CADA40EBFD14CEFF6D062A4D3B8" } "pt_bcn" { "gid" "2C88C9BB42C2E89331D11905B2560DA1" "size" "2AC5F9551EE5257AC182C586C8A202CC" "download" "84198ADFA0109D8DEA0FBF7902B5D189" } "pt_dub" { "gid" "6FE407C113B458AE9D847F47BDB10E3F" "size" "4E3871D554D87C687D10E64237EBB08C" "download" "B9A09ACFD24587D0CCB69A600228287B" } "pt_gf" { "gid" "F0F58625659DE4906CF697D706EC7699" "size" "E34400C1845249FED80BB6B7E7FEC924" "download" "79C40B15D0049DC8BAE18671426494FA" } "pt_gnt" { "gid" "4E73AF71F1A186B7AA351F6539636F1A" "size" "D822D484B9ACF179F35650D938C5A60A" "download" "83048F5E2FF60DE5636F287E70A23748" } "pt_kl" { "gid" "E26D36891E4D718B90C7DEF00A9929B5" "size" "91282080FD2785DDB970663C1CE90173" "download" "8B3BF41D50544E96CAE9712429CD0513" } "pt_qbc" { "gid" "56B9CB64F2A99F5FAB04A13C338109A1" "size" "E31989F009A08C8A1E4D286FA94F3698" "download" "5291C069390E7A4B21AF76309DF90E27" } "qaprio" { "gid" "123BDA8B2C46D811E64DCD2F4B8533F8" "size" "A78B97C1FD86B5246165406A231E421B" "download" "8C43567995AD3DBBC5F2BDB3667749A3" } "release" { "gid" "99DAFEECA4C06C0AFB732E3705A0E0AC" "size" "00FA9F7BFD84ECDCEB22C450EBDA4DFF" "download" "F99373194F612641713975F3453A69B8" } "release_hf1" { "gid" "42C2BD790F2597BEA6296BB5A2E1E2CB" "size" "538DB8C16D3B46480B337E503D0E15D8" "download" "5EDC2863E1AEBA716BE28FA95D9DD75D" } "release_hf2" { "gid" "E34830315EE963EC08870020739041FE" "size" "F7D74C514E40610BF572F85409BA9BB0" "download" "A5AC45FA6F29BED7F8CEFC11AB801470" } "release_hf2.1" { "gid" "2D4E2DA8F14FA746A43CB837B77C9107" "size" "2E2BBDB6906C03FA5F9747FE058454EB" "download" "758662CD7FF9280E48EB5CAA632397DD" } "release_hf3" { "gid" "437FBC86E7C921027DAAB1EF839BF540" "size" "2CC67F7D9A50DFE29C1CD036145B385A" "download" "315BA605A71BD19857317A7B3154371F" } "release_hf4" { "gid" "B295413A2AD2E256428EAE4F675AE1EF" "size" "0A55FC4A0AF14FC9BC8CC699C8EB50CA" "download" "DFB7F381D7C35F96617FA06CD5EEC32B" } "release_patch1" { "gid" "791F8FF5E8C9AAA4BDFE5E8372F6C64E" "size" "E906D5E8495C28CD321A789446F38BC7" "download" "17F28D23CCD1257088F606B262DA0B5E" } "release_patch2" { "gid" "AE1C01530DA3CCF68019FDC62D20DD76" "size" "965F34F2ED638EB4A3209ED44D81881A" "download" "37C2E6D8E5C82ED45A2D50F6718B2A7D" } "release_patch3" { "gid" "4CDEF9FEF959BEE4E137A8F07CE2FBB1" "size" "EA07AC79AC38764789663330AC01BCAF" "download" "516C9DBA305F14A233272A6F645578EB" } "release_patch3_hf1" { "gid" "19B7A4CF8D57DB32F260A6C2AFB785A9" "size" "F65DEA5289FA9857B7763C461E8B402B" "download" "5F3B8E749439045DACC918BF6C64AE89" } "release_patch3_hf2" { "gid" "AF3948C0352DC193AD371B53C60DA788" "size" "250EF83632B3B97DB74C005B702F017C" "download" "5AE0EE090C29D84B04B1207BEA6ABD44" } "release_patch3_hf3" { "gid" "DB8242E02E766706E55096310D3D5D4A" "size" "25F99C73818EDAF65A7183C33097E5D8" "download" "9CF7C4F92F86DBCB2D1C2E62D012443D" } "release_patch4" { "gid" "C3F9C3AB9588B8019E1F067D5B4A2E86" "size" "6D2A0C85BC0B6CB5FD99EE97C90F2BF3" "download" "73769ED0759C561D7F952560816E764B" } "summer2020_loca" { "gid" "83FF99B5553F73C875FED583BC300381" "size" "993AF352D9FCF71E16131E44EB097FAE" "download" "E52FCB94E8BBAF24ADAE05A1E0AC08FA" } "temp" { "gid" "333C610E649FAD34E49EA3FFA2FB7BD7" "size" "6773AE305BFF0DBAB53740E1AF10891B" "download" "07C52BDE5EFA315FCD1BA5A9B7424675" } "testbranch" { "gid" "55CD828E0F8DE861C0D144C925B80947" "size" "C6CB9ADC2295CAFE68B745107AF28ACD" "download" "3AE83872AD4A976F57BC9A3A9F188ABE" } } } "1086946" { "config" { "language" "russian" "oslist" "windows" } "manifests" { "public" { "gid" "7638415403314671008" "size" "15825391" "download" "13805024" } } "encryptedmanifests" { "agerating" { "gid" "CE969B88F82CCACB81988C1382D037D0" "size" "E2D090D14E9D8AEC1A9B92C1D24E595D" "download" "906CBD63F6D84FFD28FBB0FF03D7C364" } "baseline" { "gid" "B1D7CBDBD331AF080B755A85814EC2ED" "size" "2B7A1BF83E2CEF2A8096E33EFD48D90B" "download" "CA30B103B44E0B0D292DE856D0E91B50" } "ch_main" { "gid" "F6B8EE1E9E2D4A7BD866D816B8724595" "size" "B3F5E2331E1A32DF996C00B15198D916" "download" "06776BE707DB66B1A4281868C48A37A7" } "ch_rc" { "gid" "F4C131EE665497B4689002234D85D9A3" "size" "8591C8F323239F09CBB016EA71F206BC" "download" "40B5EC694CA928EAC2E769FD362D6AD1" } "compat" { "gid" "F0859886728A4BEF37E2B7273CADA133" "size" "15B1984913BF028B8250FEDCB8AB385F" "download" "F1425625A677FCC7537915008831BD51" } "dlss" { "gid" "E2F7CC7A02249C59190CE0B2D0FF02B9" "size" "2F268AEB60329EC9D8D9593EBFE8EDDF" "download" "1F7FEF6C1E828A5632257F784ABB6BF4" } "mac_test1" { "gid" "2FF0D3E7BEA21E3EC2980B6646913BE6" "size" "7C8878F85F6A3D10D72CFF0BB9209B67" "download" "7C18FAF13180CAE7CC5BE77DE576FD82" } "mac_test2" { "gid" "2E38CCEF2E36A366FBFF2BB043D0801D" "size" "EB839198B30DB702F0BB8F87D724A739" "download" "5B43952A223B91DF1B509864C98D32BB" } "mac_test3" { "gid" "5ED1B7C0C7E5D055BD776B4DDE72FDB8" "size" "329BAA241112B920C827B3CD7C1052FF" "download" "18D9EA1A4D9539E3E1F79C6159051822" } "playtesting" { "gid" "16DB2DC79C4BAB204A022E752517D6C3" "size" "926CEF713DB8EE14E19D8D46DE1A9113" "download" "DC0F24B4125773217323C0BF89EB029E" } "pt_bcn" { "gid" "8293A137BEB76FFA79A4AC692DA51194" "size" "9DF25EFDB77B5A497137A93A2A6C1A46" "download" "AA8BA8502FD56480B0ED9E81F280AB5C" } "pt_dub" { "gid" "E712F519640A2D8E69A0B8A121D0D6A8" "size" "71489A658AC81F61CE76BC91FCBBCDE7" "download" "F3BE200C61381F9A9EF9517824B5C279" } "pt_gf" { "gid" "B06152D8503180FEB9034C55996A87E9" "size" "F0B1619FBCE274D2C316F768678A30E2" "download" "E762A4148F5700C44C305CE0CE274864" } "pt_gnt" { "gid" "FCA5FBBC2268205722406CBBA0A09754" "size" "55034AB1DD26D138F27D13BEBE70DE7B" "download" "7C6A3AD168ED36D19C34379C11F6936C" } "pt_kl" { "gid" "C54BAE6E71E9909B8F65E5DC1CAFB187" "size" "044BE4D1BC0B75B9EC10DF22B4962E79" "download" "8A8C3B7235319D688340DDFBC566D82D" } "pt_qbc" { "gid" "0A266DA311176731D91F781C1CFDFC64" "size" "1ED1CDE394DD6351DC36A14D95C60057" "download" "D77A1F9D991B0ECACFBA14ED463B680E" } "qaprio" { "gid" "92BA20DC9255131621B1BDE0923D29D2" "size" "3D26550022FF7F1815D2AB2C4D67621C" "download" "FE6299ED7ABF71C2615F8A67411ECA4A" } "release" { "gid" "F33AD7F4BFB135BB037F857A60FB7BFD" "size" "D385A1B40A0AF2F31FE3FD98EEDC80C4" "download" "6EF679289AB4881EF0809E933E2F4BC4" } "release_hf1" { "gid" "11804B9A4811885F74BB1789933D4DB0" "size" "6CEA4258C60B7CC75AC3C2831A07E3DE" "download" "A23680FDDB542750E07DF3FF047B6715" } "release_hf2" { "gid" "E82F9CC15680BDF196ACAC3840CBD193" "size" "7240BBDD0E67598827BD8C637E953739" "download" "6D4CB4F0EF05D5F87BB2318EB28BEC67" } "release_hf2.1" { "gid" "36E8E802555A25366061601375124C38" "size" "B5269A7DBEFE0477084F2F9389CF62C1" "download" "DC842DCE2CBF1C32AA12F4F752AB8A10" } "release_hf3" { "gid" "11B27A059A835030DDB8644A395E28D0" "size" "6D75753B35551D0BA752A20F3F3AC53F" "download" "C1B062D53F144D4D88EA88EBA8807C94" } "release_hf4" { "gid" "7AD5B0AFD1CEE8E04950A6F8B60227E0" "size" "0BF560A05E39BFE7B33185C839154BE5" "download" "2152F8A21865F7A65F840B87C8ADB618" } "release_patch1" { "gid" "BC181C6CFB28F3AAD85376ED71910F30" "size" "F68249D670B317F42BC5497637B1A9F3" "download" "6017858A8A59E29629964A6B2EBA8287" } "release_patch2" { "gid" "8F81349A3152F7C309FEAAC52ED55CEB" "size" "95183A48EEE8F12C415BAFC7A4293FFC" "download" "8CF460C3F2ACFBA2DF7AE284DFECAC6B" } "release_patch3" { "gid" "FCF0879D73FC06D06C83CBA4BBAD4745" "size" "78A5429EDBB0712497580110321E7D95" "download" "88B42915A2CFF614E62292C2783EB501" } "release_patch3_hf1" { "gid" "57F3EB8D8049A14032475FAE30FB785A" "size" "4B319920D2A04F4873599197260A41A3" "download" "C30A1A3AF2501799F4960E09C1B5AEAF" } "release_patch3_hf2" { "gid" "35A3B9BA772093E1712D35F9AC015D3A" "size" "A53382DCF6B4F800B27570B64AFE4538" "download" "ABD3EBC9514C36B347C88965215D0CB3" } "release_patch3_hf3" { "gid" "51F94E76C17E154132EC5AFF5654D467" "size" "02751E7780447D91BA2249C3241A7BFE" "download" "EB8FCD95433EF7F739A4BB6EB512B68B" } "release_patch4" { "gid" "FD775F5F2B718CBED7FC68884957DF1F" "size" "6C2EC6266D92FC51EBE6D139639F377D" "download" "9FC09323790C4BAC391983A5592F1D38" } "summer2020_loca" { "gid" "97751EB09506DE33CD2C5B51F44B744C" "size" "434EA9C8DB6610A12E32FD8612FD178A" "download" "39FF5D914510105EB2D1B9256EF8C584" } "temp" { "gid" "6583CE9FC73DF1D5D48C9F3B22A0E374" "size" "E5D22DF1B37F4148C1FE86CC8C3B43BE" "download" "BEEC12226821EB441070038EAA30B668" } "testbranch" { "gid" "3987D7E48135A4791ED126AF09DB8AEA" "size" "48CE6DE98644B2985648F43B3F54C383" "download" "AAF090B71ADB598DC6D0C3853D0E8AF2" } } } "1086947" { "config" { "language" "schinese" "oslist" "windows" } "manifests" { "public" { "gid" "626830338642682297" "size" "23491884" "download" "20609744" } } "encryptedmanifests" { "agerating" { "gid" "E44C47F919B111392DF45812938B141B" "size" "0990E879BC4764448E7A9B123A7D98B9" "download" "D16817FCF0B90FFF018D7B9D5DE27F89" } "baseline" { "gid" "607C83995B73D353BC7861DFDC54E6E9" "size" "0C041973A317040EA29DDB50CF15BCA3" "download" "2BFD421D20A5F0C229A9BE8334103706" } "ch_main" { "gid" "81662110665E5D7830EEC042456796DC" "size" "785F585600A1547E392C10D5594DB4A0" "download" "1A053D14F75320CBACA5E6591A1727CF" } "ch_rc" { "gid" "1363B1FDECA4A1BB829259BA58E562A3" "size" "5BD34B6EC6D591F7FF390AE1935005DE" "download" "F0CA11B0C092F325D533FC22F3B39287" } "compat" { "gid" "9F524C99B40B2E4E086F731E1F963FAE" "size" "61FE9FE706212FFBA6524AAA1D9B458E" "download" "26DF6CB06D0AFA38D252196D57A1723A" } "dlss" { "gid" "AF12E8E3E2830F617DDA2B9F23C8B8F7" "size" "9B13A7CC6F84CBB76AC14C780D838F57" "download" "B13BECC0FCB0F688EF21F3549C857A32" } "mac_test1" { "gid" "8DEB96D02360741503AE710241D11DD2" "size" "24415FC92084DFACCF63F29C1E5C9504" "download" "BFECB04C236B9D95B42C3AFE3FD8B396" } "mac_test2" { "gid" "63C46687C1584522DCA1037962383308" "size" "EE4A7827A547F121E141FC6F447F4112" "download" "CA772AE836CEC95C311AEC56EAC3EA7A" } "mac_test3" { "gid" "BF223BF5A064FE4703D2515C1812D5AB" "size" "8E3E75152DC3835E1A1609D3358FE929" "download" "06D54BD6293E137827023C0952BA9735" } "playtesting" { "gid" "66B9A28F786CB0F6316278E4D5ED29AF" "size" "BFCA7111C3E308293E8B69FC4E1E8EDE" "download" "C8AFAA90145056F5ADB430BEFABBA52B" } "pt_bcn" { "gid" "9B03B10CE045BA37714BA3143A3F261E" "size" "0BCEDDF6D5A7BB6D56CB27D6FE628064" "download" "03CDF542ED3EF85CB775BEC6358667E6" } "pt_dub" { "gid" "868B9998F77D2328AA53EE970246AD84" "size" "4F4C8AC510479993145DBA7FABD8911F" "download" "417A91DF3E61B00B15D60A471A2E47D0" } "pt_gf" { "gid" "8E42A10FA2BB934363C8AA22E0E006BC" "size" "9A1FAD99C01E384E0659A26E5492F7DF" "download" "CBCEA7A3753306B6969A4AF0278D73D0" } "pt_gnt" { "gid" "57FAB71991D1EC1709222498E0BB7CFF" "size" "8272A45DF0B6D3E73AA0BA88775CAAB5" "download" "3F2D31408B9E731F1642E2380D485DFB" } "pt_kl" { "gid" "60788F11CFE588A12898C8EC62B29DA1" "size" "A954D48456125AB2F831162AF7551B7D" "download" "86ABFBE33B87A7D9FE2A45ABE3371509" } "pt_qbc" { "gid" "9A9E56173FDFB30843A95F07274969D9" "size" "4D37D4E56720E210E1C1DA0A264F9BFD" "download" "A995D932735D4F5B0ED0F340F46AADFD" } "qaprio" { "gid" "AD86140B34F0967EA453664CA25DB2A9" "size" "6A868E145B736A291372563D4AC2A2AF" "download" "8339E3949C5B2B5FA41CA29E88AC71DD" } "release" { "gid" "BE940FD3C96D74CE6768C6486783D5BD" "size" "DFDCEA8ADFCF6CFC1581463D7290C6F8" "download" "30F23139329FFA0553CA7552ABAECC20" } "release_hf1" { "gid" "280344F72E30F1795662A59A13B1FD24" "size" "AE72B913FAAC3C2671B8E8BDF8B21B45" "download" "4B81547E4F34448658C8FF050FE6A62E" } "release_hf2" { "gid" "47D82991A16BFC5D920C381EDEDE92F9" "size" "894CCBA055DF9550471A2FDC9840A7CE" "download" "DB01423A3729D16140A4B18C1752A656" } "release_hf2.1" { "gid" "BC659DE3E749C985DF1EF8859C2AB9D1" "size" "7FADF05DD2BBFF8F7333ACACEC38DEA0" "download" "95F0B1743273E018E91D6E82C643B3A3" } "release_hf3" { "gid" "3891F54622675722D18BC35164D4A48D" "size" "DE22F79219648C38F7430E528A2E80BE" "download" "E5C233EE29852FA786076D7154BDAB6B" } "release_hf4" { "gid" "C7268206BBB560878BCBB15C74A1B749" "size" "5CB49D777B97359794A4D8179104A822" "download" "37F25613E6C9748C3E2AB092A72D5B8A" } "release_patch1" { "gid" "58D3E12BD2399EFEBC30FF02B68FC1DC" "size" "C6746366DF58637075D0E12379292C44" "download" "E6BD38F447733C44A1E0492790D4814C" } "release_patch2" { "gid" "0481A99607AC19F8ABF07C0C1128600A" "size" "617DAC3C5DA49C80CCCFC876F62D7D05" "download" "E04C04DCC6D887F37E0708208AC60F5C" } "release_patch3" { "gid" "A0CF09C2A496144996270915C255FD48" "size" "25D6EA18DBF6DFBBA746CFE1D3AD2574" "download" "E7A0A94769742975B131A0A2B1B6AA13" } "release_patch3_hf1" { "gid" "83230F1D62EFE3A7263116C0D40FB0F6" "size" "2411855387F29B1F0A5C69EA0908DAE4" "download" "5088EB070030960DD2C054EB3E63E473" } "release_patch3_hf2" { "gid" "77B78B9009C53B5A246E67F65252B47F" "size" "B067F2CA8CA24EB796DFC070B7F04484" "download" "CA9DCEEA3ACC3A11314E6BD48E745F5F" } "release_patch3_hf3" { "gid" "AD387ADFA6241FA10058C37B5843A92B" "size" "83B98E36695E656C33EB81DCE4CB68DF" "download" "6C7E50C774003D8A6650A7366DC0F933" } "release_patch4" { "gid" "135E443C3E6CA386F53432D377AFA379" "size" "8E285C18CF6E621ED7940D47B20E1289" "download" "C3447AC9E2820DA017913370D7A7C1BC" } "summer2020_loca" { "gid" "67D89B7BBC9C41994EEFCC01B775F366" "size" "116173DE9A2CDF8155B2FDAEE2C9AA41" "download" "C294EE57595A155E62B199ECC47817E1" } "temp" { "gid" "78A47D83DFBDF1ED181F98A2CF3D6B2E" "size" "8B11FAC4A75148F1FB32B9182772AADD" "download" "E36C9C79142BB372219EF8D4F9D33E5A" } "testbranch" { "gid" "638664409E0B17C6D43393967270AA15" "size" "A7335810A00A37DFBCAC0B11BA6F7567" "download" "68C7E1B90D6FBBBD01E78FDE22EF7631" } } } "1086948" { "config" { "language" "tchinese" "oslist" "windows" } "manifests" { "public" { "gid" "3867897012063273051" "size" "31942153" "download" "27821648" } } "encryptedmanifests" { "agerating" { "gid" "FA7799EA6856D992901A049095A845C4" "size" "EBDB0D5CC931564818F6D550DCE64CB9" "download" "2C5C003DEAF55FA2494D47F1943B0D81" } "baseline" { "gid" "51CFDB92826C00EB42CB3B0B8AB71160" "size" "652E4E1267A416EE5EADF4899AB29EEA" "download" "EE6406926E9E03EC694620B34F4E2B6F" } "ch_main" { "gid" "936D0048ABE22EDD23313D76943E98F9" "size" "EC97ECA22135E5B7422BDBC28673C4EA" "download" "0FDD8FC6AA6C16507ADC3B6B6A8B7590" } "ch_rc" { "gid" "05DB3D35EC0F400F8A5D0FC180926ED9" "size" "CA5A2D4246557C36A62D8C7B095F5CC6" "download" "FE1801745D1C85D43AEDCD519E12A18B" } "compat" { "gid" "E7EC5FDAC6E437DC5B0046A00C74B6DD" "size" "1F11332613B75A4CF68939F69BB32F2A" "download" "F20B0BD3368FF6C41850BBF192BF072D" } "dlss" { "gid" "1B20102757D467E1D141503AC124B3CB" "size" "08BA17BA397FDA4B5E5C64C389E8218F" "download" "E59B7E732F2CEABD7F9DB13EDCEF21D2" } "mac_test1" { "gid" "3A217C032F00CA75C507BE0896DFE8F7" "size" "C75374E41F364B18B20F7369D85F342D" "download" "C75374E41F364B18B20F7369D85F342D" } "mac_test2" { "gid" "C5F83E6B93B3144A9DD8DC8DA63E4DE3" "size" "634E099430E76A46445A08E512D942AE" "download" "634E099430E76A46445A08E512D942AE" } "mac_test3" { "gid" "F67DA137965600A952AB3710677B3574" "size" "7A4C880D4C7541300FEE636C6976E8B8" "download" "F989A31D7F339DA5F4D0053ED335AB59" } "playtesting" { "gid" "447F594304B211CEEA0D1C5531B667FD" "size" "09950BBA0A7F202813CCC0598E19107C" "download" "9A1753882197BF8D1719DE69B52D2198" } "pt_bcn" { "gid" "25BE899FFBFA7F20318CB3180DE26A80" "size" "A145BB7F92B52D77C59DB4BC43227AD0" "download" "CF37D754C50C8BBEAFEE81EB082DD9EF" } "pt_dub" { "gid" "ED7786C95937F5A9A2A3FAD7D1275341" "size" "A4BBC68168580E14897CA44250979CCF" "download" "7C17382021C22B4708C0DABAA82BACCD" } "pt_gf" { "gid" "3222AFD2679A22BFB70C0EABED4511ED" "size" "C45DA2870A5249DC47BEEAFB1F4CC0B1" "download" "D794262A0D4EEF545D260423F7CDB1CC" } "pt_gnt" { "gid" "B4DDE1E841D3FBF17E8627916B1C544F" "size" "45160F2B93F751E2E7C915ABCDD1CB61" "download" "1B00D0FD079C680D72B1B8F5EAAE4962" } "pt_kl" { "gid" "76EFC1B2A8DA2EB6467BBC929283A91C" "size" "3060A143F78E0CBDA7D013567652F916" "download" "97B0C867B11AA06B5FD1BEBB979F2393" } "pt_qbc" { "gid" "20E52F116B87B28C460B52CE30774497" "size" "3C2AF79A03B0DCBAF267200E6A7C92DA" "download" "07395527A3E5B25D2B7BEC1A29A0622E" } "qaprio" { "gid" "8EA35E07A136B72CB6B2F697D4CFADB4" "size" "93416B20050434CA87DF04738F8A875E" "download" "A852F11B06292DBAD596E0F803FE1B78" } "release" { "gid" "F9771A7DDFD3BC565D515BE8CAB25C42" "size" "0C108F939FA17C999CDC9F8D4292C365" "download" "3020178883775949C8E1DDF50802FFD0" } "release_hf1" { "gid" "318B68EDDC5CD64FE4A11CAA7EAA7E3C" "size" "7CF6A8F98195F1F351544DB096816830" "download" "9E0FD6FC17477F7C6EDF43FD3C3A0E80" } "release_hf2" { "gid" "1B7B54EFA6C7356FC50E36C258B42A3B" "size" "8C5C33952EA85407AFEBEFA8B6D37F9A" "download" "22C3EFFB3954D82F51C205F89679332A" } "release_hf2.1" { "gid" "96177D0F4F692CB1410481FE0D6DD8BF" "size" "74D76484B39BF0D324EF6DDAAD159CD1" "download" "6A12ADD723F91B2636C885426CC6F2ED" } "release_hf3" { "gid" "C86DFBC0BE84442E9CAF60265487DEAE" "size" "718D284F7C7C9D2CA496EA6FCB147405" "download" "26CD3A22807BA265D5F2E63353674596" } "release_hf4" { "gid" "429CD03C6630A184AC2E816396871A54" "size" "D9938AD973E4C999155CC8FDC37692CD" "download" "9F09956762173AF4E9D380A5A037DE06" } "release_patch1" { "gid" "ECAB2DF40EA9A339D28A30C61ED1CF5A" "size" "B97CCBC074A4A77116C6B282472D8757" "download" "464B5741F3C76A44D13FC2CDBE9CBEBB" } "release_patch2" { "gid" "F947D17495394ED4C04ABDDDCEC2D163" "size" "CB05A750220C0DD2E62069EC2F3D7259" "download" "5BEEE4A25C0C857E516D944692084160" } "release_patch3" { "gid" "3F9BA45538854798DE1C5FD844F7245C" "size" "CAE6F8B1F3006A5016DBE397DDCAC9EA" "download" "1E52BD3569772FE51870B4EEC573B279" } "release_patch3_hf1" { "gid" "16171535D0081054F737D6AB52E3762A" "size" "FD978EC062B8A91A3030688473B19C5E" "download" "8A98B984B4614B210AC66604D84367EA" } "release_patch3_hf2" { "gid" "89F7015D95F6D8739609720161A2B0E8" "size" "BB4AE8D3E18F388577F82A4789DD82E0" "download" "D05810C67D3A6733AABAB39A7072C324" } "release_patch3_hf3" { "gid" "99314A05D119FD54BFD175B0AA95DB3D" "size" "8C968376562BDF593F573BC42B737F19" "download" "612F68315552D408A90A1FFC54846B69" } "release_patch4" { "gid" "4356667210B82D0D505F071188BD5EB0" "size" "3AD3DA02B6052BA58C13EA45AA6749B9" "download" "C969C05D3004337D59B8298E36866102" } "summer2020_loca" { "gid" "48A73F3707AC9F0A4F35AFF20126A41A" "size" "0A64E09DF0298485D18B5C25613952F2" "download" "A0873F2539D2BAD4E234A1F9190B4286" } "temp" { "gid" "418BF48801EB171F6C320C3559B4F62C" "size" "0219320DDA8FFAF461AA64642DECECEE" "download" "5B176EAB0BFC8F8053015250F4ABAD61" } "testbranch" { "gid" "A33EC4148C2527B156F0AA462BDB3BC5" "size" "132D5C86DB7B6FC98739F47D6D55AA54" "download" "AA9EB70A1C07A5BE5B9291A1F8B37228" } } } "1086949" { "config" { "language" "spanish" "oslist" "windows" } "manifests" { "public" { "gid" "5307061479641271926" "size" "13610778" "download" "11726464" } } "encryptedmanifests" { "agerating" { "gid" "5A132E82D8AAA72BF80231FD94B20DA7" "size" "3E01F7BA98D91986C7FAAAC6D9705096" "download" "CB9D9EF1A0DC6FC6B4705D9DA94AB398" } "baseline" { "gid" "34BCDC6A11F61DBDA41FADEA3826FCEE" "size" "4738E11E426EB7AC0C012D4470A8D567" "download" "173068F02DEC4E8EA6F0E1746FB4F071" } "ch_main" { "gid" "1B607689542C345EC3F033BCDBF1EEF9" "size" "529D9F5575FD5B8D981301A461B04993" "download" "F825BE967B73123C661C0270F190AF8F" } "ch_rc" { "gid" "EFA588D1E579F8B805F0617A2F0BB98D" "size" "A3F5E00B864F6A3271FF01B675801A55" "download" "536FB75F001006F2A2C8DCA020AB63E0" } "compat" { "gid" "68302271D73725FDD2E9B2BC6C8AE374" "size" "03C0D4B2769578B234B42077E479FC91" "download" "009092B7FE0F7D5DA34496792EBC2002" } "dlss" { "gid" "ED980D4E4A1398A0BDD75C4B26F9F92A" "size" "D007BF4CFD831005D165FDDED51F92E2" "download" "FEA55261322C421D5CAD7B0F73EDCB3C" } "mac_test1" { "gid" "B6155FF4A0757AF84C1F57B8905ECE7E" "size" "E65F71091C6CABA4A814DCDC77C9C577" "download" "D4EC5714D98FADF7CFDDB22BEB245C20" } "mac_test2" { "gid" "8147748519CD0DF2CBC1028781EFAB6E" "size" "807AB0CDC7AF351AA5840882B67F69D8" "download" "9D10536AEA8A5C99A7B30C8A388DB04B" } "mac_test3" { "gid" "24A5087D22ACE7CAF01A02CFEFFEC567" "size" "E977A3D22A189EC004B90E9E44F53512" "download" "FDD3D7C9804AD038BABC9545C4021448" } "playtesting" { "gid" "0512736FAB0499416ADC580A08DB5E04" "size" "C53E2B5F309638DD40F8E43F6A7CFEAA" "download" "C3FDF826BA2B175A68FE2F9CA89331A4" } "pt_bcn" { "gid" "88A6E7EC0F91892AA9D85D1D3A0BD40E" "size" "A6AACE7882B5D85E6A1AF81463F788C8" "download" "59CC01CBCEA203E1EB4DECE8F99FDEFA" } "pt_dub" { "gid" "FFC179B83FCC61249AA4D957122B21F8" "size" "11C546F7054B4717FE4E229FFD074A36" "download" "74A5C04FC1843D85FCAA38DE8F569BE3" } "pt_gf" { "gid" "1A23C7AEA5F4B8805FD327B45B9A1AE8" "size" "D0C28313BFF7C42A31A3F7E1637DBF15" "download" "54EB08A85421D9B7DB7AA642157892B8" } "pt_gnt" { "gid" "C68B860FE08B01AC811D9C4BD633B85D" "size" "C751A5F79BA62E97597EE82B2026023B" "download" "1C9AF5C654DE42DF5DF06DD675150290" } "pt_kl" { "gid" "0AA66A50C12AAE0A6957FD6AB9B00D5E" "size" "536E651DBFC77ACFB9153EB5912522B5" "download" "25D2100A651DF95CC15DB1B2EB26254F" } "pt_qbc" { "gid" "BE2E7A3030FE052FB24A41D9CC76C97E" "size" "53822C43FBF6E367FF6250D97CF877A6" "download" "22601B2B60078EBF836E896E4A7F2B93" } "qaprio" { "gid" "12BFE4088A3AEF49CF3E8E563C13C33D" "size" "FA9782274C1A8D813249DAE4ED7B4B8A" "download" "623C4A48AC05CDD51F916BC701A448CF" } "release" { "gid" "0F8B51F9E2EFE2B993378FA3D0974476" "size" "618C01D392DF9B406D0B4BD9F8DCB9A6" "download" "4FA5F09434200E259452497928E0245C" } "release_hf1" { "gid" "B3460D0C0FB531670971411EE15EA5B6" "size" "925E90E3B9FCB8AB6FDB59199A6EC95D" "download" "C41BF4D2E469E57956F07141724513B1" } "release_hf2" { "gid" "26E98C418342E6D5586B3EFDF4E04D25" "size" "9E4318C784281F78672652B648C28786" "download" "AEA2322A981212CAA7B258A6C9891924" } "release_hf2.1" { "gid" "8BEF173BA9F6E5AFD123C723F054A76F" "size" "831B1998D47EAD126CA9310B7420BBE8" "download" "600173FB9E83662AFB50E4C926E0F8EE" } "release_hf3" { "gid" "8776E8AFFA7E8A29B9CAE1AF0BE4C807" "size" "D597C9D3F3204A68B5D40E4DE64FC8C8" "download" "8D0831FFEE486CB4DA6449D540FB565C" } "release_hf4" { "gid" "6219A3E3E272BEF877B32BCBF16DF9AC" "size" "B09B82AAD0F6930E00451EBB7487D7C4" "download" "DF37810CEAF79BE4C051EE562C67CFFE" } "release_patch1" { "gid" "899A95FBF107D565AA3D443B7B7F9BD3" "size" "479116892AEB7DE8E6E26477673907C5" "download" "E564B7D4F717DA14B35F068D791E06AD" } "release_patch2" { "gid" "A54A802AB3B4633E7790D8B94E77A1FE" "size" "FDDA379D646CAF5CED28E55F292EF88F" "download" "68EC3109D79D20DC0967B36523AEF982" } "release_patch3" { "gid" "30CA03FF5DA79C770A1826E4ABDB1BA0" "size" "73A5079F93A6D95A8A8D64EA4576FD57" "download" "CCEDB5E1D87678BE2EEB60FBE3D42DCC" } "release_patch3_hf1" { "gid" "2CA7BA7B895AAD71206B70B1F9D739D4" "size" "CA901102148F1160E489CBDE52978262" "download" "D9E2EB0E23693F06878BE2E928CA4B6E" } "release_patch3_hf2" { "gid" "F366B5BA4DD472898A0CF3AAC3BBB00D" "size" "CAAAE7D7BECE209D2BFF2B4BB2B171B2" "download" "D004C303A1373A1890ACB2C871CD0F55" } "release_patch3_hf3" { "gid" "938334EA83D8A7E578AF396A5C9E6C06" "size" "B281CFA92762DB399903B9F402543E55" "download" "AA0CDCE2EBF211ADFAF6DD5A9A8926FE" } "release_patch4" { "gid" "A7BB43109721C42520DE30DB55C5ED18" "size" "C0DEF5361D2D7CF3D3ACB8EB90F2BEF3" "download" "F698757FD840A9D8ECCCFE505028A4E2" } "summer2020_loca" { "gid" "4DE003B67AB49CBB6B4B66A5E2B29EDD" "size" "F6FEE30F0FF1CDF29F217C46E70589AA" "download" "6FF0F42EFF5FE0615DEFE857B293B817" } "temp" { "gid" "7ACF749E0B6E6DF173C29325C88E916B" "size" "7866C1B4519D91B95DB6139FFB3D1AFA" "download" "EE7F0E0EC61337870FE1F36F81327787" } "testbranch" { "gid" "C631C2F17F2D399644CC3D6DC9E67092" "size" "4F585241FD5E5A04D97ADD5099DCD285" "download" "2BEBEF9CD87AA2BDAF4EDAA9AE386E4F" } } } "1419660" { "config" { "oslist" "macos" } "manifests" { "public" { "gid" "7928495372307669987" "size" "130962007014" "download" "104867589904" } } "encryptedmanifests" { "agerating" { "gid" "DA5666BDF17D76C836329C555B05E94D" "size" "361C4223B01B1298812B4512438B4171" "download" "F2C6701E1859F1F8D7A7BAA9C0DF16C3" } "ch_main" { "gid" "E9B8C4B7A1C15190FC77A010F6223DB3" "size" "023F7A0C8E3BEAA8E73361BB11E716FB" "download" "04E15CA17AF9B8B5AA6313A562890971" } "ch_rc" { "gid" "C77E7DD81C3FFC7B44D410FAFFFD0183" "size" "097A902C2FA8198A7EFD2CBAF1FCC8BB" "download" "B8B41A63B41CBCB0C8B8D8B1DC80F7D2" } "compat" { "gid" "085B515B6716577C727000E3B838A786" "size" "62D20CF8868FF08F9B771A2F03CEB6BA" "download" "23CFFA0885E53C146E0EFC9AF7F9D9E9" } "dlss" { "gid" "D8CA8973CFD531BB268EFB2B06C13DF8" "size" "FB475A7B1534D965DC5B7A1F8373D6C9" "download" "C3215EF759D48C404E69DDC87091FE91" } "mac_test1" { "gid" "0142F0D989EF0898F2CDCE75374CF464" "size" "2D48DAF3A0B0C9D2ED2A6137BCC0CF53" "download" "F5F760EAB9477C05BFC5F7AC66B8842C" } "mac_test2" { "gid" "A032221DB5639118D7E49CBCA073795E" "size" "C5E9858FD7798C24C264D73543FD1602" "download" "0BD20F1377084F172C8C16923FB8C3DE" } "mac_test3" { "gid" "6A784F0C6133751B027463338AAF74C8" "size" "41D1C4CFBBF8C198099DEF33B9181A97" "download" "98FA58310E5E3C69C8F357F2CB348FA7" } "playtesting" { "gid" "4E7A4E2D2B5EFE9D6757A9F8BA3E1C2D" "size" "4CA5938ED6D33506481359E5464BF0FA" "download" "7BD74579D642F81EB131B888984565E8" } "pt_bcn" { "gid" "CD6D339F1EA2DFB76BC58C39B29B5CCA" "size" "63B923F44D1E9629997C783A33E40110" "download" "961E04F1AD3D57A2A8C4480D2B273A4F" } "pt_dub" { "gid" "DF0256E78E6847F5CAFFE319A8D5ABE2" "size" "881EA17B60DC0AB84A85AF4F486F0865" "download" "CCC93A0F0D015DAB0236244EA7A69414" } "pt_gf" { "gid" "2F8C64A0AB026113D9252C109473D77D" "size" "C3CCDB6BFECC61B62CB1EC6648228C8B" "download" "FF9F9A5818E7736C9B39A5D98BE79B8D" } "pt_gnt" { "gid" "F8795A7A297751E1D3FED622E30A979D" "size" "7912068EE69AA7900DD779406EE392B6" "download" "DA7B1D5BBA73D7343510F4B3525639C0" } "pt_kl" { "gid" "A10D9A2971C05B5A4064F2A3F706C581" "size" "60910893FBCAFEEE2C15E957A7FE109C" "download" "E030702AF1DBA8FA3479EE11CB40A03D" } "pt_qbc" { "gid" "5BFC4404C819592D4FEF7A6C097C702B" "size" "BDEBF28A608BD9432E9569B9E97E819D" "download" "477450A28121F70C8753AAF964FAFD2E" } "qaprio" { "gid" "AB998BFF9CE7ACC6D9AD51A62E4B1A09" "size" "86B6F331F0E87ACBF4784727DFC287F3" "download" "D2A188DB1EFED4040A03E90E46E1E01F" } "release" { "gid" "2C150654BFEB844D46A567F0C97EC778" "size" "991504A0957589564AECDE7E415A12E4" "download" "60F478068022C6C0E227823F7D367176" } "release_hf1" { "gid" "B98975AE7E7A8A48FE5E16317932D4A7" "size" "008A26D176E7845D54EB4BF01AF5F953" "download" "1003E89BBE536BB0A6377BD403C28809" } "release_hf2" { "gid" "945F6A07F3AA08D359466FD9D58CD27D" "size" "F0225A71D728565A96D052A67986C9AE" "download" "211A3328ACCD13B1CAA6A7D8493EE0AF" } "release_hf2.1" { "gid" "09D036774C3BBF4247298E175C856097" "size" "ABAB07A6D243D9C97E172FEE4C68B9C8" "download" "CDC96F0915093A3B76FC9976E3163E9D" } "release_hf3" { "gid" "62503B12BD6034C9575DBE5DAD4354CA" "size" "AC7F5F1BE2DFC487CF67AC212428F17B" "download" "2FBDD3F75BE7860DCD5D0CCA0268E49A" } "release_hf4" { "gid" "BD8D5858FB42310C1FFD2B068B3B2CF5" "size" "6DDC6569B5133B1C5D5B3C16B17DBB6D" "download" "FAA2D6161AADB0EBA42D8F3C8C9ACD88" } "release_patch1" { "gid" "26A84A83EF8F3FD2FAA385002090B4A5" "size" "17D72481803C0037CA1CC1D1D1CF2D87" "download" "BDA17C1918745B1125B05BD4D5D66F57" } "release_patch2" { "gid" "FDBD7488D71D0E67FB75A746BE52B00D" "size" "06A1CC0B3F3F3220A681441102059452" "download" "D079A05B20EFA5877F070F93ABC11470" } "release_patch3" { "gid" "64879D67024032F336B47EBB88005132" "size" "A33CBB10F30AB90B310C523E6445C2CD" "download" "6F3CA8C9B53EA38A7A8CF15F26874AC4" } "release_patch3_hf1" { "gid" "83B7633A707793AF4D293FDC9D9E0416" "size" "5373264FCFECEC74B4196AF6CE247F00" "download" "400A1C82653CD59E47104A873081F4B5" } "release_patch3_hf2" { "gid" "2B683C6043197E7F0CFACFBA83B7D50A" "size" "0AD045374C7A02E0C81056E895114A1E" "download" "EC8D7D65B81ADF83D6329900A9563032" } "release_patch3_hf3" { "gid" "AF907672D3085BA8B0D08A309CAC2B36" "size" "6601ABB5BB8E4E28D6E45E2DC591E89C" "download" "2D08CD04E480812B71216D62EC4B5355" } "release_patch4" { "gid" "82936023523507F701BD304982B61446" "size" "5F9066BB18C34CAF6F49943DD1A46785" "download" "FC3834D7DD9703DAD5C9E9728C21DB08" } "summer2020_loca" { "gid" "F13E1BDC6247854F06BE3956DF1B2FE7" "size" "A0C933D039A6979485E6928962CA53B1" "download" "05700145F55514DB61A0BA87CE56FA9E" } "temp" { "gid" "2BF7F6D99784B06F316DF02A56EC678C" "size" "1652AF41638AC5680AC97491C5061BBE" "download" "18C575C4D26624462559B09067E5F282" } "testbranch" { "gid" "7E48F4BE49850551CBE492FF81BC1C08" "size" "64BA296CDA8D0E74E033A6808CAB9B08" "download" "B53C820DA8D70EC7C78F5D9080D2E1B1" } } } "1419661" { "config" { "language" "english" "oslist" "macos" } "manifests" { "public" { "gid" "4191530919188121973" "size" "574" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "7B944E6CCB8445D61AB8B43523C8381F" "size" "6BBE51463054AB0DC78083FAEADE8DA8" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "269F57C309B30868BB71282804C229A6" "size" "9FD74F0E6026B580D44BD2FC1977DC4D" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "0C87A8598962F2740997547442843971" "size" "BBCA0B1365B8686211E7FBCE914B2A93" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "EA0B8FEA7BF50F807E6DB82329957652" "size" "1FF1B6936202380A34BD6B56C0FB2F64" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "8CDA1D961EA425B6E7BB2AC52D8B15E8" "size" "4C56FACD324964161F241B2BFAE16774" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "3FF7351466E504B280C11E687188D237" "size" "C48C1D89D0FA794F1B42EF0F92318A95" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "987F17FF5C533DC9C153B88CF8F8AC6D" "size" "5E8C152A1C2B00BA7D2D734342936716" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "D20B0237FA36BE12708CF00A425605D1" "size" "6105C8897C956C46ECD04F40A0179DE9" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "4CC55FE9A9B50416D4258EAB147007D0" "size" "6B282B824CBF095D9B18C1D351F8A759" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "712DB84B5A6D9BE260C6FE9CDCC638FB" "size" "DF087D2A915D9C9444861492E95AE741" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "3A44C733C73BDB3AD12B4BE5A1DEF96D" "size" "1B8FB8AED420D669F211B2459D6C82B2" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "6C40551456863D4B5F9B4214C0F51F30" "size" "C361D0E81B0AA58F48AB68DBAA1794C8" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "3F8CAB52C6CBC30B7A6EBFD858EA9DBE" "size" "DD95D9B05C89BAFDED61DC4553A4920D" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "3A0A8CFBF338939A93807C81CB1D09C7" "size" "0B3889FCE7BCFC108FD7FF763B659874" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "D41CD7F5300AA3DDB58F72647C6AB74A" "size" "2DFF7DEE7F4148C9FC75D7DB293ED201" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "5BFC3A7F8E9B0BD91083D4401C436664" "size" "E7AEC9569A0EDF07556ED2F6F94491B9" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "9DD68C01EBF03F18CAEDF9CAEBBBD4C2" "size" "2A63767AEFD8D6A55AE328069F23A9D0" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "381DE4F977B563CD1A53079BA1D37F96" "size" "247B1F904DB8D7E4E1FE5B76C8B80371" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "10278C9A41C9E1C6B26631367663B142" "size" "DC181839ED9F92E0741D697BE63E5B08" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "0E1C19C1FA04107A58C03888050BFFD8" "size" "77E22B5190F3D7F550EA216DD5F7FEF6" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "7C6F44C34EE0544FA8B37BA38C4512AA" "size" "158178778ADDD5EEA804BD865ED3A4EC" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "0D88BF2010038BF52933527C13162789" "size" "2BF344E37EBAE402FE51BFDB120A15E8" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "029E5102FC981E2D3EEAF252AECE9503" "size" "3EC532F47C77DC8C99A7A38752D89DE7" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "B32358DAE19DBB7707765FF5A915387A" "size" "40B44703D11B553EED74E074AB3FEC18" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "1BC0326B749EA45DFBA25CBE977511D4" "size" "AA0682B41F137D59808016594525404E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "E91848FA1013EAE88428E88607278E4F" "size" "6397833D4E97353C6B4EE91599FAAFB6" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "E5DE627328B5F1934664BAEF3408407D" "size" "F4BE13E10A34F3ED4F6B8107FA6A240A" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "595BD420C5EF322A44DEFBD5E4E7165B" "size" "38D095AD9D8386181A1561EEC78DB40F" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "B119D9446277E7B91E464BEFBD3A4B37" "size" "D83726B9B58DA7DFBC18F7DC67638BD9" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "D8ADED181165C3D3B10BA154ED9E3F87" "size" "7337C3F67B69124C4F584E55F7A05D76" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "766CE56F1494DA76A260FD1925E1EBA2" "size" "AD9C7008B79B05918A3BDFBC93B1AAD7" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "7EED344A7DB59D70BDED9863C29CEEA7" "size" "5336E2B9C882B464CA133DBE874802C5" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419662" { "config" { "language" "french" "oslist" "macos" } "manifests" { "public" { "gid" "155056616988897828" "size" "572" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "C5499717220C2A3DC56234019974BD59" "size" "8CA612E406B8C60B9E70F76F6E598DEB" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "5A085071574EED004484BCDEE8B8D55B" "size" "8C9FBF06BD9897E135BA82D38076D2AA" "download" "25FB844F10D78D0399D8DDAE62F2EC8F" } "ch_rc" { "gid" "227CDC432B69AA4FE3393BCA360B8F94" "size" "BCD39907A16E216AFD6266644E6F175F" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "CE2B63D960D275449B638E12470E9DE9" "size" "6386F6F3427E6BBA3D83AF9F038FBE95" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "524901B2685F543B549D655BFF4A8E12" "size" "D13117D9AC274FA320CA64DF29C19905" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "6F1F1A0024ED6E2AE2B3367095EF358E" "size" "E414B6431CC1158A631B8D7C4B5A183A" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "99E27644A1CD821FE8C037EF860DF66B" "size" "0928C86FC231EEA8E7B464B8C2553635" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "35CE33666D6AE11FCDF2090A5BF4D1AE" "size" "6FDC85A68A1A461E16AC1AF57F109C4A" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "F405C2E3F0C36339EE0B62998CED6056" "size" "A971F48ABDE2D6BF6CBA778034972ED1" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "C22EDD0868701B1FC10A7454273E1B63" "size" "E088BA9F1542B7BBF675AD622A76D261" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "F830DF002DF4D9B75C6193D2422A7A69" "size" "19B638DE94CAC47A26F97605E5BCF751" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "205A22D18E368973112DE3906F3254B1" "size" "7F0D387EE8492363CE1A70670ADB288A" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "3B785C36CFD9757088E3287932733D33" "size" "91E638D858F18C5908176F73E1CC47F6" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "9E646D86D08BC056E63A9977DF9BD02D" "size" "0AA7A411121F2C42C12E77D9D173A6AD" "download" "97408B23D5CEC6E0BCFC4B463DA9C09E" } "pt_qbc" { "gid" "07083C8AC340FC88CDF7BA55F5A602D2" "size" "67FD9387D64DD757B260B5A5E2B382F8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "4D649E34E8DA44AD28EEDBCF29E6C05F" "size" "F06AA3794E020862E37EA05AA9E65E4B" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "5EA6F7E94F75EB89FC8390A51D910B43" "size" "48662EBB51B5124B9E00D67D56DB2B7D" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "0FE2B0F75C683C33137EB82AE7D1599D" "size" "A2316249CC4788390A2659CC9D809AD2" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "D45D56C8667305B86EDFAFB73D72B0CF" "size" "65BA6A708111512D84127FBDCB3563ED" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "91624595C383CBF2E00F9E9449BA34C9" "size" "9CE41972B666EBD5EDD030C08A385AD0" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "2527F6F1477DF7A2F7FB2B9D9D43D028" "size" "73258E06F90DE15631E533FD3CD1B8B6" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "01691A5BED3CF0C4395A0A7BB019C1B7" "size" "1A41B6FC4DB6FB71C8052211B773B815" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "69C7EBAAAA7158517173C6AE468AF87D" "size" "C56FA22C9669DB96A293264ACA648138" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "EA54BF8B0CD1F000B6183F62E3C1C019" "size" "5E3A9F3CF3B29C8FDF6734AEAC9DB0A0" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "D5654BCFE85665D8A5511ACD98C1DC68" "size" "EA1097B8C304D469FF1D6D6D2AF5831E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "A05DAA4B58510BCD84974195EA81D626" "size" "80FCB7FF0CE8233CFAB01D22AC8A911B" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "86B4E53789F23ABBB34AF3A663CCC9FC" "size" "17A54ED7CB83CB45F5C535541E84577E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "B382A384DB35A101A710B2EC10764B1E" "size" "D353EDC55BFF58FFDC01F9C6E059B080" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "16BFDC69D1FA7D562DB0DC6BFDF8F3AE" "size" "5A6ED9FAB9D206A5389B4EF8DEC88621" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "223B465203D9E60D62C07D8C696C7178" "size" "F908B4893B5C271566201CEDA7783338" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "C4B77A16DBF358267DF6386CFC6601FE" "size" "A404017A2E9479C0202719B88EC4EF7D" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "5B2EBBE49541D8278A1C75F1BB7AA734" "size" "86F1F49B0AA837B5518AEBD30CCF1BD2" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419663" { "config" { "language" "german" "oslist" "macos" } "manifests" { "public" { "gid" "723954999732581088" "size" "572" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "B7DE90A01EDD0FB0A24070561AC67123" "size" "8CA612E406B8C60B9E70F76F6E598DEB" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "43905350D29AA2419B9FF6EBA5CA2E2C" "size" "8C9FBF06BD9897E135BA82D38076D2AA" "download" "25FB844F10D78D0399D8DDAE62F2EC8F" } "ch_rc" { "gid" "E93197298E6DB239F25389A7576AF8FC" "size" "BCD39907A16E216AFD6266644E6F175F" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "7A4CE48D26544E087F964A3A99BC074E" "size" "6386F6F3427E6BBA3D83AF9F038FBE95" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "7292253764E8FBC6D1C7C09F390440EF" "size" "D13117D9AC274FA320CA64DF29C19905" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "8D53D5399170CD22DB2BAAB2E8A58CF6" "size" "E414B6431CC1158A631B8D7C4B5A183A" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "98EDDD15411BD58F90C881F3D5A9591A" "size" "0928C86FC231EEA8E7B464B8C2553635" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F83C736E4D43CEA93079C84797BD4AB7" "size" "6FDC85A68A1A461E16AC1AF57F109C4A" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "BCF44B734AB0BA09919BDA928B2C38CA" "size" "A971F48ABDE2D6BF6CBA778034972ED1" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "B75D3E6106FD36C42BC896F465F8A13D" "size" "E088BA9F1542B7BBF675AD622A76D261" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "792A9C13D5740BB65E901CE806DC3F6E" "size" "19B638DE94CAC47A26F97605E5BCF751" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "589B5DB6484BC4FE9E7CC2BA996A6BAC" "size" "7F0D387EE8492363CE1A70670ADB288A" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "B2F1CE110663CC74755DC0880E1C926B" "size" "91E638D858F18C5908176F73E1CC47F6" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "44DB84ACFC6CD2E0EF63489722199069" "size" "0AA7A411121F2C42C12E77D9D173A6AD" "download" "97408B23D5CEC6E0BCFC4B463DA9C09E" } "pt_qbc" { "gid" "57AC047ABC94B8AC2B513DFD8035B654" "size" "67FD9387D64DD757B260B5A5E2B382F8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "C24A70E0615B6536E0168985F37A6DB7" "size" "F06AA3794E020862E37EA05AA9E65E4B" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "331E292B881616FD9C46D2455C827A2B" "size" "48662EBB51B5124B9E00D67D56DB2B7D" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "B10F01EAC5F533D89F2B0419F73C3E43" "size" "A2316249CC4788390A2659CC9D809AD2" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "C333B3207CADB377815E07E7AA20AF0C" "size" "65BA6A708111512D84127FBDCB3563ED" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "CED5BFC90A21B437807D630758E59017" "size" "9CE41972B666EBD5EDD030C08A385AD0" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "BC97A8F06320DF5A2682D0E0F1CE19DC" "size" "73258E06F90DE15631E533FD3CD1B8B6" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "4881220DD93928FA52E79AE1B2FF2432" "size" "1A41B6FC4DB6FB71C8052211B773B815" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "33249AC16CBF83D8FF5BBEC35F6DE9C2" "size" "C56FA22C9669DB96A293264ACA648138" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "D7AA2072A55C1043D63900515C06A6C1" "size" "5E3A9F3CF3B29C8FDF6734AEAC9DB0A0" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "EA48A4F7DB19CE33E8CD6B52FFA3B9FB" "size" "EA1097B8C304D469FF1D6D6D2AF5831E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "0A1EDA6C84DBB8D23396D89CBFAFF645" "size" "80FCB7FF0CE8233CFAB01D22AC8A911B" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "F8053E33915E136991F28A912AC0D9B6" "size" "17A54ED7CB83CB45F5C535541E84577E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "A2DA9E921BA2991C5AE214CAA4876714" "size" "D353EDC55BFF58FFDC01F9C6E059B080" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "F16C04705B8891058DB5DF29AD711BBD" "size" "5A6ED9FAB9D206A5389B4EF8DEC88621" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "9370FAD2F22885DF383740A23F147640" "size" "F908B4893B5C271566201CEDA7783338" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "EECE30CAE6770AF901EFB5872EFA43C4" "size" "A404017A2E9479C0202719B88EC4EF7D" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "B80DC5996DBE3C6A5D740785E005BD29" "size" "86F1F49B0AA837B5518AEBD30CCF1BD2" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419664" { "config" { "language" "russian" "oslist" "macos" } "manifests" { "public" { "gid" "1107219692270677752" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "6CB1EA35970AA1E536123E7676B7A165" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "DB91CA3C4BC0F305D37C270CF6960BE3" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "0C2CA9075D85A58162E2AD3C5CC90112" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "F4DE89194507E6A062E2605D7335B58A" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "DC27CDCB7C27D95F8C42188608C77F32" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "3C2234B77E825114CB4AC00D6F3C8312" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "4CC27166254024F2337C3784160F5462" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "2BF9F7F5AD5A0E4867E2CAF5E01CE9EC" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "6DDA16ECBFC52386ABA602C4E397B57A" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "E0672DA31AFC9FB6C49C325DBD9D3D0D" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "0B0940F2F8A0DBD4B42DB7AA751E85B4" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "A5E4DF51681A038744FA871B51772499" "size" "A936F6BA3B1481FB4908DA31BA922574" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "703C3B5263328BC3D717995E1FEECA87" "size" "9B133F53FA32B795E101B397AC5AAC19" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "45EB925136934145C7A29A91C80E2E7D" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "754F20AD0047936544DFC168D67FFEDC" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "DBEF1C55A98F481361D2234B1445666E" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "1620C6067A7730BFDEC4C5EE993E722A" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "B998B5AB5BBE9A2C82003649F78DE55A" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "17E046D2E70BA1248760BD92057EACA8" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "8CD36E0F58B912A14F98141FC3199A8E" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "E7D664BB1F7B1D21A2E3540922BCE145" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "1EC6F963AD3083F79F01DA8F233423EF" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "EEF53C3F0296E7F820BF3F86E5E5F0AD" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "6208EBC3F146062C5B9D9F8A824A0A7D" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "19B087A469FEA555065DDC248D4E3CF3" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "3F97F26DD85CCB67B9E7962ACB9F1CA2" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "FC93B26799EAB88D8B5650FB63C8152B" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "89DCA39878A98C66C38A3FB6B126BC69" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "D0A09E033938E8B43E4D536CA7FF0CDC" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "594B45637235C79C1227B915F915BF92" "size" "158690BC057E3EFF950346013654EDA4" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "D9D41D0F7734EE91576CA458847ABCBF" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "5263D578D7CC4409F77011848A898283" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419665" { "config" { "language" "polish" "oslist" "macos" } "manifests" { "public" { "gid" "747776678919642180" "size" "572" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "F5873AEFCE6D76515418006E36BCC8F6" "size" "8CA612E406B8C60B9E70F76F6E598DEB" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "7FF726CBDDF1871C5448BCBB2A3353AF" "size" "8C9FBF06BD9897E135BA82D38076D2AA" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "1C15707F2A3FF9735C9D859D0330E5BA" "size" "BCD39907A16E216AFD6266644E6F175F" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "81BF1D4735274C35AA5A799FD6F9FDB5" "size" "6386F6F3427E6BBA3D83AF9F038FBE95" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "7492E028417D821B72B14A50DEA5DD2D" "size" "D13117D9AC274FA320CA64DF29C19905" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "D6F8EA0193A2CCB986C4E54CCCE4F33C" "size" "E414B6431CC1158A631B8D7C4B5A183A" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "2C2CD00E00CF2C9138F3E468014567C2" "size" "0928C86FC231EEA8E7B464B8C2553635" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F89A968521EB333042EF4D469DC49A2A" "size" "6FDC85A68A1A461E16AC1AF57F109C4A" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "ED61F7F2F977151A24DB7FA56853A012" "size" "A971F48ABDE2D6BF6CBA778034972ED1" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "3F8B38BE8426089FAF0C4E2ED32B8E7A" "size" "E088BA9F1542B7BBF675AD622A76D261" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "ECF7DD1D7A56866F348DF3F4B3E45464" "size" "19B638DE94CAC47A26F97605E5BCF751" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "7C6E7E0ECFDF044CE0C0FD18B2EDE9E4" "size" "7F0D387EE8492363CE1A70670ADB288A" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "0E84C13A87FC6CCF0CCB21EAFFF6D70F" "size" "91E638D858F18C5908176F73E1CC47F6" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "74BD22C34F66A6620F7C22841BAF385B" "size" "0AA7A411121F2C42C12E77D9D173A6AD" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "A05742D93925AF1880B0CE2BC88BD903" "size" "67FD9387D64DD757B260B5A5E2B382F8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "C3A4C64B429DF25A3EDFA8AB7C52E839" "size" "F06AA3794E020862E37EA05AA9E65E4B" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "7BCBB872CB9749EB6E327D74A44C8EF9" "size" "48662EBB51B5124B9E00D67D56DB2B7D" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "BABC9A324D09CC3BA28F4F5908D159D7" "size" "A2316249CC4788390A2659CC9D809AD2" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "FAEB9DF3F2206E3AA6641E57493C59C0" "size" "65BA6A708111512D84127FBDCB3563ED" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "98B9236A51C77804F8239813FA746536" "size" "9CE41972B666EBD5EDD030C08A385AD0" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "64F124381E62EA6AB99BEA0854620546" "size" "73258E06F90DE15631E533FD3CD1B8B6" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "380F4AB04AD42DDFC8B70F979D47D985" "size" "1A41B6FC4DB6FB71C8052211B773B815" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "320A0632B3858471F3DA13DD921E761D" "size" "C56FA22C9669DB96A293264ACA648138" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "6EE5E7DE37F5C0A741D7AF9EB8104656" "size" "5E3A9F3CF3B29C8FDF6734AEAC9DB0A0" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "EC5F391B0DD173208652E72CF06267FB" "size" "EA1097B8C304D469FF1D6D6D2AF5831E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "F48E2324751AA5E0BF659CEF0F98A861" "size" "80FCB7FF0CE8233CFAB01D22AC8A911B" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "9EA0AC784F17AD466B36C9B1859CBEAE" "size" "17A54ED7CB83CB45F5C535541E84577E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "50C5D5B9680372065D6672EE16D15D58" "size" "D353EDC55BFF58FFDC01F9C6E059B080" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "8161C5D7E6BE45F29A6F567C8F15F84C" "size" "5A6ED9FAB9D206A5389B4EF8DEC88621" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "0572BF7FE25D60D2D1F16905262E96BB" "size" "F908B4893B5C271566201CEDA7783338" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "8F9DB772D1B3E76CE04A560A716D1D40" "size" "A404017A2E9479C0202719B88EC4EF7D" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "27211B89104D60ABADEF9D9C438A7584" "size" "86F1F49B0AA837B5518AEBD30CCF1BD2" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419666" { "config" { "language" "spanish" "oslist" "macos" } "manifests" { "public" { "gid" "314330023803655538" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "3090B944DF46D9A9CF5CA30583D3A74D" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "9BF7F465783F3840107F3B7C130ED591" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "06E25476E9AC602BD8A44561A5AB4F1A" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "107E822755B7EE76A5E4624619E34EED" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "3E71E64F33C49075632D7F8A311ACC8F" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "2C4E3A4F41281C099B9D129B05FAD3FD" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "5FAE65A34F6735A2A73263AB39A8D87A" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "9A712B5AFD1CD71B1EC721FDEEE9C363" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "A62FCDD12C29F59A17B71A4ABBC6BA1E" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "44EB09EB81F2C553CF5FF5F5EB6F9294" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "FE99062E8891D390CAA6683557BBE1F1" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "BB086EE641490804865F0F95399905F3" "size" "A936F6BA3B1481FB4908DA31BA922574" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "52469D4C22A93137C7EC408B2D59F462" "size" "9B133F53FA32B795E101B397AC5AAC19" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "140313E92EAED334B41B1C64D54883F9" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "855FA8BD48710BDB99639D53507F3CE8" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "3B710B9992252D68A8DA0159002E5911" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "FA2E1729F6264D93C4653780E7A0B68F" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "19195984C849483DAB49542FF78DCBEC" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "E2CDBAC214142BF200C7656FDA36B895" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "60860BA6F535A994C3D8DA941BDB5929" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "6A66BBFB38F4726277560EF8950A01DF" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "A90EF31241B5A06DFCEE8127BD0488FA" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "3E9C64ACF1B07BE9DF29D6058C6F60D2" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "24C1DDAED40AE52160817D3D5F588442" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "CF518EBADCB8E404A183CBE8F17F2683" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "31A8F57560E792D5E536EA5115953C78" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "D04DC92442055DE3A4CDC4BD8A235484" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "D00EDD8F33956B499EC664A51D38F0AC" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "07412D1B92B38832CA01AAC4025B7927" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "5D980905FEEFE4E3FDB50AE0B29A95B9" "size" "158690BC057E3EFF950346013654EDA4" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "D4733E794801B03CE99853D5BDD5CAEC" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "A9F44E85C9B869F8B2CDF9DB842F9C74" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419667" { "config" { "language" "schinese" "oslist" "macos" } "manifests" { "public" { "gid" "63003823326025800" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "40303ED49E2168BD193AABBEE5E55D27" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "7536C5A96B349314AC969F3E0779077D" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "84DD7D7C21D1FF8D2DD6B5989A61EECC" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "26C6956EFF7ACF394D0B37A79E705D25" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "33F0C22D50F4DBAA955CA619EEDDB37A" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "511F42F6B5EC5083903EE5438A0E21D3" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "FF70AF68440C5196A646DC7950CEE189" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F68E9D3AC9CC9253E6CCF33C5D55362B" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "CBC4A80549D9369FB252A9049002B88D" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "E205521AA75A9DA40EB8652AFB2CB448" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "2E98A441390A69076C38C80F9944951B" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "2C23D105D48BD5967F78AEEEB6EBD0B4" "size" "A936F6BA3B1481FB4908DA31BA922574" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "A5E17EB9ACCCA6215B7A2CA5545ECFFD" "size" "9B133F53FA32B795E101B397AC5AAC19" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "D185956EE4A26F88788AC68CB56668BB" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "D5B5A328F63285E046F02B93803C00EC" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "677FD5FD702CB96773D4DB976311F48C" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "98D4C5857A0932332C93B38967E46051" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "5B8E676E811368956982ED28E173FE22" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "3EB6DA1BBB55695D098444850D8CCAEA" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "4082974F7BAAEB263FBB813409F89795" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "5FD8B223DB2B90D80006D75A83F2A0A2" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "12490F465993F782B840822D4194C849" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "F713CEC2685B4D1E40DE8111C650E287" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "40E82E83DEA887EBC68CBA2BADAD8545" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "579BE38662C107042A2128B61346C876" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "3AD2B88A804AC02D956EC5434936BFFD" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "0D762B245FA99E0245D10BD2CE1960BC" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "D04642D5D46697CA856859BC769EAFD6" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "2C42A25317302C89607194C6CAA4708F" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "FE965BD60F2A1182C725AACF74F4D8A6" "size" "158690BC057E3EFF950346013654EDA4" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "80932CFBC5854529CD0294F15990F798" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "1F2570DA2A7697276AD8A3EC6CE1B3E4" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419650" { "config" { "oslist" "windows" "language" "italian" } "manifests" { "public" { "gid" "1636935256415881269" "size" "14446375" "download" "12441392" } } "encryptedmanifests" { "baseline" { "gid" "508F19BB0991770F713688925F260BFE" "size" "DB52F1247359192E0C917175033BE76C" "download" "DD8249064CDEE1CBC6B2875FD5A5C6F4" } "ch_main" { "gid" "D27CD03DA9AD698E44153A16710E95EB" "size" "E0FCF8A3AD8FF78EE5F75B967B46F2E8" "download" "7FD4C49E8A3779E0E01A1352CE915D64" } "ch_rc" { "gid" "CE63969EF1DA8AC27C3938E28D331E73" "size" "DB85062C6D6EA113FED5C91750325BFD" "download" "923D30A3D9218B9730567C1DBCBA9A37" } "compat" { "gid" "846579A8436E750CB6EEB333DC51CEBA" "size" "F7A6BA53FD90A7E2189D71B7E62C7679" "download" "8B752879FA63F1F70FFCD30BECDD7B55" } "dlss" { "gid" "86C290157841F6D2378BAE4E710BB60B" "size" "B8C1E4CCE555C5BC342BE9BEEFCED586" "download" "F96F11BDF96DD6DAF23F302D8DBB6530" } "mac_test3" { "gid" "341E5456CCAE50D1F10EB534384F3319" "size" "FC09210A2D75F4AFC0F4C951BBD62A8A" "download" "611C9501E73F6BD5E24D9491F50D8D18" } "playtesting" { "gid" "9857AD92566E6BF196B240182D45A291" "size" "816C2ACC886C2D91F450EFF206728B1E" "download" "284029AAB01B220E08A9BBF382261386" } "qaprio" { "gid" "725A0CD06EFB2472F08D62E4F4B672DD" "size" "A51136C862944AC48054EBF2D16A0D62" "download" "56D768B9D3FED9F788AC929E9A3B8003" } "release" { "gid" "93F2198DDDCB2CEF5C4B1E4F50A2838F" "size" "46A30012F33840BD4B616D19E8974872" "download" "525EE7A97E75B0AF16C6475D7AA56536" } "release_hf1" { "gid" "69EDABB28E4D1FE6AB227786663B5BF2" "size" "4EF419019C04C7DDB76173AEEE118874" "download" "DF627C5D38F15512B7D23161E2203662" } "release_hf2" { "gid" "B4AE48F0318D5C2F886E3EA970E9A271" "size" "6F0539BA9FDE656EAF85F968DE492215" "download" "1462BA8FCD6EC225F8FA3E804328AD42" } "release_hf2.1" { "gid" "D454E89999B8E375E6F62BAF3B2337F1" "size" "EB92F7A5A9D319BB4CCCAA231B05D3FA" "download" "DB107B88350753EFB258B913AA89CC49" } "release_hf3" { "gid" "F486400F052A6BAA074669FA802EAC48" "size" "D8D0FB00039DC451701DE3088F5B2F53" "download" "3E64306B1E21240DD86E65DE84284E74" } "release_hf4" { "gid" "3CD35D27FD57C37B1C5789675822EF89" "size" "8154A321DE7DCD3B0FC5CAC87A015D0E" "download" "A17549D1CC244D720C74FA55A2F986B5" } "release_patch1" { "gid" "B7AFE453517137731A6DAC0AD2DB32E5" "size" "76EB54F9C626E1CA17F443BBBCD21DA6" "download" "E27782DCC1A2B0240CCEE612811D7E97" } "release_patch2" { "gid" "89170FD088A14B0D88D1F3B14EFEE271" "size" "0C8389D33710DF47D5604101AD66967B" "download" "6D9CE6ED317EE6E2874D7426C11CD63A" } "release_patch3" { "gid" "154E9D6E733BC77348C7AA9AFA01018E" "size" "414B746C088D859F99B2C6ADA3663991" "download" "6565F583C7840E5ADD665B22A991AC3C" } "release_patch3_hf1" { "gid" "DD5755EA1D45E902A029768BDAED7544" "size" "3D46D752EF8D8FFD894014F4F9834CC3" "download" "17211610DC8876A41542BAFCDF2C0504" } "release_patch3_hf2" { "gid" "20D17F0690187B230EEACE869FD3A01C" "size" "78AFC9CD68609D0D67F1AC6CF9D6457A" "download" "35635A0F3384186350F5096FDD56C0C8" } "release_patch3_hf3" { "gid" "FFC55E9B140F8482CFE55A12016D93CD" "size" "6B23FD5A93AC751FFAAD1A6A036A8906" "download" "D79C49C65522319D07C179E554287CE3" } "release_patch4" { "gid" "9D8399E2E42FD2DBF769EE82395595F7" "size" "76DA83E770BFB70EBEA6441E8031CB87" "download" "C62AA431046D837BC8AB9BEF64166654" } "summer2020_loca" { "gid" "C838672590F369F92E8BA6EAB7DA6FAF" "size" "331CF59327B98A3A1D9C64FED16D3248" "download" "46F4E5DEFA37DABD9CC6866B9A4DA898" } "temp" { "gid" "9F6DAA534F2586E5D95AD38EAF1B62DF" "size" "A942235B47100CF3B7AB055727A4A9C2" "download" "5DC5C36B2112FE5F71AD3AF354C6A202" } "testbranch" { "gid" "CF78E9A3F0BB883FEAC87950FB77421F" "size" "8BE680ED985F154AF24898327DE11C8E" "download" "F739A2C0E5D2D2C32D59D928096F5438" } } } "1419651" { "config" { "oslist" "windows" "osarch" "64" "language" "turkish" } "manifests" { "public" { "gid" "258288498317492183" "size" "12801513" "download" "11079472" } } "encryptedmanifests" { "agerating" { "gid" "F4C54AEBA336DCFD684908DD9AF14507" "size" "8FBC6F1A11ED0C0C2AEFC8E1E1FBC411" "download" "16A55898264F1DD785AA6AE7843FCE14" } "baseline" { "gid" "C4AF7AA4E5A37A50DEAEE3D754045CB3" "size" "C6BBDA7CDD03670590E404307BA5769E" "download" "4D9E3FB996CA71216B8F0C58449DA49D" } "ch_main" { "gid" "AD4108AF3F45A1FEB2187454AC10896D" "size" "9F5B63BBAB38F157B20DA19EC242A6D0" "download" "FE2EA40BE7C9FF279E2244BDCD1BC012" } "ch_rc" { "gid" "A337EF3B6BA7FA0EC7AC1D5D67E46CAD" "size" "33D330D1B0D480FD5E56AF244868BEAF" "download" "49F9E678EFD7DCBB7112EAEB91D8A8AD" } "compat" { "gid" "F12EC40E99A3C451C9787A861BC92F97" "size" "DABB5819796CDF95241AEEF09C62CE69" "download" "0F8507869BA241EBD112F280A9191C2E" } "dlss" { "gid" "148571538C3DDA112722D360A75EFD18" "size" "BFF4F745724C0E6EB317257DED9C0C05" "download" "86C9A181EF44C43667CED3C604E4CCC5" } "mac_test1" { "gid" "D6FDE3FBCC8D8B4AE08ECF65C2B15A50" "size" "8979E8EEFF7A307BB3D9D47DCB3A863B" "download" "B9478A3003EDC4CE38450B19A54CB688" } "mac_test2" { "gid" "3AC0BA9D28C0DF747F5956453FB8C5A5" "size" "451EBF982E7546235185C1B4B392F6E7" "download" "3E7D6E55A1F670269695A2A7D04C41EC" } "mac_test3" { "gid" "485029673CFE6EEAC531090D17CD317C" "size" "836EE3B256B51F5851E73438D47BDC2D" "download" "828CA4E869C15DF9CA111161D715E435" } "playtesting" { "gid" "39E3B36D2F643C68C174743217DE3D7A" "size" "6326C18F3672327CCF087937CD1C9890" "download" "0324665F021318CE0EC78DAE57476140" } "pt_bcn" { "gid" "2061F7337DD5EA5A91D64EA6824A24F2" "size" "FE5BE3D351FA725075A66735D0FC8819" "download" "27CEE998B339762E37AC4E496039C950" } "pt_dub" { "gid" "0695A4D0E87A11735440BFBFFC885D91" "size" "B99E200D3540778AA74CEFD249229CCA" "download" "068BDA272BD5E8270D77545C183701A8" } "pt_gf" { "gid" "70F9FF37FB52564241C03EABF19987BE" "size" "9005EA7FD31BC6CF1F62267B1A3E82DA" "download" "F126EBACDF23032E5E4C2AE776B4BB28" } "pt_gnt" { "gid" "4B4F91FBB2CA9114B7CAA2C99366DEAC" "size" "6366889DDF6A8B32354437928DAF0D12" "download" "69993829AA10FA36E6947F425E12BEFD" } "pt_kl" { "gid" "E48B0F4EB6132D23AAA2018864049DB0" "size" "CCF28A5CFCAE8531C09188FF73A1592D" "download" "725830F1FD37D313F8970C92181024CC" } "pt_qbc" { "gid" "100F5B02A600A98C77C4AB2EC2EEA781" "size" "6D5008FB48E1515E7AF1036C7FD217B1" "download" "3CBCCDE6DB134D6EF67E49C6463147FC" } "qaprio" { "gid" "04ED0573417344230AB67DBE1AA90F07" "size" "296A89C272BFEB44D76C3DD3ED1527A7" "download" "D2F4410847072D0A5359E06CF7194297" } "release" { "gid" "30C796477911796B0FB09935DE125EE2" "size" "3B36FB1B77559B23F96C95F8676E970F" "download" "A96C0F17649D01DE83601D66DDAD10E6" } "release_hf1" { "gid" "2F2B4A7676DB089BB3B65439C7D7CF04" "size" "6572D75E50C687D2159BFDFDC1D137EA" "download" "210EBA6625AC218CE18EB4C8203F5B33" } "release_hf2" { "gid" "9F44511B4E2B344B79FCDEA99AB3806B" "size" "190FFAACA4390B926B7CAECC4747B798" "download" "B2BC8906108A8A23AA8F5036D9B914A8" } "release_hf2.1" { "gid" "EDBEC9D03EBDC989CC91A285253E6CBC" "size" "84899201C261944867AFE8CF8D494FED" "download" "DEF5167A0B5B854B200DDEE022F3E988" } "release_hf3" { "gid" "74E78F403DCC46A8F98C70D7D2764A52" "size" "0E25D22B9F081F05A6C7D46FD772DED6" "download" "9C57CC32F21C92A311B6F70BC97F02DE" } "release_hf4" { "gid" "ACBA5CA4C62ACB1D0603991812BD8EB0" "size" "B3EF412EDE04B08871A3E4F4BCD8A6F6" "download" "415E794A9A2FD394D98D55C93C26DDFB" } "release_patch1" { "gid" "848DE87F9512D9AEBEC58E506AB83DF8" "size" "53659AEBE5757AFFD81EE94D41B463AE" "download" "A69B0CC2BC41949608A0C431D86ABC03" } "release_patch2" { "gid" "0925ACC16927136EF658A593785002BA" "size" "F5B436E7753136F8B55863871971716C" "download" "3A49EBD5B0E58B9DFE76C9CDBA9CCA8D" } "release_patch3" { "gid" "70C25DACA06824A05C00C00311784078" "size" "11BD922C682A5149D03960EEC25B6C8A" "download" "E293FEAC13CF78EFA8C8C7DBDBA2B9A1" } "release_patch3_hf1" { "gid" "BA9738E1E06F672274000A0DE40C92C3" "size" "E33C03DBD6E19AE22CA8DDA6190F5542" "download" "6A0685E491594388ACEC68FBD4CBC5E4" } "release_patch3_hf2" { "gid" "DD2FC5424FE948DD58C86F6DFA5C3D23" "size" "C26481311FBC932CFD19AFC22773BB3D" "download" "BE63E6765C5E8D07B3FA6CE053818D5A" } "release_patch3_hf3" { "gid" "E9CB344067F44D490DF73EAB0F8FDFEE" "size" "E8BCAB8DFCF8808D804FC53FFB0FB445" "download" "D1A5579939C5779AC889B13E1618F58D" } "release_patch4" { "gid" "82FC3CD3A3DD5BE81F64DFA01262722C" "size" "68602EE09003D7C9DA7DD16197ED5B8E" "download" "BDFC15941396AE9DF9DF62C8FF91E4B9" } "summer2020_loca" { "gid" "9610938A4A6AD0918E2EA8C511E1930B" "size" "532D70D88D7DFE90BBAC6E2D416F8671" "download" "D62A81085736B05100F4F9A6EE172B7D" } "temp" { "gid" "0939B1439341187C9BAC3B5C2895BAB4" "size" "36BB2A996D89CD427E15B8676AE92CD6" "download" "15576BA256C39226CA55D716DEA60055" } "testbranch" { "gid" "0CF7183DE3B16C690269612025BD0375" "size" "DC426966D7EE8B2C644A2826EF616ADB" "download" "D95B952E5F114C7886B9328A22350760" } } } "1419652" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "1546445398978025522" "size" "193179230" "download" "56474960" } } "encryptedmanifests" { "agerating" { "gid" "99A0335D5123820DCB8DDE21D4DE24B8" "size" "1CD3E979A174C54313DF98FAB8E1E4EE" "download" "3EFFF7051FA642F4DBCE450C62D921E0" } "baseline" { "gid" "ED83FB5DF9D5984D4E9374F52771CCA2" "size" "A21C2A16C214198AAB32E69D42E46021" "download" "6540451619FBC68D7B130B2691FD19AA" } "ch_main" { "gid" "2452EFBC66757FB0451DCED314F90B10" "size" "63D4A8B07EC3E5D7DEBEA78C779F52D5" "download" "E8C72204BBCD35B2D83F5D6AB7120445" } "ch_rc" { "gid" "6F3C27F42D4DAAA6515B9E8DEC3AF332" "size" "8D805F80F9244A9EB0D70569F280C757" "download" "5D078CC5C72540B54C1B3D484293FD7A" } "compat" { "gid" "8C53915C0AE2FF91AE13B633E7AF2A65" "size" "21CD472305B06FF6575A1FAD7D4C61E2" "download" "B8C4F8805620BBB952AC7556BCE7072D" } "dlss" { "gid" "AB68A9E4493CECA7EE149EB0A0DDC31C" "size" "40136BF3171CC4941BF4A563A730DC84" "download" "E1EBF1E0607CC01356870359616F0041" } "mac_test1" { "gid" "8C82B9635819D4AC9ECDB0C64847830B" "size" "F7A856F2688927AC05CE448E29006206" "download" "D3619A36E000BF89CC80A2A4DC36F3EB" } "mac_test2" { "gid" "D5FD5E43B3F44525577F3E0FB6520177" "size" "5A18212AC18942167EFFDED1B3272426" "download" "22A34814870C98FB6A27C7364B2351CD" } "mac_test3" { "gid" "D27B523FE0CE82BACD4FB80767D3A2EC" "size" "B4BAEE865727B360483A92C487E3EAE3" "download" "84DADA68E2161C39B0CD9026F059BE66" } "playtesting" { "gid" "4AA3FCA9D28F29C4CFAD882D76766B5C" "size" "D1EC992595F693500D5B19949AE359AC" "download" "9D0641DF4493A851CFFF32EA67D2AB74" } "pt_bcn" { "gid" "ECB5286A4E4B6E35B8195DB213297173" "size" "8D02C5133CFA61E1D8417BD16AFB7A5A" "download" "F9F28AD7DB1320BC17C062ED2F5B5C43" } "pt_dub" { "gid" "0471DDA622FB1DD93D6CE7DA0CFE7879" "size" "6A50FB48A937C2B82FBA1816B1D878AA" "download" "AF63C9E0F9563D16F4CEB5F73DBC2428" } "pt_gf" { "gid" "D71635820C917B9913E38DA6B4BA3554" "size" "A965DCCD2E6B0D8FE1361B712F147F9E" "download" "E9D5E8E02465ECDAD7767898DE59191B" } "pt_gnt" { "gid" "0F6E808F009E9908D1197B1BCA76A833" "size" "C90640B3E58FA1CE88350368E4820815" "download" "A15900E9CD0392CEE173222C512007A4" } "pt_kl" { "gid" "AEE88B17C3A32519C81CE9E5C5918CF9" "size" "0C2E7029C41F744A67E3E7BC962BC75D" "download" "63F68A7E6427E6D256FC2322500C0419" } "pt_qbc" { "gid" "4F5628F0CE62799048DF6BA836CA640C" "size" "9E302454C0F04D5B1ABF2A0BD34BBC14" "download" "616230813146D1447B71875360218D11" } "qaprio" { "gid" "514AE2D403F76B603D28A5D45CB937BC" "size" "77FB81F305B050F3BF9975EEA47765B8" "download" "D64CC7DC5CFEF8F139706EA52516F64A" } "release" { "gid" "0855F8987D1DDCA7FD30BC9CCA45E4CE" "size" "36FDD01326EE53D5967CBDB14CFE19C2" "download" "748B4AE37BA29DFF491A4DEAABA2BF53" } "release_hf1" { "gid" "61AB5EB03AF63841DE0361CA058CA0FD" "size" "EA83438D086132624B2FA07D552F7866" "download" "79E26D627C91254FE03949081F15D1C6" } "release_hf2" { "gid" "3812612F4C6B6B8CB84332ACAA8F5E07" "size" "1433D8105971FD85D895C65E3DB6DA9C" "download" "F4032A77F36BFBD12D1314D11423378F" } "release_hf2.1" { "gid" "C586729C6C3BD55CB88D72761AF11080" "size" "794B7A4F4739BD5437E61BFD56FD0638" "download" "984BE99EE201C8FADE82F19AF2E2E394" } "release_hf3" { "gid" "024B91654C4C1245100CA6B2710FA7A8" "size" "4A96DFA8D5FDAEFCFF1B3BEFC66C4068" "download" "7B54D8EB4D204B34ACE94B7019EDAEC9" } "release_hf4" { "gid" "F4F1C1AE475CB7548DBB561240BA3688" "size" "779B914ECACC84DA5701643CDC48D8DF" "download" "C442DD0C2BC5F386E64992C61B5106A3" } "release_patch1" { "gid" "F827FBE9F819AFBF3C1E17D3478C3B46" "size" "FD2A3C99CD81FD3B61B3BA2134C5E7B0" "download" "62AA82B0A7DD30BEFC912E987C68E841" } "release_patch2" { "gid" "91F64283C41DC22CB0DAB6958AE8B27A" "size" "CEB03FC2F3AE6D3302EC31727358254D" "download" "961293F65EF05EFDC80F400B2DFEC523" } "release_patch3" { "gid" "7462C4697E1CBC5D577D24D54C65E0AF" "size" "518E921AFEB115C52D45BEA258E26599" "download" "CDF540BAFC5FD4233FDCC61DB441E405" } "release_patch3_hf1" { "gid" "9DF2F7AD2A5E52919A2BDDC703C1A1D3" "size" "7E9C3EFE678B2FAA43691194B2628D70" "download" "3B5A348126AE6EABA013C3BF28EA132C" } "release_patch3_hf2" { "gid" "6F970C1E281D4421E1531D576B681A45" "size" "9DAE798E2D9A5AB3E366DA9ABD31C0C9" "download" "B7671F8670F8E385233FF0AF95828494" } "release_patch3_hf3" { "gid" "9B2FF860139A89887FBE71B6F9C21DD6" "size" "090ACE9E51EBB7A2E6BAD2D213ED09F9" "download" "AD5E69088FACCF714A9442A70419856D" } "release_patch4" { "gid" "5510AB8032872C7B77060F616BFC6D64" "size" "A6D7D3F7EC8F55F7C58119363E8A8F28" "download" "20331E39A0C8280601841015CC3EEE2B" } "summer2020_loca" { "gid" "79A72E7CB00F5E39C6539F796661796A" "size" "23DA23D4DAC8D5CAE8735440CB65B551" "download" "7F736E8C9B1CC8D3D7C757048DCD08A7" } "temp" { "gid" "CFCD72A544517C5FF18956F5E7BC292B" "size" "F42C37A3EAFA253F7AC1B463AE90BA85" "download" "218C9970A5E3A531B14EAFF3F60D4143" } "testbranch" { "gid" "BF7F3F20FD1ACE1472562B4C24D3B237" "size" "1215BAE454FC9357F373661A4A28D014" "download" "870F46CF62A9E830219D4C188CBD15E5" } } } "1419653" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "2295385710444616309" "size" "289429375" "download" "103503280" } } "encryptedmanifests" { "agerating" { "gid" "D36C8253720E3EB64E1A9DA44A845B2E" "size" "19530FCB0000A15A880673807EBE0BD3" "download" "C4CA4E66259DDD16A99EC3015171C908" } "baseline" { "gid" "FB52C9B3D3928F405194ADCB381443C6" "size" "619C38A33F0815623F62DC4DC38F78AA" "download" "D0C17CA671A987939FBBDAD51783CE3C" } "ch_main" { "gid" "7CC53D4921ACDF936CFE0FED416E5C98" "size" "C0F129C6C4F77AB18AB0E28CCBAC3F5A" "download" "FDA6766459BCCB22C5BAF0B189BFEAE7" } "ch_rc" { "gid" "D33F3DF236385B6B12149AE243ED79E0" "size" "35CA92A796AD341C7D82784AC69AF5E7" "download" "9922084AFE9C30E3FF6A1FE131450C00" } "compat" { "gid" "C67A628047A470C6F47A9509ED9C9FFE" "size" "386B3E5F0DAAD0E5A447D094DD89F9BF" "download" "E8C8B87BF54FC2A965D7996E1F79AD95" } "dlss" { "gid" "1EBEF7179C4D87FFC170F166C9E5AD08" "size" "789F09C2A1CE052ED4272281826A682C" "download" "248FC0B5C20AC7610D2597BF75CB59BE" } "mac_test1" { "gid" "D66ED679F45256423B0DC43968A70EC1" "size" "3872D877D8630BFFCD553F66FC087807" "download" "EFD3E5F07A2F3B7CB05CBBC6E4FE6361" } "mac_test2" { "gid" "906E075C852F28136FFAB572BCC6906D" "size" "09BFC354B21D7272B9864DA768AF0014" "download" "637E37D8A8FC12717CABB64D96450975" } "mac_test3" { "gid" "72B9BFF1D9B67407B662B9C373F0BA82" "size" "3816CADEB26DA627E28B23B8B0F400AC" "download" "524D7644F750FB3280529FC9BB66C589" } "playtesting" { "gid" "947E97E3BAD423F587C156D090A4F710" "size" "7DD21E78ABBEC1D734AEA94C254BC7F2" "download" "6FA76E20CB928D7E67EFE20922E748B5" } "pt_bcn" { "gid" "C985579A9A2268221E7B0B4D006908E6" "size" "CFE7CBE2E637EC445FE817E063BCA26A" "download" "85145FEC6BE40C53D297CDA476250B73" } "pt_dub" { "gid" "C117D5555194226644C007ED63DFF583" "size" "2A8BDB59CA0CEDEC4872A91515E26F2E" "download" "8C7F8C9DB00A9DA5EF5A52EF06DC0112" } "pt_gf" { "gid" "59880E02D33CB3C5D4F880F0A9373B85" "size" "2AC4C2AEC480278C9604332B4F664913" "download" "649C69E36C498E9A496E18C69CAA50C3" } "pt_gnt" { "gid" "6247FE020DA037FA21492B5910F6F733" "size" "BDF1DC2806FF5F71F655C05DD4B892CA" "download" "20A3A27D17F16079CD82AA2C797BC641" } "pt_kl" { "gid" "E8D2F6245A1036D418A1CEF63EEA4FEB" "size" "B4078E864ADA485C4365E7EAD1A74A35" "download" "68C08E0605D5FA216D5BB9F973F9350F" } "pt_qbc" { "gid" "0F8C0F6A9CD721FD961D174217B6C056" "size" "284FCC4E8F54FB3A31FFADFF515CC570" "download" "172519EB4E50706CC7DDEE035FB33B38" } "qaprio" { "gid" "7FDE95D4CFE69B334DEB927F26B7CE05" "size" "9E1E6081CEB87C9E5816686C204EAAC9" "download" "AB6946A6FF08FAE87D94E5F463438519" } "release" { "gid" "F18DC777E65B4DE383884B7AAE4D96B9" "size" "E976AD8608D14856D52DC68C0F9124D9" "download" "54E7D879E32E83F9AE91487EAAF3F80B" } "release_hf1" { "gid" "954C0EE7A1277DAEB8E244C0C6985E96" "size" "30F5CEAC85039A9F96AB2D68D0399B10" "download" "EC55214FD299A20C25E97100B5AB43C3" } "release_hf2" { "gid" "14DA3351071C8673F0B3FCF45FC319A6" "size" "8CF444D2617907747B0CBE8BDE6AABA8" "download" "66F31227B130A5CA1E72D240CA9DC88C" } "release_hf2.1" { "gid" "C230E33B5A8173A3A537C1778C35E766" "size" "95502C15EBFCBEB2090C91EB17D02B80" "download" "EA283903245CA3F108ABB9BE5691ED20" } "release_hf3" { "gid" "C6B62FED046376687BC5DAD4946EB6EA" "size" "1A8BE299AF732F74424B2CCF3388C931" "download" "2DCA71213EF615DAEDADD5D2E2F1918E" } "release_hf4" { "gid" "19D26AEF4EB016BF9DBF3C72FE6489DA" "size" "F2C2FC04DA558FECF6E4E0A4CA6F3F4D" "download" "8FC308DF9AFA9B758F7EFFCDFD96B6A6" } "release_patch1" { "gid" "054A384B32F6D6E2F920DB00E0F87CF2" "size" "5AF7A14AC8D90E48909033DDA25F6902" "download" "1BBC3D8BCC3B6CDA22F90E838FA25F9E" } "release_patch2" { "gid" "D749F2354535813DDB63650CB753E195" "size" "CB87D2F2814653816FBFF49EBE652851" "download" "0549A78712AC7AE8938DA4885317280A" } "release_patch3" { "gid" "DB8409630E22DC8ECD0A061B4C80E79D" "size" "604790F88D9C5094E5DE01C60C530344" "download" "79446F98AB68A682CB0FB826A6CACE2F" } "release_patch3_hf1" { "gid" "1E4D468EB5F540FCE648924CA55C134E" "size" "2098F358A0632B107ECB06C11BD40BD5" "download" "252A1520042A1EA02ACE84EF13C2F17F" } "release_patch3_hf2" { "gid" "88E59645B7BD6261EE9D58840D3B647A" "size" "A082ED20924AE2A8EE91326622556969" "download" "EE823FC44515191A7160412375728997" } "release_patch3_hf3" { "gid" "85D0A9A9CC4E44B375CBD7073EF3C81C" "size" "F8D02EE8A757501AF1B645031A1E41E0" "download" "BFDB5FFC1DC27FC141E5A061D75F6EE2" } "release_patch4" { "gid" "BE3EDAC57BC6013EBE6A0942F32FCB5F" "size" "7EC61C38CA08EDDE192DD6844899A324" "download" "E3F30C456AB11EA98230291B11D327F5" } "summer2020_loca" { "gid" "220D139C78B82EC376786ED7C728D884" "size" "B66195855973FDC4396C470D4F567E78" "download" "FB60944A6C7C7F4ED02024989F7C7B33" } "temp" { "gid" "4DE7AB71FE113DC0F2731792D22FA2FA" "size" "33F1714124265D84F17BFEB119ED06F7" "download" "7ADDCF5D45FA6F86578323CA8A76645A" } "testbranch" { "gid" "B6A016620635C61C0F382DA0E53EB049" "size" "2C78D0415DA6CF9057FBA6D05A141A26" "download" "4E1BDAF1871F04AF5ED6708FE9CF595E" } } } "1419654" { } "1419655" { "config" { "oslist" "windows" } } "1419656" { } "1419657" { "config" { "language" "turkish" "oslist" "macos" } "manifests" { "public" { "gid" "4548607990756240099" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "23AE7F42FB1F0481289B73E0A444FD1F" "size" "956310251BD8F86CD14F5B1FDA2176B1" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "14526FEB214939C98064DEFDF32CE125" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "D4A8F3CC8C9D6FEF16A8AABCFFFFE2E5" "size" "F512995CC77621F8930AC3EE39D53495" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "9F215FE30668C2BDCB2055AB622DBA33" "size" "2133A2FF3D1D0F46025AF53488EE5399" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "1669276F26BE81D1A79F26595FD3F4F4" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "34749D931203B73C9162CCC9E9E4EE5F" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "71B0458EC25F17128A4396476D5359B9" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "4A2483CF497DB70C2A26B49257FE3A90" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "A7BB73F008285BA4872050853BA7902A" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "F915B887CBE0828FAA3AC4CA8AAAE4FF" "size" "3662DB18DCB6ED5FA08CB9249CA9B0C2" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "F62B13FD120F78D022FC30082D7C6116" "size" "87F7BEF78BD29B0F591DF32B7A489842" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "7EC202B1F7313AF360E94319E0263EDE" "size" "5D031AEE8075CDA598E002896185D996" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "3531C0432B689322DE4402A69C2BD2A9" "size" "F8846A7E7FF7D38033F58EC820ADC4DE" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "A3AC26BE4FF1BD6DC453431EB8C12D99" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "5FB92FA46FE857C66C095C6F794A3729" "size" "F876BFD6E2AC5D21F308F86F1ABD8459" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "BFA33F20093E051E887D41C8E55C2C83" "size" "0B8C375780B22BC4AED41957FD0D225E" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "371CFD457542654FF438A5ED02E5FD76" "size" "18803C7ED2F60F9099A1F0A845D8FA78" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "4796BA336B743342528FE10F697F1405" "size" "A802D1053E20EEA74D73EE4B16392286" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "718D746ACEEB5659549BC20156EBF66D" "size" "8F29B29B2ADE8664DDF52A344A65D885" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "58A1D5B8E146EA4A3F45B046ED9ADA1E" "size" "6453935201A73437548FE003204603C5" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "A9B4D0D684ACE64741481919638C75D2" "size" "9DAB359428C850D5F3C3B11059705B5E" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "0F8E44C163AA43546527373BBE795F18" "size" "191AE0A0DAF7215F3522828FC1F72A2B" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "EC8DB686E41D76719000B173CD7B01B2" "size" "70205BECC334EF0A4752F38FE8851920" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "6049B7901477D9D87365CCA00DDDE9A3" "size" "35D75A7977623AB42AC6981579A56514" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "A126C6231495CA699B5AD50A89AE8021" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "745F81BE33BBCBE868999011046478BD" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "20AF8A2B1E04FEEB4AE98A4DC4699C08" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "BF2F65C9D2FAC07E60C04E961689E98C" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "41E1C8FABB07D449E5387BF51CC5315F" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "temp" { "gid" "EEA7B925881ACDF6AEEA061AF16A97D6" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "89BC64D9F2B6430C9DC2058256057474" "size" "DF79B95C54C910D2E663D6779EC92D55" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419658" { "config" { "oslist" "windows" "language" "brazilian" } "manifests" { "public" { "gid" "7695453371579602141" "size" "13302600" "download" "11481328" } } "encryptedmanifests" { "agerating" { "gid" "604EA01FE818FEF8D94A2561385EB09F" "size" "4C639970689E036238CAD7E35645EDEE" "download" "79853CD8EF6FD898257B692401A881BB" } "baseline" { "gid" "570125CB43C2DD9F6F35AC1D66BBB7AB" "size" "00D59BC16E572F1D0710997D20DB6574" "download" "C814E0F0F85E31395C2388980151252B" } "ch_main" { "gid" "0EE6B6B502B2557B3832C88D11FEB1C2" "size" "220E9A8C2A279E9CE7E46985814275E0" "download" "CC6DFA70F9FE1ABE152AD9D1BCA113B3" } "ch_rc" { "gid" "5F3E3EBF6058D5DF5F2CCA85A47A5990" "size" "8236D1C93297FE43D6C94DA297FE6D78" "download" "9D955AFC4AB0BC7CDFBC7292A8572527" } "compat" { "gid" "877D181CC8562918F40EF365D8A9204E" "size" "06B3B3356C33A900A0648A9EC75801FC" "download" "9CD5C287451A60AE41232E9BCC22D9AD" } "dlss" { "gid" "4EE5D1CE308B4003D29730724DBA3D60" "size" "1FE4C4C1F1281029D5E7608F84458141" "download" "CE88E22DC00FBB2D8671576C74B3BD4E" } "mac_test1" { "gid" "4D3FBE2DCEDED9F2064877F571CE186C" "size" "D0CF63CA894FE8048B4445CF6213073B" "download" "9D22C38C787C59F4EC3329909FA21889" } "mac_test2" { "gid" "96D4102068801714B92AA685189FD237" "size" "8E6408219AF3FAA54B7766ED8BCD469F" "download" "D2F9246C81FB113A6A425F1EBF04B01B" } "mac_test3" { "gid" "60F8418E6DA7D5375A787CA03A1C7C8B" "size" "33A33ECABE0E02771A8EE5AC3A5BB27F" "download" "54B0B62FCB336C018CA2864B2F63A1EF" } "playtesting" { "gid" "12EDFDB2FAEB0A018C016A9F48CD48CD" "size" "78E46C276CF37AD294B5FF40A4EA88BC" "download" "E5A219EBC17F8088DDC191ACC45CC572" } "pt_bcn" { "gid" "FC007FA160047C2BE94AEF0C9660CB1A" "size" "5355550A831974721CC32187984DC874" "download" "ACA97F2316158BC3E5EBAEB16FA819D9" } "pt_dub" { "gid" "ED789FA07A4B849A06A37ABB704F825D" "size" "2882C22F0B5E0E3A7F3BBBAEE5275B91" "download" "DE5462DB56E3A5792F847B00E1FED49D" } "pt_gf" { "gid" "45F1A9846A8A59C588452A01EEFA080D" "size" "EA76841411EB5188951D0243C5B3760C" "download" "075B2C9A4B7ECF11F3238140AA4C5EC4" } "pt_gnt" { "gid" "9F340D70F30304945CC719379F6130AC" "size" "613C96EA9EB3F2398662115F2E3B8D87" "download" "0E8D36EB852F4A485E17E55437B1232B" } "pt_kl" { "gid" "68A1C0BDB9B88ED39CC0F3DF97072D47" "size" "E8E4057243187B19CFA0142D78A41573" "download" "D70CD0005D2EF52AC5ED62A932726AEC" } "pt_qbc" { "gid" "DC6DCE7A025259B419881C66D5E31F20" "size" "5711BDF57BE858F836B0262AC3441D91" "download" "361466391D8D2E97E2E303C008F83699" } "qaprio" { "gid" "F20F75E4D79C5AFB016CCDC357019B7D" "size" "E4EF85759891150724163AE8F26A0026" "download" "33C1848E0FFD40C408E2DCF67778DC4B" } "release" { "gid" "449D2EE8CD1B7CF1773B2961570286F2" "size" "29B20F3CF3BA8C9E13258C7B0C639BF8" "download" "6DD0EA0CBE113A89B50A360F86A1F0F9" } "release_hf1" { "gid" "477B2702F015601B5DA1671669D892BF" "size" "8AD27324D777D20051A51791582E8221" "download" "20A3B4E0B327DEA70510703C31DE4A54" } "release_hf2" { "gid" "C51576D0B33894017CD18E099DE2DEA6" "size" "94987B301AFB5EFF6133FBE10EBA3926" "download" "AC8094294605E4ECCA17F3BF977543FA" } "release_hf2.1" { "gid" "75D5F1617DF0295B7AA08F0072E53A39" "size" "BAEDB67B44F92BFD5EFC01A9EC1E2D6E" "download" "86BB92B5BEF846C768B6948F4EC531E9" } "release_hf3" { "gid" "62C4F4887F1141EDEA357CBD1F9DFFD2" "size" "8F4BD8153B450E004084B7895C765D56" "download" "994A9A804623103B19E88FE8A1F16BBB" } "release_hf4" { "gid" "82EA6C10517F8681645B13F3119338FE" "size" "C5F436E14E7DCC0CA92017E7EB18D57D" "download" "B47040DA489B358D7A28B49A67299EE2" } "release_patch1" { "gid" "2D9E11AA3DB375C8373473E27092C073" "size" "19B06EB3C4CF67A81C56747B2C479609" "download" "C99E13F5D1AF00785CA31367547E1335" } "release_patch2" { "gid" "B464660E847B08CBD8ADB7B4DAF71463" "size" "A95EDB0B273DA07A0B82A1357ABD122A" "download" "D2B9AD4BBBA86CCE3A827568F40EE8BA" } "release_patch3" { "gid" "E5F49755B59024DB0A059F961C067245" "size" "9636E43CEB83B71F2599E784F7E0CB86" "download" "0832C603BAB7C1C3A4D71A3A64BAA427" } "release_patch3_hf1" { "gid" "23B2FAE96474F58B44AB5D3185BEEDC1" "size" "ECDF15D3C028355ED8B399FEED772CCA" "download" "F086D62E53FDB7ECCB349B93086E8E1B" } "release_patch3_hf2" { "gid" "F7DF216215B6C64BCC077519465E3531" "size" "07A4FB3B40B125EA1279293D6FD8606A" "download" "F17AF0DD5BA580D94B15C66BE439E81F" } "release_patch3_hf3" { "gid" "3BA5FE891CFA59A17724FC49B671BEE3" "size" "6CBD4C19A61CFE111F0CAED51B315330" "download" "7CA96F760157FB087714A7D2D3E5ADA4" } "release_patch4" { "gid" "DAA7DAD51447AA3D79473023B1597D8D" "size" "62EC08E4999BD193E8CE4FE2B2F2AA97" "download" "CA36EC9D0F2C68E9F3200F6F610E2995" } "summer2020_loca" { "gid" "F75CAF317CB848BF6A3127C44443BF8B" "size" "456ECC3DD656A5B8AB9D66ABAF4092DF" "download" "3E644273D4387CCC94708D27DFC00BD2" } "temp" { "gid" "DB8541B9F8A5DA8F9DBDCD29F2C95A6E" "size" "FC797F4D6B2BC5634E9942293F9A45BB" "download" "28928080134698080D453F722F854DD3" } "testbranch" { "gid" "A32D410F45209C89EB0358F224E6A646" "size" "514A2886CF1A7267393B93BE145801FC" "download" "6956168037619CC17100A60B7854A7DE" } } } "1419668" { "config" { "oslist" "windows" "osarch" "64" } "manifests" { } "encryptedmanifests" { "summer2020_loca" { "gid" "C76E491677B73322F58AEB91FF495BE9" "size" "BE3F48A9CC6F83A706EDACBC540D2536" "download" "A57DC43D18C3A62A53EF7424483E02BB" } } } "1419669" { "config" { "oslist" "windows" "osarch" "64" } "manifests" { } "encryptedmanifests" { "summer2020_loca" { "gid" "6D6F100C3A330D51947AEEE45E234A5C" "size" "CEB639FD8BBB1C4BBBEC680732C39A3E" "download" "B84ECDBC54967A7C0506769C9962CA16" } } } "2330350" { "config" { "oslist" "windows" "language" "ukrainian" } "manifests" { "public" { "gid" "3949282231580766817" "size" "15300662" "download" "13290560" } } "encryptedmanifests" { "baseline" { "gid" "4D22321F017F44D60D901DEBB310C9AF" "size" "32421880E3D020BDBC6E9764B0F82719" "download" "75058C6AF0B137344FC9DB473187760F" } "ch_main" { "gid" "9AE128E263E271309BADED30625BAF7B" "size" "A8E48E7423191F543F18BAB55E9D2C20" "download" "35BB8464AC26096EE9378DFE22005FE2" } "ch_rc" { "gid" "F72D6061AFEA821F6295CE9C3C58F4D8" "size" "9B08C0E1508B040A640C51A652A58D5C" "download" "3F6B7896DA4F841846C7BE33805ED6C3" } "compat" { "gid" "71083480395107734872FBB5CA31024D" "size" "175D6B49EE36362678E3947C31792839" "download" "7CDFC8C52AD47501D15E9ADE20F8128D" } "dlss" { "gid" "2AA4852D54B521751BFF1FF0149CB3FC" "size" "B5931A65D5300C41A258528529402146" "download" "0920E1A183A5C364BC74B26F7C1463C9" } "mac_test3" { "gid" "ABC26D7BD1CAE06E3BFC39BF34288A60" "size" "7CDAC13E62F855A9E4FCAB7EE78FF4BE" "download" "B7736A1D6E17439B2F8B5EB4D07AF2BB" } "playtesting" { "gid" "23B64D58D6F6BF73EDA39AE28A8257AE" "size" "38E3F84FADF760F3ECA64A66A70D60B4" "download" "CD29631C56EB5F4A1FCF771A185EAB78" } "qaprio" { "gid" "B57331849E8CDF9F5BD3AE114B19C756" "size" "1BF0D7A22C2B3A61CF3FAA8AB2CBA9E1" "download" "16AE352455DF11D1B52EC5B73F4E160E" } "release" { "gid" "90BB95C3CA1E33724166B9837F647318" "size" "026EAA68B3ED947EA1BE4DBE4E044637" "download" "D78D2331349420A8EB5E517BC56F1E78" } "release_hf1" { "gid" "DF2C289018202BE7CC2C4173B2E68E84" "size" "6D9F49030285CA51B0A66C449475AEEE" "download" "847DBD78B8D8E46168866A7E6900AD25" } "release_hf2" { "gid" "4C15D4C0D90E7312C806998651A49A68" "size" "83ED0C6B662810066EA990D54E2FB229" "download" "A8AA7F57716F46CBC776199D9F4A5029" } "release_hf2.1" { "gid" "43A95ED7FCC8F920E800AB45CDA280CC" "size" "EA2C354E7E356545401A20A677555DE3" "download" "58FA48C4CB8171DBB487199402422F88" } "release_hf3" { "gid" "9C0DF96915C7E881BA83C7042A82FBF6" "size" "B4080462F74B9AC8E0C5063543984DB8" "download" "5C05E50A4D0E43CF2DCB5CF9A19662EB" } "release_hf4" { "gid" "EFE3ADC036CBF59048C8CAA89F20A78B" "size" "800E8E2A65F212C2F25D6211B295B72D" "download" "A7F7DE2EB503A96EE6B659DBE5409C5D" } "release_patch1" { "gid" "47EC7F02F48820F2B70E6B82C68FD3F8" "size" "49D201D09D6EABD2799C059FC41ED375" "download" "5088AA4A65CA5AC05D154BCF8DC0A7DE" } "release_patch2" { "gid" "408B0D2EE8F60D5085B40D1CFFED7D89" "size" "7CE5693DA40DF9559CD396AC4F6902D3" "download" "00C31D9750C09F0F1A96003478FC4B68" } "release_patch3" { "gid" "25C0B580273AAA91D6C7858E64E7D92B" "size" "9C05F1C0EFB5FE26E0F497E57E59E956" "download" "6399E2C840045628B8C857D039DEA38E" } "release_patch3_hf1" { "gid" "1C542C5ABED4B6E0000E2680652C3550" "size" "E0FDFB3E01056D9F05B4F04DC5674AD6" "download" "25C1372F34BC9F021DDD5D2A2827382A" } "release_patch3_hf2" { "gid" "71D54CC21FDC59F5D602A9AA7A8B359B" "size" "CA46ECEEBBAF0B32F87F62BB28F0B7EB" "download" "86CBA22C677FACE661B6EBAF1BE80250" } "release_patch3_hf3" { "gid" "9FBCF2AC7B96BE6B7B0C3DF75673A7DE" "size" "439825E2168009FC7F1EED847A04AF85" "download" "9B601665A8BB47D0CCCB824B63F27D10" } "release_patch4" { "gid" "B08F51F19813AD6E67208549A899696B" "size" "A468090077BCEC05E72514FB0D12877C" "download" "AD749E5A6CF702A3F5AB24BAD8D144D2" } "summer2020_loca" { "gid" "F8AF68CDAA2B4E154F7A86E72A5BFFBD" "size" "5EF25810120590CB6F924BC4CB5E46B2" "download" "CC4E74560CD5739F2B9FC85E94CDA655" } "temp" { "gid" "CF7AC47687761227671783CA7DEE0F93" "size" "E849AD93F33FC9CFF2A8D197E2F1E73C" "download" "CDA578BB73AFD27AEA99825FA7C89A0E" } "testbranch" { "gid" "DEAD50C0E811AD0A6A8ABB57BA8D2900" "size" "D2572CCDF95B9D7CD735DB495DCA934F" "download" "3C09BB7F2D7965A5B33A8D6DFE70DCB6" } } } "2330351" { "config" { "oslist" "windows" "language" "latam" } "manifests" { "public" { "gid" "5778065934353567005" "size" "13503914" "download" "11623968" } } "encryptedmanifests" { "baseline" { "gid" "65D77C417E933A1C4E7ACCFB6D439A30" "size" "73B6A894B0335414DFC3A3C6A36DEED4" "download" "16E142FFE4E6C68580574628F68A6B8F" } "ch_main" { "gid" "2ED239D6C646207B3AA1E382F27B8D36" "size" "B2BF5791FC22DAC1A9CCBBC8BB428996" "download" "B44B88EB7E11C22006F6DBE53835E9A4" } "ch_rc" { "gid" "2C6B38713FAA810CA0B384A45B27403C" "size" "1AC7925E6926030C365CF2AD6CC0E24F" "download" "34B18D56B784880CEC81FC92360624E7" } "compat" { "gid" "99461657C30390C076E1024C18D210DD" "size" "5F0EFFD15B153F77E18D2F7BFABEEF93" "download" "06BB7C7874F67F6400B6DDE13587C948" } "dlss" { "gid" "92273093DB2655F6E176645D410125A6" "size" "8A548C5EF2D36914CA11EA674BFB7818" "download" "6DC58AF20F292A50400741783725924D" } "mac_test3" { "gid" "272AABED83F996DC4E177AE40E12E2CF" "size" "204238652E753D9557ABE13691A9A4D5" "download" "8F8FF29F12AEFC17565601DF38BD35A5" } "playtesting" { "gid" "3D15FC95B67D4F7DF7607BA73F768A00" "size" "D3027D8222CD8E598030D7ABBD02CBA1" "download" "83A4653A6653C68C57605D13720B8783" } "qaprio" { "gid" "36C7418C86AE4610DCB94492B3B0FBF1" "size" "84E01D33B7E272CF9BCBFE9E597FACB7" "download" "87E2FD2FC9FA60912F560F848536F38A" } "release" { "gid" "F03D636EE6A8541A45699093DBC6B596" "size" "DBC4E1A1D186999839BCC5123B62961E" "download" "0D325F9C3E00D8AF1AFE321975622E84" } "release_hf1" { "gid" "817BB38B716CD5F22589BED8BE2F3559" "size" "D5889D491D3408E284D9C1BE1853FEA1" "download" "9CB524D5301C3B19BD06B4B0718C70BC" } "release_hf2" { "gid" "49C8033662352FE7258AF41722BB6520" "size" "9C37CBD5E935E78D187B406673BD4CE3" "download" "1A07AF060A4795609004AAA6C9D3EF20" } "release_hf2.1" { "gid" "9AC8E45745D2E8C32FBEDF00DFB785A5" "size" "88531FFBC727126CD080289BA67DA2A7" "download" "7A5426C628BCEBEC0103930C559F7F2E" } "release_hf3" { "gid" "B0B43BF738B97906976EB7C57708870C" "size" "FAAB4D896EA617E8CA89D0754AAA709C" "download" "451312F1360AF83B226CE52BED6130A8" } "release_hf4" { "gid" "25AA4A4E8C19457CB4A971B8B183734E" "size" "DC7D0462ADC4E328466B961EE512D4DA" "download" "A7E1C750BE532218B27C91B55738A314" } "release_patch1" { "gid" "EF049F88AE1881F11B09088E4AD3950E" "size" "61359DCC20823402DAC73FEE2BDAC6B2" "download" "44E1B4794EC9A8F09FC6880C219511CC" } "release_patch2" { "gid" "EECBD562443ACD76B9C96A9D2AFB6FA3" "size" "B03C9781A21B5C16662D21C340995164" "download" "8B7BD2D2A0D9EAA5150592994BB69140" } "release_patch3" { "gid" "EC54C5B798B0CEBC893199A346D5EC81" "size" "00637772140280C5988E824F3E442FF6" "download" "6B50224805C1A503B1684570B95DFF5C" } "release_patch3_hf1" { "gid" "CF02D35D6AD5D8F3469614327D498730" "size" "B13BFA6065F67769420F67EC8E0431A8" "download" "C377314D2055BF94400053CC38996D71" } "release_patch3_hf2" { "gid" "A67B6C553A6A9CE39C7504229F6068E0" "size" "FCF05A1BA05F428AFAB8B656B0532B00" "download" "AA8C8F60114A53B752372F5F85954FEC" } "release_patch3_hf3" { "gid" "2A521DA2E39175822BFCF979D210DBFF" "size" "CBFD5D0513B178F0264BEB36CD9A9C1A" "download" "61A15C0BA57B58EF9EED0876FD427466" } "release_patch4" { "gid" "3D7D6F4BDC60BC3D47D14EBC99DE515F" "size" "A28A373F5AFE8A032D93260C13C41723" "download" "98B1A4E783147D35C54FFC037A232613" } "summer2020_loca" { "gid" "60AC427A885FF2CAE45B35EC27F9D49B" "size" "ACC4BAC865AB46A00B708E6A78BE274A" "download" "1F1A830F56E092F3976DFDBF3320F90E" } "temp" { "gid" "69794B2EFFDE039887952C15D6D8072A" "size" "92912759C4613D864D7FF23C272A8020" "download" "C1BDADD14B51F0C83E1CC71B5BD9B9C0" } "testbranch" { "gid" "2FACB861EB71F3070EA888BD4A2BA17C" "size" "CD84AB486A384B86764EDFDD3383AB8A" "download" "1CBAE254FD59A8D420D838FAC6F1926F" } } } "2378500" { "dlcappid" "2378500" "manifests" { "public" { "gid" "6453229909780803137" "size" "3700167797" "download" "2728905872" } } "encryptedmanifests" { "dlss" { "gid" "87A137B3897EF154F1396E2EE820CE72" "size" "3CB742D54B038C28DC5C48A51FF606FC" "download" "55C89ABA7E6E3349FFAB18ACD4B10BD4" } "mac_test3" { "gid" "2B0E69C7B2D09826928978178FB4E7A8" "size" "DF31735635ADB0718583E02DDA65B4C4" "download" "A4EA4BD36EA5979E2B0896062C36DF41" } "playtesting" { "gid" "50714D3D2A607DCB5D36EF6C8B14A306" "size" "E3B84FCDE2F6877265925C570062FB05" "download" "B0495D5A137409979474E598F1809847" } "qaprio" { "gid" "54E9BD1A9DA361F079A9F4FCCD9EBD21" "size" "B534D5DA084E54E34E1EA04712A758C4" "download" "542624D4053FF6C44FA8DAA941DB80F4" } "release" { "gid" "C5C8E641EF24E3A9EA35AB65556A42F8" "size" "B345A5544B97B16ED6838B9EFB4B7D93" "download" "22120C49CB480137980C1CDC85279094" } "release_hf1" { "gid" "A06DB7ABCFC4D19941A1373096CC8F93" "size" "2D9A7ADA84E315BB60FA1501A51D7412" "download" "83D06DD7D6A2EA62CC5A53ABC56ABB4B" } "release_hf2" { "gid" "2D02F6A8AF9762F6EB09BD7A819DA252" "size" "349B0EB62AC3EC1FEF1CB65A65443BFC" "download" "16EEAFB808D0536AA2E2F7E0D1DBC9D8" } "release_hf2.1" { "gid" "C39E28A750A327B7D426D8811DF20C69" "size" "58396F6374EE17416A45BD8DA0235C3B" "download" "84267211CAB9852CD80E5DAE34145240" } "release_hf3" { "gid" "BD82723FB32214274632B60D17A3F65E" "size" "56CE851FFEBF69401F5A979829DC64E0" "download" "DF3090D7FE56E9DFC238CBB6E3738E0E" } "release_hf4" { "gid" "F470D4A7B7ED096B754F9A0DD6C86427" "size" "9C5CDC3191B21B76F96D12987C7132D0" "download" "CD6C0469C7C97F7CF4D04704F70F9192" } "release_patch1" { "gid" "1A1D4C2BA7A87D65DE743BEDA05FC45A" "size" "B7C25623F0D9F4840F5F255C6F87813B" "download" "57956B679D8AC521D58088D7E8B554B3" } "release_patch2" { "gid" "C7CFB6EBBDF065582A39FD56FCDA82F3" "size" "C9056FE3F0EE1065C8C107E4DAC09E09" "download" "FBB07AB65D531A01C31E3B5B93D71E1C" } "release_patch3" { "gid" "C10E07DFAAB735164FFFADF8D0CDBD2C" "size" "4175E1CABDF8B5FE56E9308606B045B7" "download" "DB83BFD36A2C58D85FDCCECF39D87DC0" } "release_patch3_hf1" { "gid" "51342F40C4808D3255E2A006822960F9" "size" "7A54A4BCC2EBD672E45E2E100B9B609C" "download" "1BF92992EE189F671BE9B491189E117E" } "release_patch3_hf2" { "gid" "1B3CE0403B7C7D05A25CAC39C432E20C" "size" "F5984EC337626490B1E50705AA62691A" "download" "411068111F5EA257BBFA426F78D4B9F4" } "release_patch3_hf3" { "gid" "CEB63925894D3374A443C750ECAD3459" "size" "03ED88FF69F7FAA5ED7A549E727FEA94" "download" "9B47A9E50FAEB4DCA4DDB0E1965F166B" } "release_patch4" { "gid" "8F172D7015ADA1B2C776CC89458DE0EE" "size" "1BB6163E80C8655C2FE6750007DF6F41" "download" "3C759F075254A02D382025B5D97CB8B5" } "temp" { "gid" "5CAB45AAE8B692EC720F32DCABBCE1BB" "size" "5034EB29EAF9917F8F15F58A0964BC8E" "download" "D488ECBB4C3EC678F955C160F91A3871" } "testbranch" { "gid" "926DF387253E6792AF659231DAD354E0" "size" "B8FDFC5ACD37DA90D7AB68C42E7B8EC1" "download" "624F8770CF442B97EC88E5F0D3311E6E" } } } "2330352" { "config" { "language" "tchinese" "oslist" "macos" } "manifests" { "public" { "gid" "3405764980446251715" "size" "584" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "43A942D3B115692DDFC8662B9D5EBB95" "size" "DD593DA64FABE7E7B7B28FD71927E787" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "47EDFB7F6B5F7F09D4F2734AED537E51" "size" "0434C0B012991659E2C7D179D557CB0B" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "7A9B8121E3D577B8AD518B374EE545D7" "size" "EA09B011401A5FCA4D276A737DEED9DE" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "88925C8735E480843FABF956A55D7B33" "size" "79566BC6C4055B8EB2A3469481EBA273" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "4DF2EF8F8C598EF262C0FD525C687B68" "size" "9796A96321846A972C62EE478F17EEC6" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "A541B2EFF2FB3F14CE6DED6E0D92F87E" "size" "2BB33062840E1FCB75B98892F065BFE9" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "F4154FCC5492495E6CA6DE70B29B1B3B" "size" "C73744280CCD6196C9907B989B56D241" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "B3C3AC56ED75ACBADD0C39A46C4A94BC" "size" "498A34A9F1876A3A3F051A4436C19828" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "641EA00F485D28B0A73A15B40B53B805" "size" "CB4A7D020A056BF1134EB31761716B0A" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "DDFF0DAC14836457B5363619FA5E3085" "size" "8ECAEE36BC2EE151730D3C2950106551" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "32436EA039B34560A93FC5BACB7F76F4" "size" "38BB11C98B0A6824F3E32758ABA30AC6" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } } } "2330353" { "config" { "language" "italian" "oslist" "macos" } "manifests" { "public" { "gid" "612529264506102109" "size" "573" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "EAF832E344053B7A771A67C63126722E" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "9AEC2DFE98F1F3AEB842656E8025B0E8" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "06BF83A0ADA11D15C67BCBB5D5665F59" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "E08DAB9661886F213065EFE90081971E" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "1E7A1CB88C3C1EBC274BFAF80FD3AD7E" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "ED593C27FEF537CF43F3359C81585DD3" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "00647EB5827DA451142EBAFDF54297D9" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "1DF242A65215AF2870BF43D382FBF382" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "605E15700F64E27D507DBC91D9FC2918" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "5691BCFCD037A0D2A79E0BF440093E9B" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "0E7BE22777435B67CF617E53D7C9C305" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } } } "2330354" { "config" { "language" "ukrainian" "oslist" "macos" } "manifests" { "public" { "gid" "3278754178123362114" "size" "576" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "353372EF35A6CCE4B754B9A25046A84E" "size" "BA6CE53CB3FADB7F06EB7AE8679C4F20" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "50D72C1C455177600ED13AE2FB72744D" "size" "00B40370728DAB5300FB6406CC1FD6D1" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "6BC3EB69BBD7DA82ED8702BCE3EEC818" "size" "4E744E5349EA32AD04869BE5476828E4" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F0FAFD66B1BA706DF7C3254921B60A06" "size" "DACAEFCF7F37A72880534C4166C6B008" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "475E610DB16F9EF282EB60F4B3495F60" "size" "78F624831A24AAFB92909648974964F3" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "988106F7D61AFBB5ADE13E00D04F500E" "size" "7C83951C2A8A0CCC4DAC0343262D88F2" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "463478CA71616E673934E071933750FC" "size" "26DCDC8E412813A1C463E1B00F7A85F8" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "58A5D798CCFC694278D37D32AF0EE6A1" "size" "D4EF871E41D228845505F01CE6DAA88F" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "CC4E13759A6FFC693CBD477C6A26910A" "size" "9C9654CF35C5BA4444F2C518D80F812E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "5023B5DC4EE7D488084D14FAA7575930" "size" "8A15EE7B0411C82B0F01EC16B75F7EC7" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "DCB54A2ACB25B9F422E551B550CAFF95" "size" "A7CE2F6BB156849DA28E10C16A506190" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } } } "2330355" { "config" { "language" "latam" "oslist" "macos" } "manifests" { "public" { "gid" "5952972128173214295" "size" "579" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "FBD9BF8CDCF94283AFA7C11F920DC91A" "size" "B57ECE03D072AB1EDE0DCBF0536A2634" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "7EBE4D2001D70646CDEF17DDF77BE169" "size" "8C86CC7B070C9BC0D4A6C947C71C61C3" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "15DA0E0FF8102EC5B9E46E3BBF42AFB4" "size" "DA3C31261D777E9AC8058E18D298594A" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "924EFDAA99CC51ABD66DEB96B428B781" "size" "C7190C787E4CC5CA0C0E62F080C9F648" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "3156B1E47F7964A4DB6A3CB7283E3421" "size" "B6122CD740169CD1C31B862A7BACFA21" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "0F7DCC5427EA5D2994C91D486C614CD1" "size" "388BE6A2A90A9E2F58B8213CAA964FCC" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "235B6CF8EAFBB0DA87C1C6F5C841775E" "size" "2324A8537D82CD4C803AA16FCA886DEB" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "0E4DC6E3FB3DF7E56719D9469720FBE8" "size" "36C7A82E4076B29A17895CD342DB33AF" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "97478717B8D6DF1A4EDFD80644A48088" "size" "E22CA768001B4CB5ACFEAA4FF2C50D64" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "0B02BE753EA9037C0EE6D7DCC199058C" "size" "30AC78707BE88EE214F2914EEF38C5E0" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "C5DC9BB3DBFE801138DE005087405D25" "size" "9BBD053F777F5FDE628BFDF449AF0ACC" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } } } "2330356" { "config" { "language" "brazilian" "oslist" "macos" } "manifests" { "public" { "gid" "868191943506106262" "size" "586" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "83E9635302FB42FCAB53F1791A04A50F" "size" "68D78803D8101C26977382A06C4DB980" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "1130C15D88B3AA5238100DF7DD793648" "size" "CC55BAA70FB889750F7C7F099D3EF84D" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "FE0BC80E63B80EBBD98A6E0664737E50" "size" "ED517E9DC67F0E5DCF81CAF67A6E6F07" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "2817BCB3FFA670F52E6D3CB7466115B7" "size" "413FDDE11B79B93BBC13198A67EECE7C" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "662C12FD524480BBBEE68ADABBC86842" "size" "D3DE0359B1EF892722F547B661C7B73B" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "4E259FFF1BD0514439BDC48E7A8F149D" "size" "29F8E69A6619BA2064CFF81EBAAFBFCD" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "50DCC14EC26DF0C239130FA2EE4811E3" "size" "8E7007EB5D774E85D3735F2B0BD2C982" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "4EC3B8F10B45A7A34930E7EC0BBCFCF8" "size" "1097BADDAECDDFBA27AD290E2C64DF37" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "B481AC543CE4665A075186AAC3EA7697" "size" "F4D95C8213C1C92995B7378E38524718" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "243B0945D74A7BCFC382F6F944DFDEF3" "size" "72894E3FE0378E592939EF0B55620EB1" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "3003921443F6C2F9B2810CE3D85A6773" "size" "3B74549F586583FE0AA5F49DCC36956C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } } } "branches" { "public" { "buildid" "12374738" "timeupdated" "1696597346" } "agerating" { "buildid" "11198161" "pwdrequired" "1" "timeupdated" "1683718411" } "baseline" { "buildid" "11833416" "pwdrequired" "1" "timeupdated" "1690898615" } "ch_main" { "buildid" "12547634" "pwdrequired" "1" "timeupdated" "1698361398" } "ch_rc" { "buildid" "11840599" "pwdrequired" "1" "timeupdated" "1690912133" } "compat" { "buildid" "12020270" "pwdrequired" "1" "timeupdated" "1692862933" } "dlss" { "buildid" "12374021" "pwdrequired" "1" "timeupdated" "1696592727" } "mac_test1" { "buildid" "12547618" "pwdrequired" "1" "timeupdated" "1698361268" } "mac_test2" { "buildid" "12547622" "pwdrequired" "1" "timeupdated" "1698361289" } "mac_test3" { "buildid" "12552091" "pwdrequired" "1" "timeupdated" "1698401407" } "playtesting" { "buildid" "12477316" "pwdrequired" "1" "timeupdated" "1697675067" } "pt_bcn" { "buildid" "11614042" "pwdrequired" "1" "timeupdated" "1688387001" } "pt_dub" { "buildid" "11447416" "pwdrequired" "1" "timeupdated" "1686560824" } "pt_gf" { "buildid" "11672619" "pwdrequired" "1" "timeupdated" "1689063636" } "pt_gnt" { "buildid" "11672623" "pwdrequired" "1" "timeupdated" "1689063674" } "pt_kl" { "buildid" "11769478" "pwdrequired" "1" "timeupdated" "1690152919" } "pt_qbc" { "buildid" "11623906" "pwdrequired" "1" "timeupdated" "1688486751" } "qaprio" { "buildid" "12124688" "pwdrequired" "1" "timeupdated" "1694019935" } "release" { "buildid" "11899229" "pwdrequired" "1" "timeupdated" "1691559564" } "release_hf1" { "buildid" "11899245" "pwdrequired" "1" "timeupdated" "1691559660" } "release_hf2" { "buildid" "11894264" "pwdrequired" "1" "timeupdated" "1691558914" } "release_hf2.1" { "buildid" "11905964" "pwdrequired" "1" "timeupdated" "1691616669" } "release_hf3" { "buildid" "11921151" "pwdrequired" "1" "timeupdated" "1691757091" } "release_hf4" { "buildid" "12506557" "pwdrequired" "1" "timeupdated" "1698018261" } "release_patch1" { "buildid" "12035892" "pwdrequired" "1" "timeupdated" "1692997248" } "release_patch2" { "buildid" "12072128" "pwdrequired" "1" "timeupdated" "1693426893" } "release_patch3" { "buildid" "12255176" "pwdrequired" "1" "timeupdated" "1695375336" } "release_patch3_hf1" { "buildid" "12285396" "pwdrequired" "1" "timeupdated" "1695728971" } "release_patch3_hf2" { "buildid" "12335280" "pwdrequired" "1" "timeupdated" "1696255238" } "release_patch3_hf3" { "buildid" "12362465" "pwdrequired" "1" "timeupdated" "1696497528" } "release_patch4" { "buildid" "12547969" "pwdrequired" "1" "timeupdated" "1698364609" } "summer2020_loca" { "buildid" "12509327" "pwdrequired" "1" "timeupdated" "1698053556" } "temp" { "buildid" "12534813" "pwdrequired" "1" "timeupdated" "1698258992" } "testbranch" { "buildid" "11958164" "pwdrequired" "1" "timeupdated" "1692263157" } } } "ufs" { "quota" "2000000000" "maxnumfiles" "1000" } "localization" { "richpresence" { "english" { "tokens" { "#inmenu" "%game_state%" "#inlobby" "%game_state% - %state_details%" "#onmap" "%game_state%: %state_details%" "#ingmhost" "Hosting: %game_state% %state_details%" "#ingmclient" "Playing with Game Master: %game_state% %state_details%" "#ingmpreparing" "Preparing an Adventure %state_details%" } } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_required_app.txt ================================================ "appinfo" { "appid" "2378500" "common" { "name" "Digital Deluxe Edition DLC" "type" "DLC" "parent" "1086940" "releasestate" "released" "oslist" "windows,macos" "osarch" "64" "osextended" "macos64,macosapplesilicon" "content_descriptors" { "0" "1" "1" "2" "2" "5" } "has_adult_content" "1" "has_adult_content_sex" "1" "has_adult_content_violence" "1" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "store_asset_mtime" "1692306931" "associations" { "0" { "type" "developer" "name" "Larian Studios" } } "primary_genre" "25" "genres" { "0" "25" "1" "3" "2" "2" } "category" { "category_2" "1" "category_1" "1" "category_38" "1" "category_23" "1" "category_48" "1" "category_9" "1" "category_45" "1" "category_46" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "french" { "supported" "true" "subtitles" "true" } "german" { "supported" "true" "subtitles" "true" } "spanish" { "supported" "true" "subtitles" "true" } "polish" { "supported" "true" "subtitles" "true" } "russian" { "supported" "true" "subtitles" "true" } "schinese" { "supported" "true" "subtitles" "true" } "turkish" { "supported" "true" "subtitles" "true" } "brazilian" { "supported" "true" "subtitles" "true" } "italian" { "supported" "true" "subtitles" "true" } "latam" { "supported" "true" "subtitles" "true" } "tchinese" { "supported" "true" "subtitles" "true" } "ukrainian" { "supported" "true" "subtitles" "true" } } "steam_release_date" "1691074860" "gameid" "2378500" "store_tags" { "0" "21" "1" "122" "2" "9" "3" "4667" "4" "6650" } "review_score" "9" "review_percentage" "96" } "extended" { "dlcforappid" "1086940" "mustownapptopurchase" "1086940" "developer" "Larian Studios" "homepage" "https://baldursgate3.game" "dlcavailableonstore" "1" } } ================================================ FILE: FreePackages.Tests/TestData/app_with_restricted_countries.txt ================================================ "appinfo" { "appid" "1245610" "common" { "name" "AChat" "type" "Game" "releasestate" "released" "logo" "78aef8638fb68814d6c995463a1ccc6138c735e2" "logo_small" "78aef8638fb68814d6c995463a1ccc6138c735e2_thumb" "icon" "d86252b4752499d3d8c358bd81cd32377efe960a" "clienttga" "321fdd1e96311afd71ba793c3b237ca131a80ea4" "clienticon" "d91fa0f0939922b8bd57fd4bf17eeb61b50bcd9a" "oslist" "windows" "osarch" "" "osextended" "" "content_descriptors" { "0" "1" "1" "3" "2" "5" "3" "4" } "has_adult_content" "1" "has_adult_content_sex" "1" "restricted_countries" "CN,DE" "metacritic_name" "AChat" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomCenter" "width_pct" "50" "height_pct" "50" } } "store_asset_mtime" "1585654722" "associations" { "0" { "type" "developer" "name" "AChat Animation Studios" } "1" { "type" "publisher" "name" "AChat Animation Studios" } } "primary_genre" "4" "genres" { "0" "4" "1" "37" "2" "29" } "category" { "category_1" "1" "category_20" "1" "category_9" "1" "category_38" "1" "category_35" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } } "steam_release_date" "1585994503" "community_hub_visible" "1" "gameid" "1245610" "exfgls" "1" "store_tags" { "0" "12095" "1" "113" "2" "128" "3" "6650" "4" "597" "5" "5611" "6" "9551" "7" "24904" "8" "4191" "9" "4175" "10" "4747" "11" "3859" "12" "44868" "13" "9130" "14" "599" "15" "21978" } "review_score" "5" "review_percentage" "59" } "extended" { "developer" "AChat Animation Studios" "publisher" "AChat Animation Studios" "isfreeapp" "1" "listofdlc" "1564820" "dlcavailableonstore" "1" } "config" { "installdir" "AChat" "launch" { "0" { "executable" "achat.exe" "type" "default" "config" { "oslist" "windows" } } } } "depots" { "baselanguages" "english" "228985" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "1245611" { "config" { "oslist" "windows" "language" "" } "manifests" { "public" { "gid" "1032161292848350865" "size" "6011873632" "download" "1820684608" } } "encryptedmanifests" { "testing" { "gid" "6ABAB5F406B0DC92D357EAB05C6DF381" "size" "779EB049846899F587DAB2FB0DD29A77" "download" "A6F18E6F0FB7C93C339705463D7F4CA7" } } } "1245612" { "config" { "oslist" "windows" "language" "" } } "branches" { "public" { "buildid" "12555421" "timeupdated" "1698423380" } "testing" { "buildid" "12556154" "pwdrequired" "1" "timeupdated" "1698428218" } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_review_score.txt ================================================ "appinfo" { "appid" "440" "common" { "icon" "e3f595a92552da3d664ad00277fad2107345f743" "logo" "07385eb55b5ba974aebbe74d3c99626bda7920b8" "logo_small" "07385eb55b5ba974aebbe74d3c99626bda7920b8_thumb" "metacritic_url" "pc/teamfortress2" "name" "Team Fortress 2" "clienticon" "033bdd91842b6aca0633ee1e5f3e6b82f2e8962f" "clienttga" "689dd46bd63e3e460cdd86d936d5de409a291633" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "portuguese" "1" "polish" "1" "danish" "1" "dutch" "1" "finnish" "1" "norwegian" "1" "swedish" "1" "hungarian" "1" "czech" "1" "romanian" "1" "turkish" "1" "brazilian" "1" "bulgarian" "1" "greek" "1" "ukrainian" "1" } "clienticns" "b0780e91df4308b1ad57cc93d6032b4f0e2930cc" "linuxclienticon" "b2659c540592221fcd7675d76a0171f4b3782c1c" "oslist" "windows,macos,linux" "type" "game" "content_descriptors" { "0" "2" "1" "5" } "has_adult_content" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "2" "test_timestamp" "1648771200" "tested_build_id" "7850740" "tests" { "0" { "display" "3" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigNotFullyFunctional" } "1" { "display" "3" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsDoNotMatchDeckDevice" } "2" { "display" "3" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsNotLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } "4" { "display" "1" "token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "1" "small_text" "1" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "market_presence" "1" "metacritic_name" "Team Fortress 2" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "26" "height_pct" "37" } } "store_asset_mtime" "1682961190" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "37" "genres" { "0" "1" "1" "37" } "category" { "category_8" "1" "category_12" "1" "category_13" "1" "category_14" "1" "category_15" "1" "category_17" "1" "category_18" "1" "category_22" "1" "category_27" "1" "category_1" "1" "category_29" "1" "category_30" "1" "category_33" "1" "category_35" "1" "category_45" "1" "category_46" "1" "category_41" "1" "category_42" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "danish" { "supported" "true" } "dutch" { "supported" "true" } "finnish" { "supported" "true" } "french" { "supported" "true" } "german" { "supported" "true" } "italian" { "supported" "true" } "japanese" { "supported" "true" } "norwegian" { "supported" "true" } "polish" { "supported" "true" } "portuguese" { "supported" "true" } "russian" { "supported" "true" } "schinese" { "supported" "true" } "spanish" { "supported" "true" } "swedish" { "supported" "true" } "tchinese" { "supported" "true" } "koreana" { "supported" "true" } "czech" { "supported" "true" } "hungarian" { "supported" "true" } "brazilian" { "supported" "true" } "turkish" { "supported" "true" } "greek" { "supported" "true" } "bulgarian" { "supported" "true" } "romanian" { "supported" "true" } "thai" { "supported" "true" } "ukrainian" { "supported" "true" } } "original_release_date" "1191999600" "steam_release_date" "1191999600" "metacritic_score" "92" "metacritic_fullurl" "https://www.metacritic.com/game/pc/team-fortress-2?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "workshop_visible" "1" "community_hub_visible" "1" "gameid" "440" "exfgls" "1" "store_tags" { "0" "113" "1" "620519" "2" "3859" "3" "1663" "4" "1774" "5" "19" "6" "4155" "7" "5711" "8" "4136" "9" "3839" "10" "3843" "11" "3878" "12" "4195" "13" "4202" "14" "1685" "15" "1719" "16" "5752" "17" "1708" "18" "4562" "19" "1702" } "review_score" "8" "review_percentage" "93" } "extended" { "developer" "Valve" "developer_url" "http://www.valvesoftware.com/" "gamedir" "tf" "gamemanualurl" "http://store.steampowered.com/manual/440/" "homepage" "http://www.teamfortress.com/" "icon" "steam/games/icon_tf2" "icon2" "steam/games/icon_tf2" "isfreeapp" "1" "languages" "english,german,french,spanish,russian" "loadallbeforelaunch" "1" "minclientversion" "1393366296" "noservers" "0" "primarycache" "441" "primarycache_linux" "452" "requiressse" "1" "serverbrowsername" "Team Fortress 2" "sourcegame" "1" "state" "eStateAvailable" "vacmacmodulecache" "160" "vacmodulecache" "202" "vacmodulefilename" "sourceinit.dat" "validoslist" "windows,macos,linux" "deckresolutionoverride" "Native" "publisher" "Valve" "aliases" "tf2" "listofdlc" "456,457,458,459,217221,217222" } "config" { "verifyupdates" "1" "signedfiles" { "hl2.exe" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "client.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "engine.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "server.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "prec.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100BA240326DFC66BFDC28782BD644FC3BAB284F4A07554E17A8DA6CCA0B4AFBFC9BAB2938846D7595BC7A560FF6215C670C74EEB9D118DE9FC0E8ED0A18DD24D8DBAE8B950C6C062BA5DEFDECB967745C53433839EB7B1A6CA340D0E48273E18AB87106FBD22AC32B2776092E924D3C414DC3328735E984E4A1B1B4E72B0F41017020111" "sourcevr.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" } "usemms" "" "systemprofile" "1" "checkforupdatesbeforelaunch" "1" "installdir" "Team Fortress 2" "launch" { "0" { "executable" "hl2.exe" "arguments" "-steam -game tf" "vacmodulefilename" "resource\\sourceinit.dat" "config" { "oslist" "windows" } } "1" { "executable" "hl2_osx" "arguments" "-steam -game tf" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game tf -steam" "config" { "oslist" "linux" } } } "vrcompositorsupport" "0" "steamcontrollertemplateindex" "1" "steamcontrollerconfigdetails" { "1172518660" { "controller_type" "controller_steamcontroller_gordon" "enabled_branches" "default" } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2125279140" { "controller_type" "controller_mobile_touch" "enabled_branches" "default" "use_action_block" "false" } } "uselaunchcommandline" "1" } "depots" { "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish,brazilian,bulgarian,greek,ukrainian" "workshopdepot" "440" "hasdepotsindlc" "1" "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "441" { "systemdefined" "1" "manifests" { "public" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "pre_07_25_23_demos" { "gid" "2023276112389133529" "size" "26125661395" "download" "11978937568" } "pre_jungleinferno_demos" { "gid" "7707612755534478338" "size" "18855865767" "download" "7735778976" } "pre_smissmas_2022_demos" { "gid" "314077012305764573" "size" "24749544116" "download" "10985537760" } "prerelease" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "vscript_test" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } } } "440" { "systemdefined" "1" "manifests" { "public" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_07_25_23_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_jungleinferno_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_smissmas_2022_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "prerelease" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "vscript_test" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } } } "232251" { "config" { "oslist" "windows" } "systemdefined" "1" "manifests" { "public" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "pre_07_25_23_demos" { "gid" "1093030316367308660" "size" "585005817" "download" "467050320" } "pre_jungleinferno_demos" { "gid" "2174530283606128348" "size" "562700702" "download" "445092848" } "pre_smissmas_2022_demos" { "gid" "8319568912250137931" "size" "584144460" "download" "466735776" } "prerelease" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "vscript_test" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } } } "232252" { "config" { "oslist" "macos" } "systemdefined" "1" "manifests" { "public" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "pre_07_25_23_demos" { "gid" "4845664414220472500" "size" "510895405" "download" "391271824" } "pre_jungleinferno_demos" { "gid" "8624037758464932425" "size" "485750759" "download" "370815712" } "pre_smissmas_2022_demos" { "gid" "2262584799279223344" "size" "509176417" "download" "390890000" } "prerelease" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "vscript_test" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } } } "232253" { "config" { "oslist" "linux" } "systemdefined" "1" "manifests" { "public" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "pre_07_25_23_demos" { "gid" "8481848623592128300" "size" "562481508" "download" "446661232" } "pre_jungleinferno_demos" { "gid" "3512165917877440762" "size" "536705326" "download" "424011840" } "pre_smissmas_2022_demos" { "gid" "2039032268643181297" "size" "560994616" "download" "446299360" } "prerelease" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "vscript_test" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } } } "444" { "config" { "lowviolence" "1" } "manifests" { "public" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_07_25_23_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_jungleinferno_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_smissmas_2022_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "prerelease" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "vscript_test" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } } } "445" { "config" { "language" "russian" } "manifests" { "public" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_07_25_23_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_jungleinferno_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_smissmas_2022_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "prerelease" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "vscript_test" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } } } "446" { "config" { "language" "german" } "manifests" { "public" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_07_25_23_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_jungleinferno_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_smissmas_2022_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "prerelease" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "vscript_test" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } } } "448" { "config" { "language" "french" } "manifests" { "public" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_07_25_23_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_jungleinferno_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_smissmas_2022_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "prerelease" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "vscript_test" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } } } "449" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_07_25_23_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_jungleinferno_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_smissmas_2022_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "prerelease" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "vscript_test" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } } } "branches" { "public" { "buildid" "12558449" "timeupdated" "1698450187" } "pre_07_25_23_demos" { "buildid" "11753452" "description" "Pre-07-25-23 Demo Playback" "timeupdated" "1690416239" } "pre_jungleinferno_demos" { "buildid" "2119861" "timeupdated" "1690827460" } "pre_smissmas_2022_demos" { "buildid" "9872056" "description" "Pre-Smissmas 2022 Demo Playback" "timeupdated" "1690827525" } "prerelease" { "buildid" "12558449" "timeupdated" "1698450253" } "vscript_test" { "buildid" "12558449" "description" "VScript beta. Cannot connect to public servers or matchmaking." "timeupdated" "1698450262" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "1000" "hidecloudui" "0" } "sysreqs" { "macos" { "supported" "1" "wants_fast_gpu" "1" "intel900" "warn" "intelx3100" "warn" "8086" { "27a6" "warn" "2a02" "warn" } "10de" { "009d" "deny" "0391" "deny" "0393" "deny" "0395" "deny" } } "macos104" { "supported" "0" "os_min" "macos1058" } "macos105" { "supported" "0" "os_min" "macos1058" } "macos106" { "supported" "0" "os_min" "macos1063" } } "localization" { "richpresence" { "english" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Main Menu" "#tf_richpresence_state_searchinggeneric" "Searching for a Match" "#tf_richpresence_state_searchingmatchgroup" "Searching - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In Match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Joining Match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Joining {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Joining Community Server" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Special Event" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "bulgarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Главно меню" "#tf_richpresence_state_searchinggeneric" "Търсене за мач" "#tf_richpresence_state_searchingmatchgroup" "Търсене — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "В мач — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Присъединяване към мач" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Присъединяване — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Общност — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Присъединяване към обществен сървър" "#tf_richpresence_matchgroup_competitive6v6" "Съревнователна" "#tf_richpresence_matchgroup_casual" "Неангажираща" "#tf_richpresence_matchgroup_specialevent" "Специално събитие" "#tf_richpresence_matchgroup_mannup" "Щателни Манневри" "#tf_richpresence_matchgroup_bootcamp" "Тренировъчен лагер" } } "danish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmenu" "#tf_richpresence_state_searchinggeneric" "Søger efter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søger - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I en kamp - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Slutter til en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Slutter til {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Fællesskab - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Slutter til en fællesskabsserver" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Særlig begivenhed" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Træning" } } "french" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Cherche un match" "#tf_richpresence_state_searchingmatchgroup" "Recherche - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Dans un match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Rejoint un match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Rejoint un match {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Serveur de la communauté - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Rejoint un serveur de la communauté" "#tf_richpresence_matchgroup_competitive6v6" "Compétitif" "#tf_richpresence_matchgroup_casual" "Occasionnel" "#tf_richpresence_matchgroup_specialevent" "Événement spécial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Camp d'entraînement" } } "german" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hauptmenü" "#tf_richpresence_state_searchinggeneric" "Suche nach Spiel läuft" "#tf_richpresence_state_searchingmatchgroup" "Suche läuft – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Im Spiel – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Spielbeitritt erfolgt" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Sie treten {#TF_RichPresence_MatchGroup_%matchgrouploc%} bei" "#tf_richpresence_state_playingcommunity" "Community – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Verbindung zum Communityserver erfolgt" "#tf_richpresence_matchgroup_competitive6v6" "Wettkampf" "#tf_richpresence_matchgroup_casual" "Gelegenheitsspiel" "#tf_richpresence_matchgroup_specialevent" "Sonderevent" "#tf_richpresence_matchgroup_mannup" "Mann-Up" "#tf_richpresence_matchgroup_bootcamp" "Training" } } "hungarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Főmenüben" "#tf_richpresence_state_searchinggeneric" "Meccset keres" "#tf_richpresence_state_searchingmatchgroup" "Keres - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Meccsen - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Meccshez csatlakozik" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Csatlakozik: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Közösség - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Közösségi szerverhez csatlakozik" "#tf_richpresence_matchgroup_competitive6v6" "Versengő" "#tf_richpresence_matchgroup_casual" "Könnyed" "#tf_richpresence_matchgroup_specialevent" "Különleges esemény" "#tf_richpresence_matchgroup_mannup" "„Mannj rá”" "#tf_richpresence_matchgroup_bootcamp" "Kiképzés" } } "italian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principale" "#tf_richpresence_state_searchinggeneric" "In cerca di una partita" "#tf_richpresence_state_searchingmatchgroup" "Ricerca in corso - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In partita - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Unione a una partita" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Unione a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunità - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Unione a un server della Comunità" "#tf_richpresence_matchgroup_competitive6v6" "Competitiva" "#tf_richpresence_matchgroup_casual" "Leggera" "#tf_richpresence_matchgroup_specialevent" "Evento speciale" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Addestramento" } } "polish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu główne" "#tf_richpresence_state_searchinggeneric" "Wyszukiwanie gry" "#tf_richpresence_state_searchingmatchgroup" "Wyszukiwanie - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "W grze - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Dołączanie do gry" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Dołączanie do trybu „{#TF_RichPresence_MatchGroup_%matchgrouploc%}”" "#tf_richpresence_state_playingcommunity" "Gra społeczności - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Dołączanie do serwera społeczności" "#tf_richpresence_matchgroup_competitive6v6" "Rankingowy" "#tf_richpresence_matchgroup_casual" "Swobodny" "#tf_richpresence_matchgroup_specialevent" "Wydarzenie specjalne" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Trening" } } "russian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "В главном меню" "#tf_richpresence_state_searchinggeneric" "Ищет игру" "#tf_richpresence_state_searchingmatchgroup" "Поиск ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playinggeneric" "В игре: %currentmap%" "#tf_richpresence_state_loadinggeneric" "Заходит на сервер" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%}: %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Заходит на сервер ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playingcommunity" "Сервер сообщества: %currentmap%" "#tf_richpresence_state_loadingcommunity" "Заходит на сервер сообщества" "#tf_richpresence_matchgroup_competitive6v6" "Соревновательная игра" "#tf_richpresence_matchgroup_casual" "Обычная игра" "#tf_richpresence_matchgroup_specialevent" "Праздничный режим" "#tf_richpresence_matchgroup_mannup" "МАННёвры" "#tf_richpresence_matchgroup_bootcamp" "Учебка" } } "spanish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } "thai" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "เมนูหลัก" "#tf_richpresence_state_searchinggeneric" "กำลังค้นหาแมตช์" "#tf_richpresence_state_searchingmatchgroup" "กำลังค้นหา - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "อยู่ในแมตช์ - %currentmap%" "#tf_richpresence_state_loadinggeneric" "กำลังเข้าร่วมแมตช์" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "กำลังเข้าร่วม {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "ชุมชน - %currentmap%" "#tf_richpresence_state_loadingcommunity" "กำลังเข้าร่วมเซิร์ฟเวอร์ชุมชน" "#tf_richpresence_matchgroup_competitive6v6" "การแข่งขัน" "#tf_richpresence_matchgroup_casual" "แคชชวล" "#tf_richpresence_matchgroup_specialevent" "กิจกรรมพิเศษ" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "บูทแคมป์" } } "turkish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Ana Menü" "#tf_richpresence_state_searchinggeneric" "Maç Aranıyor" "#tf_richpresence_state_searchingmatchgroup" "Aranıyor - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Maçta - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Maça Katılınıyor" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Katılınıyor {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Topluluk - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Topluluk Sunucusuna Katılınıyor" "#tf_richpresence_matchgroup_competitive6v6" "Rekabetçi" "#tf_richpresence_matchgroup_casual" "Basit Eğlence" "#tf_richpresence_matchgroup_specialevent" "Özel Etkinlik" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Eğitim" } } "brazilian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Buscando partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Em partida — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Entrando em partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Entrando em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor da comunidade — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Entrando em servidor da comunidade" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Treino (MvM)" } } "czech" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hlavní menu" "#tf_richpresence_state_searchinggeneric" "Vyhledávání zápasu" "#tf_richpresence_state_searchingmatchgroup" "Vyhledávání – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Zápas – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Připojování do zápasu" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Připojování – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Komunitní server – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Připojování ke komunitnímu serveru" "#tf_richpresence_matchgroup_competitive6v6" "Kompetitivní" "#tf_richpresence_matchgroup_casual" "Nenáročný" "#tf_richpresence_matchgroup_specialevent" "Speciální událost" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "finnish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Päävalikko" "#tf_richpresence_state_searchinggeneric" "Etsii peliä" "#tf_richpresence_state_searchingmatchgroup" "Etsii - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Pelissä - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Liittymässä peliin" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Liittyy {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Yhteisö - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Liittymässä yhteisöpalvelimelle" "#tf_richpresence_matchgroup_competitive6v6" "Kilpailullinen" "#tf_richpresence_matchgroup_casual" "Tavallinen" "#tf_richpresence_matchgroup_specialevent" "Erikoistapahtuma" "#tf_richpresence_matchgroup_mannup" "Miehisty-tila" "#tf_richpresence_matchgroup_bootcamp" "Harjoitusleiri" } } "portuguese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "A procurar partida" "#tf_richpresence_state_searchingmatchgroup" "A procurar - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Numa partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "A entrar numa partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "A entrar em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor comunitário - %currentmap%" "#tf_richpresence_state_loadingcommunity" "A entrar num servidor comunitário" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Iniciação" } } "ukrainian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Головне меню" "#tf_richpresence_state_searchinggeneric" "Пошук матчу" "#tf_richpresence_state_searchingmatchgroup" "Пошук — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "У матчі — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Приєднується до матчу" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Приєднується до {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Спільнота — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Приєднується до сервера спільноти" "#tf_richpresence_matchgroup_competitive6v6" "Змагальний режим" "#tf_richpresence_matchgroup_casual" "Звичайний режим" "#tf_richpresence_matchgroup_specialevent" "Особлива подія" "#tf_richpresence_matchgroup_mannup" "«Манневри»" "#tf_richpresence_matchgroup_bootcamp" "«Тренувальний табір»" } } "swedish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Huvudmeny" "#tf_richpresence_state_searchinggeneric" "Söker efter en match" "#tf_richpresence_state_searchingmatchgroup" "Söker - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Går med i match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Går med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Gemenskap - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Går med i gemenskapserver" "#tf_richpresence_matchgroup_competitive6v6" "Tävlingsinriktat" "#tf_richpresence_matchgroup_casual" "Vanligt" "#tf_richpresence_matchgroup_specialevent" "Specialevent" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Träningsläger" } } "greek" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Κύριο μενού" "#tf_richpresence_state_searchinggeneric" "Αναζήτηση αγώνα" "#tf_richpresence_state_searchingmatchgroup" "Αναζήτηση - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Σε αγώνα - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Σύνδεση σε αγώνα" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Σύνδεση σε {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Κοινότητα - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Σύνδεση σε διακομιστή κοινότητας" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Ειδικό συμβάν" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "norwegian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmeny" "#tf_richpresence_state_searchinggeneric" "Søker etter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søker – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I kamp – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Blir med i en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Blir med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Samfunn – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Blir med på samfunnstjener" "#tf_richpresence_matchgroup_competitive6v6" "Konkurransespilling" "#tf_richpresence_matchgroup_casual" "Avslappet" "#tf_richpresence_matchgroup_specialevent" "Spesielt arrangement" "#tf_richpresence_matchgroup_mannup" "Mann deg opp" "#tf_richpresence_matchgroup_bootcamp" "Treningsleir" } } "schinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主菜单" "#tf_richpresence_state_searchinggeneric" "正在搜索比赛" "#tf_richpresence_state_searchingmatchgroup" "正在搜索 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比赛中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "正在加入比赛" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "正在加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "社区服务器 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "正在加入社区服务器" "#tf_richpresence_matchgroup_competitive6v6" "竞技模式" "#tf_richpresence_matchgroup_casual" "休闲模式" "#tf_richpresence_matchgroup_specialevent" "特别活动" "#tf_richpresence_matchgroup_mannup" "曼恩奇现" "#tf_richpresence_matchgroup_bootcamp" "新兵训练营" } } "dutch" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hoofdmenu" "#tf_richpresence_state_searchinggeneric" "Naar een spel aan het zoeken" "#tf_richpresence_state_searchingmatchgroup" "Zoeken - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In spel - %currentmap%" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_matchgroup_competitive6v6" "Competitief" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Speciaal evenement" "#tf_richpresence_matchgroup_mannup" "Vermann je" "#tf_richpresence_matchgroup_bootcamp" "Trainingskamp" } } "japanese" { "tokens" { "#tf_richpresence_state_mainmenu" "メインメニュー" "#tf_richpresence_state_loadinggeneric" "マッチに参加しています" "#tf_richpresence_matchgroup_competitive6v6" "対戦" "#tf_richpresence_matchgroup_casual" "カジュアル" "#tf_richpresence_matchgroup_specialevent" "スペシャルイベント" "#tf_richpresence_matchgroup_bootcamp" "ブート・キャンプ" } } "tchinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主選單" "#tf_richpresence_state_searchinggeneric" "搜尋比賽中" "#tf_richpresence_state_searchingmatchgroup" "搜尋中 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比賽中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "加入比賽中" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%} 中" "#tf_richpresence_state_playingcommunity" "社群 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "加入社群伺服器中" "#tf_richpresence_matchgroup_competitive6v6" "競技模式" "#tf_richpresence_matchgroup_casual" "休閒模式" "#tf_richpresence_matchgroup_specialevent" "特殊活動" "#tf_richpresence_matchgroup_mannup" "曼恩對決機器曼起來模式" "#tf_richpresence_matchgroup_bootcamp" "曼恩對決機器訓練營" } } "vietnamese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Đại sảnh" "#tf_richpresence_state_searchinggeneric" "Đang tìm trận đấu" "#tf_richpresence_state_searchingmatchgroup" "Đang tìm - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Đang chơi - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Đang tham gia trận" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Đang tham gia {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Cộng đồng - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Đang tham gia máy chủ cộng đồng" "#tf_richpresence_matchgroup_competitive6v6" "Tranh đấu" "#tf_richpresence_matchgroup_casual" "Đơn giản" "#tf_richpresence_matchgroup_specialevent" "Sự kiện đặc biệt" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "latam" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_state.txt ================================================ "appinfo" { "appid" "440" "common" { "icon" "e3f595a92552da3d664ad00277fad2107345f743" "logo" "07385eb55b5ba974aebbe74d3c99626bda7920b8" "logo_small" "07385eb55b5ba974aebbe74d3c99626bda7920b8_thumb" "metacritic_url" "pc/teamfortress2" "name" "Team Fortress 2" "clienticon" "033bdd91842b6aca0633ee1e5f3e6b82f2e8962f" "clienttga" "689dd46bd63e3e460cdd86d936d5de409a291633" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "portuguese" "1" "polish" "1" "danish" "1" "dutch" "1" "finnish" "1" "norwegian" "1" "swedish" "1" "hungarian" "1" "czech" "1" "romanian" "1" "turkish" "1" "brazilian" "1" "bulgarian" "1" "greek" "1" "ukrainian" "1" } "clienticns" "b0780e91df4308b1ad57cc93d6032b4f0e2930cc" "linuxclienticon" "b2659c540592221fcd7675d76a0171f4b3782c1c" "oslist" "windows,macos,linux" "type" "game" "content_descriptors" { "0" "2" "1" "5" } "has_adult_content" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "2" "test_timestamp" "1648771200" "tested_build_id" "7850740" "tests" { "0" { "display" "3" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigNotFullyFunctional" } "1" { "display" "3" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsDoNotMatchDeckDevice" } "2" { "display" "3" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsNotLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } "4" { "display" "1" "token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "1" "small_text" "1" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "market_presence" "1" "metacritic_name" "Team Fortress 2" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "26" "height_pct" "37" } } "store_asset_mtime" "1682961190" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "37" "genres" { "0" "1" "1" "37" } "category" { "category_8" "1" "category_12" "1" "category_13" "1" "category_14" "1" "category_15" "1" "category_17" "1" "category_18" "1" "category_22" "1" "category_27" "1" "category_1" "1" "category_29" "1" "category_30" "1" "category_33" "1" "category_35" "1" "category_45" "1" "category_46" "1" "category_41" "1" "category_42" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "danish" { "supported" "true" } "dutch" { "supported" "true" } "finnish" { "supported" "true" } "french" { "supported" "true" } "german" { "supported" "true" } "italian" { "supported" "true" } "japanese" { "supported" "true" } "norwegian" { "supported" "true" } "polish" { "supported" "true" } "portuguese" { "supported" "true" } "russian" { "supported" "true" } "schinese" { "supported" "true" } "spanish" { "supported" "true" } "swedish" { "supported" "true" } "tchinese" { "supported" "true" } "koreana" { "supported" "true" } "czech" { "supported" "true" } "hungarian" { "supported" "true" } "brazilian" { "supported" "true" } "turkish" { "supported" "true" } "greek" { "supported" "true" } "bulgarian" { "supported" "true" } "romanian" { "supported" "true" } "thai" { "supported" "true" } "ukrainian" { "supported" "true" } } "original_release_date" "1191999600" "steam_release_date" "1191999600" "metacritic_score" "92" "metacritic_fullurl" "https://www.metacritic.com/game/pc/team-fortress-2?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "workshop_visible" "1" "community_hub_visible" "1" "gameid" "440" "exfgls" "1" "store_tags" { "0" "113" "1" "620519" "2" "3859" "3" "1663" "4" "1774" "5" "19" "6" "4155" "7" "5711" "8" "4136" "9" "3839" "10" "3843" "11" "3878" "12" "4195" "13" "4202" "14" "1685" "15" "1719" "16" "5752" "17" "1708" "18" "4562" "19" "1702" } "review_score" "8" "review_percentage" "93" } "extended" { "developer" "Valve" "developer_url" "http://www.valvesoftware.com/" "gamedir" "tf" "gamemanualurl" "http://store.steampowered.com/manual/440/" "homepage" "http://www.teamfortress.com/" "icon" "steam/games/icon_tf2" "icon2" "steam/games/icon_tf2" "isfreeapp" "1" "languages" "english,german,french,spanish,russian" "loadallbeforelaunch" "1" "minclientversion" "1393366296" "noservers" "0" "primarycache" "441" "primarycache_linux" "452" "requiressse" "1" "serverbrowsername" "Team Fortress 2" "sourcegame" "1" "state" "eStateAvailable" "vacmacmodulecache" "160" "vacmodulecache" "202" "vacmodulefilename" "sourceinit.dat" "validoslist" "windows,macos,linux" "deckresolutionoverride" "Native" "publisher" "Valve" "aliases" "tf2" "listofdlc" "456,457,458,459,217221,217222" } "config" { "verifyupdates" "1" "signedfiles" { "hl2.exe" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "client.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "engine.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "server.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "prec.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100BA240326DFC66BFDC28782BD644FC3BAB284F4A07554E17A8DA6CCA0B4AFBFC9BAB2938846D7595BC7A560FF6215C670C74EEB9D118DE9FC0E8ED0A18DD24D8DBAE8B950C6C062BA5DEFDECB967745C53433839EB7B1A6CA340D0E48273E18AB87106FBD22AC32B2776092E924D3C414DC3328735E984E4A1B1B4E72B0F41017020111" "sourcevr.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" } "usemms" "" "systemprofile" "1" "checkforupdatesbeforelaunch" "1" "installdir" "Team Fortress 2" "launch" { "0" { "executable" "hl2.exe" "arguments" "-steam -game tf" "vacmodulefilename" "resource\\sourceinit.dat" "config" { "oslist" "windows" } } "1" { "executable" "hl2_osx" "arguments" "-steam -game tf" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game tf -steam" "config" { "oslist" "linux" } } } "vrcompositorsupport" "0" "steamcontrollertemplateindex" "1" "steamcontrollerconfigdetails" { "1172518660" { "controller_type" "controller_steamcontroller_gordon" "enabled_branches" "default" } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2125279140" { "controller_type" "controller_mobile_touch" "enabled_branches" "default" "use_action_block" "false" } } "uselaunchcommandline" "1" } "depots" { "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish,brazilian,bulgarian,greek,ukrainian" "workshopdepot" "440" "hasdepotsindlc" "1" "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "441" { "systemdefined" "1" "manifests" { "public" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "pre_07_25_23_demos" { "gid" "2023276112389133529" "size" "26125661395" "download" "11978937568" } "pre_jungleinferno_demos" { "gid" "7707612755534478338" "size" "18855865767" "download" "7735778976" } "pre_smissmas_2022_demos" { "gid" "314077012305764573" "size" "24749544116" "download" "10985537760" } "prerelease" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "vscript_test" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } } } "440" { "systemdefined" "1" "manifests" { "public" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_07_25_23_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_jungleinferno_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_smissmas_2022_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "prerelease" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "vscript_test" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } } } "232251" { "config" { "oslist" "windows" } "systemdefined" "1" "manifests" { "public" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "pre_07_25_23_demos" { "gid" "1093030316367308660" "size" "585005817" "download" "467050320" } "pre_jungleinferno_demos" { "gid" "2174530283606128348" "size" "562700702" "download" "445092848" } "pre_smissmas_2022_demos" { "gid" "8319568912250137931" "size" "584144460" "download" "466735776" } "prerelease" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "vscript_test" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } } } "232252" { "config" { "oslist" "macos" } "systemdefined" "1" "manifests" { "public" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "pre_07_25_23_demos" { "gid" "4845664414220472500" "size" "510895405" "download" "391271824" } "pre_jungleinferno_demos" { "gid" "8624037758464932425" "size" "485750759" "download" "370815712" } "pre_smissmas_2022_demos" { "gid" "2262584799279223344" "size" "509176417" "download" "390890000" } "prerelease" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "vscript_test" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } } } "232253" { "config" { "oslist" "linux" } "systemdefined" "1" "manifests" { "public" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "pre_07_25_23_demos" { "gid" "8481848623592128300" "size" "562481508" "download" "446661232" } "pre_jungleinferno_demos" { "gid" "3512165917877440762" "size" "536705326" "download" "424011840" } "pre_smissmas_2022_demos" { "gid" "2039032268643181297" "size" "560994616" "download" "446299360" } "prerelease" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "vscript_test" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } } } "444" { "config" { "lowviolence" "1" } "manifests" { "public" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_07_25_23_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_jungleinferno_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_smissmas_2022_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "prerelease" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "vscript_test" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } } } "445" { "config" { "language" "russian" } "manifests" { "public" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_07_25_23_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_jungleinferno_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_smissmas_2022_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "prerelease" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "vscript_test" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } } } "446" { "config" { "language" "german" } "manifests" { "public" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_07_25_23_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_jungleinferno_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_smissmas_2022_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "prerelease" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "vscript_test" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } } } "448" { "config" { "language" "french" } "manifests" { "public" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_07_25_23_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_jungleinferno_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_smissmas_2022_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "prerelease" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "vscript_test" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } } } "449" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_07_25_23_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_jungleinferno_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_smissmas_2022_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "prerelease" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "vscript_test" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } } } "branches" { "public" { "buildid" "12558449" "timeupdated" "1698450187" } "pre_07_25_23_demos" { "buildid" "11753452" "description" "Pre-07-25-23 Demo Playback" "timeupdated" "1690416239" } "pre_jungleinferno_demos" { "buildid" "2119861" "timeupdated" "1690827460" } "pre_smissmas_2022_demos" { "buildid" "9872056" "description" "Pre-Smissmas 2022 Demo Playback" "timeupdated" "1690827525" } "prerelease" { "buildid" "12558449" "timeupdated" "1698450253" } "vscript_test" { "buildid" "12558449" "description" "VScript beta. Cannot connect to public servers or matchmaking." "timeupdated" "1698450262" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "1000" "hidecloudui" "0" } "sysreqs" { "macos" { "supported" "1" "wants_fast_gpu" "1" "intel900" "warn" "intelx3100" "warn" "8086" { "27a6" "warn" "2a02" "warn" } "10de" { "009d" "deny" "0391" "deny" "0393" "deny" "0395" "deny" } } "macos104" { "supported" "0" "os_min" "macos1058" } "macos105" { "supported" "0" "os_min" "macos1058" } "macos106" { "supported" "0" "os_min" "macos1063" } } "localization" { "richpresence" { "english" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Main Menu" "#tf_richpresence_state_searchinggeneric" "Searching for a Match" "#tf_richpresence_state_searchingmatchgroup" "Searching - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In Match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Joining Match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Joining {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Joining Community Server" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Special Event" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "bulgarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Главно меню" "#tf_richpresence_state_searchinggeneric" "Търсене за мач" "#tf_richpresence_state_searchingmatchgroup" "Търсене — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "В мач — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Присъединяване към мач" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Присъединяване — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Общност — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Присъединяване към обществен сървър" "#tf_richpresence_matchgroup_competitive6v6" "Съревнователна" "#tf_richpresence_matchgroup_casual" "Неангажираща" "#tf_richpresence_matchgroup_specialevent" "Специално събитие" "#tf_richpresence_matchgroup_mannup" "Щателни Манневри" "#tf_richpresence_matchgroup_bootcamp" "Тренировъчен лагер" } } "danish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmenu" "#tf_richpresence_state_searchinggeneric" "Søger efter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søger - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I en kamp - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Slutter til en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Slutter til {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Fællesskab - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Slutter til en fællesskabsserver" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Særlig begivenhed" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Træning" } } "french" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Cherche un match" "#tf_richpresence_state_searchingmatchgroup" "Recherche - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Dans un match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Rejoint un match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Rejoint un match {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Serveur de la communauté - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Rejoint un serveur de la communauté" "#tf_richpresence_matchgroup_competitive6v6" "Compétitif" "#tf_richpresence_matchgroup_casual" "Occasionnel" "#tf_richpresence_matchgroup_specialevent" "Événement spécial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Camp d'entraînement" } } "german" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hauptmenü" "#tf_richpresence_state_searchinggeneric" "Suche nach Spiel läuft" "#tf_richpresence_state_searchingmatchgroup" "Suche läuft – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Im Spiel – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Spielbeitritt erfolgt" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Sie treten {#TF_RichPresence_MatchGroup_%matchgrouploc%} bei" "#tf_richpresence_state_playingcommunity" "Community – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Verbindung zum Communityserver erfolgt" "#tf_richpresence_matchgroup_competitive6v6" "Wettkampf" "#tf_richpresence_matchgroup_casual" "Gelegenheitsspiel" "#tf_richpresence_matchgroup_specialevent" "Sonderevent" "#tf_richpresence_matchgroup_mannup" "Mann-Up" "#tf_richpresence_matchgroup_bootcamp" "Training" } } "hungarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Főmenüben" "#tf_richpresence_state_searchinggeneric" "Meccset keres" "#tf_richpresence_state_searchingmatchgroup" "Keres - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Meccsen - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Meccshez csatlakozik" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Csatlakozik: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Közösség - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Közösségi szerverhez csatlakozik" "#tf_richpresence_matchgroup_competitive6v6" "Versengő" "#tf_richpresence_matchgroup_casual" "Könnyed" "#tf_richpresence_matchgroup_specialevent" "Különleges esemény" "#tf_richpresence_matchgroup_mannup" "„Mannj rá”" "#tf_richpresence_matchgroup_bootcamp" "Kiképzés" } } "italian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principale" "#tf_richpresence_state_searchinggeneric" "In cerca di una partita" "#tf_richpresence_state_searchingmatchgroup" "Ricerca in corso - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In partita - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Unione a una partita" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Unione a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunità - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Unione a un server della Comunità" "#tf_richpresence_matchgroup_competitive6v6" "Competitiva" "#tf_richpresence_matchgroup_casual" "Leggera" "#tf_richpresence_matchgroup_specialevent" "Evento speciale" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Addestramento" } } "polish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu główne" "#tf_richpresence_state_searchinggeneric" "Wyszukiwanie gry" "#tf_richpresence_state_searchingmatchgroup" "Wyszukiwanie - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "W grze - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Dołączanie do gry" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Dołączanie do trybu „{#TF_RichPresence_MatchGroup_%matchgrouploc%}”" "#tf_richpresence_state_playingcommunity" "Gra społeczności - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Dołączanie do serwera społeczności" "#tf_richpresence_matchgroup_competitive6v6" "Rankingowy" "#tf_richpresence_matchgroup_casual" "Swobodny" "#tf_richpresence_matchgroup_specialevent" "Wydarzenie specjalne" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Trening" } } "russian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "В главном меню" "#tf_richpresence_state_searchinggeneric" "Ищет игру" "#tf_richpresence_state_searchingmatchgroup" "Поиск ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playinggeneric" "В игре: %currentmap%" "#tf_richpresence_state_loadinggeneric" "Заходит на сервер" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%}: %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Заходит на сервер ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playingcommunity" "Сервер сообщества: %currentmap%" "#tf_richpresence_state_loadingcommunity" "Заходит на сервер сообщества" "#tf_richpresence_matchgroup_competitive6v6" "Соревновательная игра" "#tf_richpresence_matchgroup_casual" "Обычная игра" "#tf_richpresence_matchgroup_specialevent" "Праздничный режим" "#tf_richpresence_matchgroup_mannup" "МАННёвры" "#tf_richpresence_matchgroup_bootcamp" "Учебка" } } "spanish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } "thai" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "เมนูหลัก" "#tf_richpresence_state_searchinggeneric" "กำลังค้นหาแมตช์" "#tf_richpresence_state_searchingmatchgroup" "กำลังค้นหา - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "อยู่ในแมตช์ - %currentmap%" "#tf_richpresence_state_loadinggeneric" "กำลังเข้าร่วมแมตช์" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "กำลังเข้าร่วม {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "ชุมชน - %currentmap%" "#tf_richpresence_state_loadingcommunity" "กำลังเข้าร่วมเซิร์ฟเวอร์ชุมชน" "#tf_richpresence_matchgroup_competitive6v6" "การแข่งขัน" "#tf_richpresence_matchgroup_casual" "แคชชวล" "#tf_richpresence_matchgroup_specialevent" "กิจกรรมพิเศษ" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "บูทแคมป์" } } "turkish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Ana Menü" "#tf_richpresence_state_searchinggeneric" "Maç Aranıyor" "#tf_richpresence_state_searchingmatchgroup" "Aranıyor - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Maçta - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Maça Katılınıyor" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Katılınıyor {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Topluluk - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Topluluk Sunucusuna Katılınıyor" "#tf_richpresence_matchgroup_competitive6v6" "Rekabetçi" "#tf_richpresence_matchgroup_casual" "Basit Eğlence" "#tf_richpresence_matchgroup_specialevent" "Özel Etkinlik" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Eğitim" } } "brazilian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Buscando partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Em partida — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Entrando em partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Entrando em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor da comunidade — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Entrando em servidor da comunidade" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Treino (MvM)" } } "czech" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hlavní menu" "#tf_richpresence_state_searchinggeneric" "Vyhledávání zápasu" "#tf_richpresence_state_searchingmatchgroup" "Vyhledávání – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Zápas – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Připojování do zápasu" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Připojování – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Komunitní server – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Připojování ke komunitnímu serveru" "#tf_richpresence_matchgroup_competitive6v6" "Kompetitivní" "#tf_richpresence_matchgroup_casual" "Nenáročný" "#tf_richpresence_matchgroup_specialevent" "Speciální událost" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "finnish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Päävalikko" "#tf_richpresence_state_searchinggeneric" "Etsii peliä" "#tf_richpresence_state_searchingmatchgroup" "Etsii - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Pelissä - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Liittymässä peliin" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Liittyy {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Yhteisö - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Liittymässä yhteisöpalvelimelle" "#tf_richpresence_matchgroup_competitive6v6" "Kilpailullinen" "#tf_richpresence_matchgroup_casual" "Tavallinen" "#tf_richpresence_matchgroup_specialevent" "Erikoistapahtuma" "#tf_richpresence_matchgroup_mannup" "Miehisty-tila" "#tf_richpresence_matchgroup_bootcamp" "Harjoitusleiri" } } "portuguese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "A procurar partida" "#tf_richpresence_state_searchingmatchgroup" "A procurar - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Numa partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "A entrar numa partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "A entrar em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor comunitário - %currentmap%" "#tf_richpresence_state_loadingcommunity" "A entrar num servidor comunitário" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Iniciação" } } "ukrainian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Головне меню" "#tf_richpresence_state_searchinggeneric" "Пошук матчу" "#tf_richpresence_state_searchingmatchgroup" "Пошук — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "У матчі — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Приєднується до матчу" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Приєднується до {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Спільнота — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Приєднується до сервера спільноти" "#tf_richpresence_matchgroup_competitive6v6" "Змагальний режим" "#tf_richpresence_matchgroup_casual" "Звичайний режим" "#tf_richpresence_matchgroup_specialevent" "Особлива подія" "#tf_richpresence_matchgroup_mannup" "«Манневри»" "#tf_richpresence_matchgroup_bootcamp" "«Тренувальний табір»" } } "swedish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Huvudmeny" "#tf_richpresence_state_searchinggeneric" "Söker efter en match" "#tf_richpresence_state_searchingmatchgroup" "Söker - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Går med i match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Går med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Gemenskap - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Går med i gemenskapserver" "#tf_richpresence_matchgroup_competitive6v6" "Tävlingsinriktat" "#tf_richpresence_matchgroup_casual" "Vanligt" "#tf_richpresence_matchgroup_specialevent" "Specialevent" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Träningsläger" } } "greek" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Κύριο μενού" "#tf_richpresence_state_searchinggeneric" "Αναζήτηση αγώνα" "#tf_richpresence_state_searchingmatchgroup" "Αναζήτηση - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Σε αγώνα - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Σύνδεση σε αγώνα" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Σύνδεση σε {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Κοινότητα - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Σύνδεση σε διακομιστή κοινότητας" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Ειδικό συμβάν" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "norwegian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmeny" "#tf_richpresence_state_searchinggeneric" "Søker etter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søker – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I kamp – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Blir med i en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Blir med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Samfunn – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Blir med på samfunnstjener" "#tf_richpresence_matchgroup_competitive6v6" "Konkurransespilling" "#tf_richpresence_matchgroup_casual" "Avslappet" "#tf_richpresence_matchgroup_specialevent" "Spesielt arrangement" "#tf_richpresence_matchgroup_mannup" "Mann deg opp" "#tf_richpresence_matchgroup_bootcamp" "Treningsleir" } } "schinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主菜单" "#tf_richpresence_state_searchinggeneric" "正在搜索比赛" "#tf_richpresence_state_searchingmatchgroup" "正在搜索 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比赛中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "正在加入比赛" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "正在加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "社区服务器 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "正在加入社区服务器" "#tf_richpresence_matchgroup_competitive6v6" "竞技模式" "#tf_richpresence_matchgroup_casual" "休闲模式" "#tf_richpresence_matchgroup_specialevent" "特别活动" "#tf_richpresence_matchgroup_mannup" "曼恩奇现" "#tf_richpresence_matchgroup_bootcamp" "新兵训练营" } } "dutch" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hoofdmenu" "#tf_richpresence_state_searchinggeneric" "Naar een spel aan het zoeken" "#tf_richpresence_state_searchingmatchgroup" "Zoeken - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In spel - %currentmap%" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_matchgroup_competitive6v6" "Competitief" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Speciaal evenement" "#tf_richpresence_matchgroup_mannup" "Vermann je" "#tf_richpresence_matchgroup_bootcamp" "Trainingskamp" } } "japanese" { "tokens" { "#tf_richpresence_state_mainmenu" "メインメニュー" "#tf_richpresence_state_loadinggeneric" "マッチに参加しています" "#tf_richpresence_matchgroup_competitive6v6" "対戦" "#tf_richpresence_matchgroup_casual" "カジュアル" "#tf_richpresence_matchgroup_specialevent" "スペシャルイベント" "#tf_richpresence_matchgroup_bootcamp" "ブート・キャンプ" } } "tchinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主選單" "#tf_richpresence_state_searchinggeneric" "搜尋比賽中" "#tf_richpresence_state_searchingmatchgroup" "搜尋中 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比賽中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "加入比賽中" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%} 中" "#tf_richpresence_state_playingcommunity" "社群 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "加入社群伺服器中" "#tf_richpresence_matchgroup_competitive6v6" "競技模式" "#tf_richpresence_matchgroup_casual" "休閒模式" "#tf_richpresence_matchgroup_specialevent" "特殊活動" "#tf_richpresence_matchgroup_mannup" "曼恩對決機器曼起來模式" "#tf_richpresence_matchgroup_bootcamp" "曼恩對決機器訓練營" } } "vietnamese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Đại sảnh" "#tf_richpresence_state_searchinggeneric" "Đang tìm trận đấu" "#tf_richpresence_state_searchingmatchgroup" "Đang tìm - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Đang chơi - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Đang tham gia trận" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Đang tham gia {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Cộng đồng - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Đang tham gia máy chủ cộng đồng" "#tf_richpresence_matchgroup_competitive6v6" "Tranh đấu" "#tf_richpresence_matchgroup_casual" "Đơn giản" "#tf_richpresence_matchgroup_specialevent" "Sự kiện đặc biệt" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "latam" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_tags.txt ================================================ "appinfo" { "appid" "440" "common" { "icon" "e3f595a92552da3d664ad00277fad2107345f743" "logo" "07385eb55b5ba974aebbe74d3c99626bda7920b8" "logo_small" "07385eb55b5ba974aebbe74d3c99626bda7920b8_thumb" "metacritic_url" "pc/teamfortress2" "name" "Team Fortress 2" "clienticon" "033bdd91842b6aca0633ee1e5f3e6b82f2e8962f" "clienttga" "689dd46bd63e3e460cdd86d936d5de409a291633" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "portuguese" "1" "polish" "1" "danish" "1" "dutch" "1" "finnish" "1" "norwegian" "1" "swedish" "1" "hungarian" "1" "czech" "1" "romanian" "1" "turkish" "1" "brazilian" "1" "bulgarian" "1" "greek" "1" "ukrainian" "1" } "clienticns" "b0780e91df4308b1ad57cc93d6032b4f0e2930cc" "linuxclienticon" "b2659c540592221fcd7675d76a0171f4b3782c1c" "oslist" "windows,macos,linux" "type" "game" "content_descriptors" { "0" "2" "1" "5" } "has_adult_content" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "2" "test_timestamp" "1648771200" "tested_build_id" "7850740" "tests" { "0" { "display" "3" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigNotFullyFunctional" } "1" { "display" "3" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsDoNotMatchDeckDevice" } "2" { "display" "3" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsNotLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } "4" { "display" "1" "token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "1" "small_text" "1" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "market_presence" "1" "metacritic_name" "Team Fortress 2" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "26" "height_pct" "37" } } "store_asset_mtime" "1682961190" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "37" "genres" { "0" "1" "1" "37" } "category" { "category_8" "1" "category_12" "1" "category_13" "1" "category_14" "1" "category_15" "1" "category_17" "1" "category_18" "1" "category_22" "1" "category_27" "1" "category_1" "1" "category_29" "1" "category_30" "1" "category_33" "1" "category_35" "1" "category_45" "1" "category_46" "1" "category_41" "1" "category_42" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "danish" { "supported" "true" } "dutch" { "supported" "true" } "finnish" { "supported" "true" } "french" { "supported" "true" } "german" { "supported" "true" } "italian" { "supported" "true" } "japanese" { "supported" "true" } "norwegian" { "supported" "true" } "polish" { "supported" "true" } "portuguese" { "supported" "true" } "russian" { "supported" "true" } "schinese" { "supported" "true" } "spanish" { "supported" "true" } "swedish" { "supported" "true" } "tchinese" { "supported" "true" } "koreana" { "supported" "true" } "czech" { "supported" "true" } "hungarian" { "supported" "true" } "brazilian" { "supported" "true" } "turkish" { "supported" "true" } "greek" { "supported" "true" } "bulgarian" { "supported" "true" } "romanian" { "supported" "true" } "thai" { "supported" "true" } "ukrainian" { "supported" "true" } } "original_release_date" "1191999600" "steam_release_date" "1191999600" "metacritic_score" "92" "metacritic_fullurl" "https://www.metacritic.com/game/pc/team-fortress-2?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "workshop_visible" "1" "community_hub_visible" "1" "gameid" "440" "exfgls" "1" "store_tags" { "0" "113" "1" "620519" "2" "3859" "3" "1663" "4" "1774" "5" "19" "6" "4155" "7" "5711" "8" "4136" "9" "3839" "10" "3843" "11" "3878" "12" "4195" "13" "4202" "14" "1685" "15" "1719" "16" "5752" "17" "1708" "18" "4562" "19" "1702" } "review_score" "8" "review_percentage" "93" } "extended" { "developer" "Valve" "developer_url" "http://www.valvesoftware.com/" "gamedir" "tf" "gamemanualurl" "http://store.steampowered.com/manual/440/" "homepage" "http://www.teamfortress.com/" "icon" "steam/games/icon_tf2" "icon2" "steam/games/icon_tf2" "isfreeapp" "1" "languages" "english,german,french,spanish,russian" "loadallbeforelaunch" "1" "minclientversion" "1393366296" "noservers" "0" "primarycache" "441" "primarycache_linux" "452" "requiressse" "1" "serverbrowsername" "Team Fortress 2" "sourcegame" "1" "state" "eStateAvailable" "vacmacmodulecache" "160" "vacmodulecache" "202" "vacmodulefilename" "sourceinit.dat" "validoslist" "windows,macos,linux" "deckresolutionoverride" "Native" "publisher" "Valve" "aliases" "tf2" "listofdlc" "456,457,458,459,217221,217222" } "config" { "verifyupdates" "1" "signedfiles" { "hl2.exe" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "client.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "engine.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "server.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "prec.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100BA240326DFC66BFDC28782BD644FC3BAB284F4A07554E17A8DA6CCA0B4AFBFC9BAB2938846D7595BC7A560FF6215C670C74EEB9D118DE9FC0E8ED0A18DD24D8DBAE8B950C6C062BA5DEFDECB967745C53433839EB7B1A6CA340D0E48273E18AB87106FBD22AC32B2776092E924D3C414DC3328735E984E4A1B1B4E72B0F41017020111" "sourcevr.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" } "usemms" "" "systemprofile" "1" "checkforupdatesbeforelaunch" "1" "installdir" "Team Fortress 2" "launch" { "0" { "executable" "hl2.exe" "arguments" "-steam -game tf" "vacmodulefilename" "resource\\sourceinit.dat" "config" { "oslist" "windows" } } "1" { "executable" "hl2_osx" "arguments" "-steam -game tf" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game tf -steam" "config" { "oslist" "linux" } } } "vrcompositorsupport" "0" "steamcontrollertemplateindex" "1" "steamcontrollerconfigdetails" { "1172518660" { "controller_type" "controller_steamcontroller_gordon" "enabled_branches" "default" } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2125279140" { "controller_type" "controller_mobile_touch" "enabled_branches" "default" "use_action_block" "false" } } "uselaunchcommandline" "1" } "depots" { "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish,brazilian,bulgarian,greek,ukrainian" "workshopdepot" "440" "hasdepotsindlc" "1" "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "441" { "systemdefined" "1" "manifests" { "public" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "pre_07_25_23_demos" { "gid" "2023276112389133529" "size" "26125661395" "download" "11978937568" } "pre_jungleinferno_demos" { "gid" "7707612755534478338" "size" "18855865767" "download" "7735778976" } "pre_smissmas_2022_demos" { "gid" "314077012305764573" "size" "24749544116" "download" "10985537760" } "prerelease" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "vscript_test" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } } } "440" { "systemdefined" "1" "manifests" { "public" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_07_25_23_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_jungleinferno_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_smissmas_2022_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "prerelease" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "vscript_test" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } } } "232251" { "config" { "oslist" "windows" } "systemdefined" "1" "manifests" { "public" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "pre_07_25_23_demos" { "gid" "1093030316367308660" "size" "585005817" "download" "467050320" } "pre_jungleinferno_demos" { "gid" "2174530283606128348" "size" "562700702" "download" "445092848" } "pre_smissmas_2022_demos" { "gid" "8319568912250137931" "size" "584144460" "download" "466735776" } "prerelease" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "vscript_test" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } } } "232252" { "config" { "oslist" "macos" } "systemdefined" "1" "manifests" { "public" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "pre_07_25_23_demos" { "gid" "4845664414220472500" "size" "510895405" "download" "391271824" } "pre_jungleinferno_demos" { "gid" "8624037758464932425" "size" "485750759" "download" "370815712" } "pre_smissmas_2022_demos" { "gid" "2262584799279223344" "size" "509176417" "download" "390890000" } "prerelease" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "vscript_test" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } } } "232253" { "config" { "oslist" "linux" } "systemdefined" "1" "manifests" { "public" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "pre_07_25_23_demos" { "gid" "8481848623592128300" "size" "562481508" "download" "446661232" } "pre_jungleinferno_demos" { "gid" "3512165917877440762" "size" "536705326" "download" "424011840" } "pre_smissmas_2022_demos" { "gid" "2039032268643181297" "size" "560994616" "download" "446299360" } "prerelease" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "vscript_test" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } } } "444" { "config" { "lowviolence" "1" } "manifests" { "public" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_07_25_23_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_jungleinferno_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_smissmas_2022_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "prerelease" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "vscript_test" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } } } "445" { "config" { "language" "russian" } "manifests" { "public" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_07_25_23_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_jungleinferno_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_smissmas_2022_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "prerelease" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "vscript_test" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } } } "446" { "config" { "language" "german" } "manifests" { "public" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_07_25_23_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_jungleinferno_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_smissmas_2022_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "prerelease" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "vscript_test" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } } } "448" { "config" { "language" "french" } "manifests" { "public" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_07_25_23_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_jungleinferno_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_smissmas_2022_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "prerelease" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "vscript_test" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } } } "449" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_07_25_23_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_jungleinferno_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_smissmas_2022_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "prerelease" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "vscript_test" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } } } "branches" { "public" { "buildid" "12558449" "timeupdated" "1698450187" } "pre_07_25_23_demos" { "buildid" "11753452" "description" "Pre-07-25-23 Demo Playback" "timeupdated" "1690416239" } "pre_jungleinferno_demos" { "buildid" "2119861" "timeupdated" "1690827460" } "pre_smissmas_2022_demos" { "buildid" "9872056" "description" "Pre-Smissmas 2022 Demo Playback" "timeupdated" "1690827525" } "prerelease" { "buildid" "12558449" "timeupdated" "1698450253" } "vscript_test" { "buildid" "12558449" "description" "VScript beta. Cannot connect to public servers or matchmaking." "timeupdated" "1698450262" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "1000" "hidecloudui" "0" } "sysreqs" { "macos" { "supported" "1" "wants_fast_gpu" "1" "intel900" "warn" "intelx3100" "warn" "8086" { "27a6" "warn" "2a02" "warn" } "10de" { "009d" "deny" "0391" "deny" "0393" "deny" "0395" "deny" } } "macos104" { "supported" "0" "os_min" "macos1058" } "macos105" { "supported" "0" "os_min" "macos1058" } "macos106" { "supported" "0" "os_min" "macos1063" } } "localization" { "richpresence" { "english" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Main Menu" "#tf_richpresence_state_searchinggeneric" "Searching for a Match" "#tf_richpresence_state_searchingmatchgroup" "Searching - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In Match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Joining Match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Joining {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Joining Community Server" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Special Event" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "bulgarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Главно меню" "#tf_richpresence_state_searchinggeneric" "Търсене за мач" "#tf_richpresence_state_searchingmatchgroup" "Търсене — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "В мач — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Присъединяване към мач" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Присъединяване — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Общност — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Присъединяване към обществен сървър" "#tf_richpresence_matchgroup_competitive6v6" "Съревнователна" "#tf_richpresence_matchgroup_casual" "Неангажираща" "#tf_richpresence_matchgroup_specialevent" "Специално събитие" "#tf_richpresence_matchgroup_mannup" "Щателни Манневри" "#tf_richpresence_matchgroup_bootcamp" "Тренировъчен лагер" } } "danish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmenu" "#tf_richpresence_state_searchinggeneric" "Søger efter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søger - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I en kamp - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Slutter til en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Slutter til {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Fællesskab - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Slutter til en fællesskabsserver" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Særlig begivenhed" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Træning" } } "french" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Cherche un match" "#tf_richpresence_state_searchingmatchgroup" "Recherche - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Dans un match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Rejoint un match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Rejoint un match {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Serveur de la communauté - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Rejoint un serveur de la communauté" "#tf_richpresence_matchgroup_competitive6v6" "Compétitif" "#tf_richpresence_matchgroup_casual" "Occasionnel" "#tf_richpresence_matchgroup_specialevent" "Événement spécial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Camp d'entraînement" } } "german" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hauptmenü" "#tf_richpresence_state_searchinggeneric" "Suche nach Spiel läuft" "#tf_richpresence_state_searchingmatchgroup" "Suche läuft – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Im Spiel – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Spielbeitritt erfolgt" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Sie treten {#TF_RichPresence_MatchGroup_%matchgrouploc%} bei" "#tf_richpresence_state_playingcommunity" "Community – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Verbindung zum Communityserver erfolgt" "#tf_richpresence_matchgroup_competitive6v6" "Wettkampf" "#tf_richpresence_matchgroup_casual" "Gelegenheitsspiel" "#tf_richpresence_matchgroup_specialevent" "Sonderevent" "#tf_richpresence_matchgroup_mannup" "Mann-Up" "#tf_richpresence_matchgroup_bootcamp" "Training" } } "hungarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Főmenüben" "#tf_richpresence_state_searchinggeneric" "Meccset keres" "#tf_richpresence_state_searchingmatchgroup" "Keres - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Meccsen - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Meccshez csatlakozik" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Csatlakozik: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Közösség - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Közösségi szerverhez csatlakozik" "#tf_richpresence_matchgroup_competitive6v6" "Versengő" "#tf_richpresence_matchgroup_casual" "Könnyed" "#tf_richpresence_matchgroup_specialevent" "Különleges esemény" "#tf_richpresence_matchgroup_mannup" "„Mannj rá”" "#tf_richpresence_matchgroup_bootcamp" "Kiképzés" } } "italian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principale" "#tf_richpresence_state_searchinggeneric" "In cerca di una partita" "#tf_richpresence_state_searchingmatchgroup" "Ricerca in corso - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In partita - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Unione a una partita" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Unione a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunità - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Unione a un server della Comunità" "#tf_richpresence_matchgroup_competitive6v6" "Competitiva" "#tf_richpresence_matchgroup_casual" "Leggera" "#tf_richpresence_matchgroup_specialevent" "Evento speciale" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Addestramento" } } "polish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu główne" "#tf_richpresence_state_searchinggeneric" "Wyszukiwanie gry" "#tf_richpresence_state_searchingmatchgroup" "Wyszukiwanie - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "W grze - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Dołączanie do gry" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Dołączanie do trybu „{#TF_RichPresence_MatchGroup_%matchgrouploc%}”" "#tf_richpresence_state_playingcommunity" "Gra społeczności - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Dołączanie do serwera społeczności" "#tf_richpresence_matchgroup_competitive6v6" "Rankingowy" "#tf_richpresence_matchgroup_casual" "Swobodny" "#tf_richpresence_matchgroup_specialevent" "Wydarzenie specjalne" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Trening" } } "russian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "В главном меню" "#tf_richpresence_state_searchinggeneric" "Ищет игру" "#tf_richpresence_state_searchingmatchgroup" "Поиск ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playinggeneric" "В игре: %currentmap%" "#tf_richpresence_state_loadinggeneric" "Заходит на сервер" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%}: %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Заходит на сервер ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playingcommunity" "Сервер сообщества: %currentmap%" "#tf_richpresence_state_loadingcommunity" "Заходит на сервер сообщества" "#tf_richpresence_matchgroup_competitive6v6" "Соревновательная игра" "#tf_richpresence_matchgroup_casual" "Обычная игра" "#tf_richpresence_matchgroup_specialevent" "Праздничный режим" "#tf_richpresence_matchgroup_mannup" "МАННёвры" "#tf_richpresence_matchgroup_bootcamp" "Учебка" } } "spanish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } "thai" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "เมนูหลัก" "#tf_richpresence_state_searchinggeneric" "กำลังค้นหาแมตช์" "#tf_richpresence_state_searchingmatchgroup" "กำลังค้นหา - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "อยู่ในแมตช์ - %currentmap%" "#tf_richpresence_state_loadinggeneric" "กำลังเข้าร่วมแมตช์" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "กำลังเข้าร่วม {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "ชุมชน - %currentmap%" "#tf_richpresence_state_loadingcommunity" "กำลังเข้าร่วมเซิร์ฟเวอร์ชุมชน" "#tf_richpresence_matchgroup_competitive6v6" "การแข่งขัน" "#tf_richpresence_matchgroup_casual" "แคชชวล" "#tf_richpresence_matchgroup_specialevent" "กิจกรรมพิเศษ" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "บูทแคมป์" } } "turkish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Ana Menü" "#tf_richpresence_state_searchinggeneric" "Maç Aranıyor" "#tf_richpresence_state_searchingmatchgroup" "Aranıyor - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Maçta - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Maça Katılınıyor" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Katılınıyor {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Topluluk - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Topluluk Sunucusuna Katılınıyor" "#tf_richpresence_matchgroup_competitive6v6" "Rekabetçi" "#tf_richpresence_matchgroup_casual" "Basit Eğlence" "#tf_richpresence_matchgroup_specialevent" "Özel Etkinlik" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Eğitim" } } "brazilian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Buscando partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Em partida — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Entrando em partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Entrando em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor da comunidade — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Entrando em servidor da comunidade" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Treino (MvM)" } } "czech" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hlavní menu" "#tf_richpresence_state_searchinggeneric" "Vyhledávání zápasu" "#tf_richpresence_state_searchingmatchgroup" "Vyhledávání – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Zápas – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Připojování do zápasu" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Připojování – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Komunitní server – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Připojování ke komunitnímu serveru" "#tf_richpresence_matchgroup_competitive6v6" "Kompetitivní" "#tf_richpresence_matchgroup_casual" "Nenáročný" "#tf_richpresence_matchgroup_specialevent" "Speciální událost" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "finnish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Päävalikko" "#tf_richpresence_state_searchinggeneric" "Etsii peliä" "#tf_richpresence_state_searchingmatchgroup" "Etsii - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Pelissä - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Liittymässä peliin" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Liittyy {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Yhteisö - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Liittymässä yhteisöpalvelimelle" "#tf_richpresence_matchgroup_competitive6v6" "Kilpailullinen" "#tf_richpresence_matchgroup_casual" "Tavallinen" "#tf_richpresence_matchgroup_specialevent" "Erikoistapahtuma" "#tf_richpresence_matchgroup_mannup" "Miehisty-tila" "#tf_richpresence_matchgroup_bootcamp" "Harjoitusleiri" } } "portuguese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "A procurar partida" "#tf_richpresence_state_searchingmatchgroup" "A procurar - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Numa partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "A entrar numa partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "A entrar em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor comunitário - %currentmap%" "#tf_richpresence_state_loadingcommunity" "A entrar num servidor comunitário" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Iniciação" } } "ukrainian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Головне меню" "#tf_richpresence_state_searchinggeneric" "Пошук матчу" "#tf_richpresence_state_searchingmatchgroup" "Пошук — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "У матчі — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Приєднується до матчу" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Приєднується до {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Спільнота — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Приєднується до сервера спільноти" "#tf_richpresence_matchgroup_competitive6v6" "Змагальний режим" "#tf_richpresence_matchgroup_casual" "Звичайний режим" "#tf_richpresence_matchgroup_specialevent" "Особлива подія" "#tf_richpresence_matchgroup_mannup" "«Манневри»" "#tf_richpresence_matchgroup_bootcamp" "«Тренувальний табір»" } } "swedish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Huvudmeny" "#tf_richpresence_state_searchinggeneric" "Söker efter en match" "#tf_richpresence_state_searchingmatchgroup" "Söker - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Går med i match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Går med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Gemenskap - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Går med i gemenskapserver" "#tf_richpresence_matchgroup_competitive6v6" "Tävlingsinriktat" "#tf_richpresence_matchgroup_casual" "Vanligt" "#tf_richpresence_matchgroup_specialevent" "Specialevent" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Träningsläger" } } "greek" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Κύριο μενού" "#tf_richpresence_state_searchinggeneric" "Αναζήτηση αγώνα" "#tf_richpresence_state_searchingmatchgroup" "Αναζήτηση - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Σε αγώνα - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Σύνδεση σε αγώνα" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Σύνδεση σε {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Κοινότητα - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Σύνδεση σε διακομιστή κοινότητας" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Ειδικό συμβάν" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "norwegian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmeny" "#tf_richpresence_state_searchinggeneric" "Søker etter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søker – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I kamp – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Blir med i en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Blir med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Samfunn – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Blir med på samfunnstjener" "#tf_richpresence_matchgroup_competitive6v6" "Konkurransespilling" "#tf_richpresence_matchgroup_casual" "Avslappet" "#tf_richpresence_matchgroup_specialevent" "Spesielt arrangement" "#tf_richpresence_matchgroup_mannup" "Mann deg opp" "#tf_richpresence_matchgroup_bootcamp" "Treningsleir" } } "schinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主菜单" "#tf_richpresence_state_searchinggeneric" "正在搜索比赛" "#tf_richpresence_state_searchingmatchgroup" "正在搜索 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比赛中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "正在加入比赛" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "正在加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "社区服务器 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "正在加入社区服务器" "#tf_richpresence_matchgroup_competitive6v6" "竞技模式" "#tf_richpresence_matchgroup_casual" "休闲模式" "#tf_richpresence_matchgroup_specialevent" "特别活动" "#tf_richpresence_matchgroup_mannup" "曼恩奇现" "#tf_richpresence_matchgroup_bootcamp" "新兵训练营" } } "dutch" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hoofdmenu" "#tf_richpresence_state_searchinggeneric" "Naar een spel aan het zoeken" "#tf_richpresence_state_searchingmatchgroup" "Zoeken - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In spel - %currentmap%" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_matchgroup_competitive6v6" "Competitief" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Speciaal evenement" "#tf_richpresence_matchgroup_mannup" "Vermann je" "#tf_richpresence_matchgroup_bootcamp" "Trainingskamp" } } "japanese" { "tokens" { "#tf_richpresence_state_mainmenu" "メインメニュー" "#tf_richpresence_state_loadinggeneric" "マッチに参加しています" "#tf_richpresence_matchgroup_competitive6v6" "対戦" "#tf_richpresence_matchgroup_casual" "カジュアル" "#tf_richpresence_matchgroup_specialevent" "スペシャルイベント" "#tf_richpresence_matchgroup_bootcamp" "ブート・キャンプ" } } "tchinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主選單" "#tf_richpresence_state_searchinggeneric" "搜尋比賽中" "#tf_richpresence_state_searchingmatchgroup" "搜尋中 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比賽中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "加入比賽中" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%} 中" "#tf_richpresence_state_playingcommunity" "社群 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "加入社群伺服器中" "#tf_richpresence_matchgroup_competitive6v6" "競技模式" "#tf_richpresence_matchgroup_casual" "休閒模式" "#tf_richpresence_matchgroup_specialevent" "特殊活動" "#tf_richpresence_matchgroup_mannup" "曼恩對決機器曼起來模式" "#tf_richpresence_matchgroup_bootcamp" "曼恩對決機器訓練營" } } "vietnamese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Đại sảnh" "#tf_richpresence_state_searchinggeneric" "Đang tìm trận đấu" "#tf_richpresence_state_searchingmatchgroup" "Đang tìm - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Đang chơi - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Đang tham gia trận" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Đang tham gia {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Cộng đồng - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Đang tham gia máy chủ cộng đồng" "#tf_richpresence_matchgroup_competitive6v6" "Tranh đấu" "#tf_richpresence_matchgroup_casual" "Đơn giản" "#tf_richpresence_matchgroup_specialevent" "Sự kiện đặc biệt" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "latam" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } } } } ================================================ FILE: FreePackages.Tests/TestData/app_with_type.txt ================================================ "appinfo" { "appid" "440" "common" { "icon" "e3f595a92552da3d664ad00277fad2107345f743" "logo" "07385eb55b5ba974aebbe74d3c99626bda7920b8" "logo_small" "07385eb55b5ba974aebbe74d3c99626bda7920b8_thumb" "metacritic_url" "pc/teamfortress2" "name" "Team Fortress 2" "clienticon" "033bdd91842b6aca0633ee1e5f3e6b82f2e8962f" "clienttga" "689dd46bd63e3e460cdd86d936d5de409a291633" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "portuguese" "1" "polish" "1" "danish" "1" "dutch" "1" "finnish" "1" "norwegian" "1" "swedish" "1" "hungarian" "1" "czech" "1" "romanian" "1" "turkish" "1" "brazilian" "1" "bulgarian" "1" "greek" "1" "ukrainian" "1" } "clienticns" "b0780e91df4308b1ad57cc93d6032b4f0e2930cc" "linuxclienticon" "b2659c540592221fcd7675d76a0171f4b3782c1c" "oslist" "windows,macos,linux" "type" "game" "content_descriptors" { "0" "2" "1" "5" } "has_adult_content" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "2" "test_timestamp" "1648771200" "tested_build_id" "7850740" "tests" { "0" { "display" "3" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigNotFullyFunctional" } "1" { "display" "3" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsDoNotMatchDeckDevice" } "2" { "display" "3" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsNotLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } "4" { "display" "1" "token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "1" "small_text" "1" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "market_presence" "1" "metacritic_name" "Team Fortress 2" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "26" "height_pct" "37" } } "store_asset_mtime" "1682961190" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "37" "genres" { "0" "1" "1" "37" } "category" { "category_8" "1" "category_12" "1" "category_13" "1" "category_14" "1" "category_15" "1" "category_17" "1" "category_18" "1" "category_22" "1" "category_27" "1" "category_1" "1" "category_29" "1" "category_30" "1" "category_33" "1" "category_35" "1" "category_45" "1" "category_46" "1" "category_41" "1" "category_42" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "danish" { "supported" "true" } "dutch" { "supported" "true" } "finnish" { "supported" "true" } "french" { "supported" "true" } "german" { "supported" "true" } "italian" { "supported" "true" } "japanese" { "supported" "true" } "norwegian" { "supported" "true" } "polish" { "supported" "true" } "portuguese" { "supported" "true" } "russian" { "supported" "true" } "schinese" { "supported" "true" } "spanish" { "supported" "true" } "swedish" { "supported" "true" } "tchinese" { "supported" "true" } "koreana" { "supported" "true" } "czech" { "supported" "true" } "hungarian" { "supported" "true" } "brazilian" { "supported" "true" } "turkish" { "supported" "true" } "greek" { "supported" "true" } "bulgarian" { "supported" "true" } "romanian" { "supported" "true" } "thai" { "supported" "true" } "ukrainian" { "supported" "true" } } "original_release_date" "1191999600" "steam_release_date" "1191999600" "metacritic_score" "92" "metacritic_fullurl" "https://www.metacritic.com/game/pc/team-fortress-2?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "workshop_visible" "1" "community_hub_visible" "1" "gameid" "440" "exfgls" "1" "store_tags" { "0" "113" "1" "620519" "2" "3859" "3" "1663" "4" "1774" "5" "19" "6" "4155" "7" "5711" "8" "4136" "9" "3839" "10" "3843" "11" "3878" "12" "4195" "13" "4202" "14" "1685" "15" "1719" "16" "5752" "17" "1708" "18" "4562" "19" "1702" } "review_score" "8" "review_percentage" "93" } "extended" { "developer" "Valve" "developer_url" "http://www.valvesoftware.com/" "gamedir" "tf" "gamemanualurl" "http://store.steampowered.com/manual/440/" "homepage" "http://www.teamfortress.com/" "icon" "steam/games/icon_tf2" "icon2" "steam/games/icon_tf2" "isfreeapp" "1" "languages" "english,german,french,spanish,russian" "loadallbeforelaunch" "1" "minclientversion" "1393366296" "noservers" "0" "primarycache" "441" "primarycache_linux" "452" "requiressse" "1" "serverbrowsername" "Team Fortress 2" "sourcegame" "1" "state" "eStateAvailable" "vacmacmodulecache" "160" "vacmodulecache" "202" "vacmodulefilename" "sourceinit.dat" "validoslist" "windows,macos,linux" "deckresolutionoverride" "Native" "publisher" "Valve" "aliases" "tf2" "listofdlc" "456,457,458,459,217221,217222" } "config" { "verifyupdates" "1" "signedfiles" { "hl2.exe" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "client.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "engine.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "server.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" "prec.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100BA240326DFC66BFDC28782BD644FC3BAB284F4A07554E17A8DA6CCA0B4AFBFC9BAB2938846D7595BC7A560FF6215C670C74EEB9D118DE9FC0E8ED0A18DD24D8DBAE8B950C6C062BA5DEFDECB967745C53433839EB7B1A6CA340D0E48273E18AB87106FBD22AC32B2776092E924D3C414DC3328735E984E4A1B1B4E72B0F41017020111" "sourcevr.dll" "30819D300D06092A864886F70D010101050003818B0030818702818100B1260881BDFE84463D88C6AB8DB914A2E593893C10508B8A5ABDF692E9A5419A3EDBAE86A052849983B75E3B425C18178B260003D857DF0B6505C6CF9C84F5859FCE3B63F1FB2D4818501F6C5FA4AD1430EEB081A74ABD74CD1F4AA1FCCA3B88DD0548AED34443CEB52444EAE9099AA4FE66B2E6224D02381C248025C7044079020111" } "usemms" "" "systemprofile" "1" "checkforupdatesbeforelaunch" "1" "installdir" "Team Fortress 2" "launch" { "0" { "executable" "hl2.exe" "arguments" "-steam -game tf" "vacmodulefilename" "resource\\sourceinit.dat" "config" { "oslist" "windows" } } "1" { "executable" "hl2_osx" "arguments" "-steam -game tf" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game tf -steam" "config" { "oslist" "linux" } } } "vrcompositorsupport" "0" "steamcontrollertemplateindex" "1" "steamcontrollerconfigdetails" { "1172518660" { "controller_type" "controller_steamcontroller_gordon" "enabled_branches" "default" } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2125279140" { "controller_type" "controller_mobile_touch" "enabled_branches" "default" "use_action_block" "false" } } "uselaunchcommandline" "1" } "depots" { "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish,brazilian,bulgarian,greek,ukrainian" "workshopdepot" "440" "hasdepotsindlc" "1" "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "441" { "systemdefined" "1" "manifests" { "public" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "pre_07_25_23_demos" { "gid" "2023276112389133529" "size" "26125661395" "download" "11978937568" } "pre_jungleinferno_demos" { "gid" "7707612755534478338" "size" "18855865767" "download" "7735778976" } "pre_smissmas_2022_demos" { "gid" "314077012305764573" "size" "24749544116" "download" "10985537760" } "prerelease" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } "vscript_test" { "gid" "5094434107413053194" "size" "26974438105" "download" "12590383120" } } } "440" { "systemdefined" "1" "manifests" { "public" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_07_25_23_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_jungleinferno_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "pre_smissmas_2022_demos" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "prerelease" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } "vscript_test" { "gid" "1118032470228587934" "size" "825745" "download" "43168" } } } "232251" { "config" { "oslist" "windows" } "systemdefined" "1" "manifests" { "public" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "pre_07_25_23_demos" { "gid" "1093030316367308660" "size" "585005817" "download" "467050320" } "pre_jungleinferno_demos" { "gid" "2174530283606128348" "size" "562700702" "download" "445092848" } "pre_smissmas_2022_demos" { "gid" "8319568912250137931" "size" "584144460" "download" "466735776" } "prerelease" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } "vscript_test" { "gid" "8270527652915476754" "size" "597831824" "download" "479511392" } } } "232252" { "config" { "oslist" "macos" } "systemdefined" "1" "manifests" { "public" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "pre_07_25_23_demos" { "gid" "4845664414220472500" "size" "510895405" "download" "391271824" } "pre_jungleinferno_demos" { "gid" "8624037758464932425" "size" "485750759" "download" "370815712" } "pre_smissmas_2022_demos" { "gid" "2262584799279223344" "size" "509176417" "download" "390890000" } "prerelease" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } "vscript_test" { "gid" "3711741613967700880" "size" "510915933" "download" "391268944" } } } "232253" { "config" { "oslist" "linux" } "systemdefined" "1" "manifests" { "public" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "pre_07_25_23_demos" { "gid" "8481848623592128300" "size" "562481508" "download" "446661232" } "pre_jungleinferno_demos" { "gid" "3512165917877440762" "size" "536705326" "download" "424011840" } "pre_smissmas_2022_demos" { "gid" "2039032268643181297" "size" "560994616" "download" "446299360" } "prerelease" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } "vscript_test" { "gid" "8700799269293743170" "size" "575311564" "download" "459129584" } } } "444" { "config" { "lowviolence" "1" } "manifests" { "public" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_07_25_23_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_jungleinferno_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "pre_smissmas_2022_demos" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "prerelease" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } "vscript_test" { "gid" "646330807595077556" "size" "7452052" "download" "2986208" } } } "445" { "config" { "language" "russian" } "manifests" { "public" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_07_25_23_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_jungleinferno_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "pre_smissmas_2022_demos" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "prerelease" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } "vscript_test" { "gid" "5602233730528152354" "size" "90075889" "download" "79353248" } } } "446" { "config" { "language" "german" } "manifests" { "public" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_07_25_23_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_jungleinferno_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "pre_smissmas_2022_demos" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "prerelease" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } "vscript_test" { "gid" "6215119033293728486" "size" "74594251" "download" "65214128" } } } "448" { "config" { "language" "french" } "manifests" { "public" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_07_25_23_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_jungleinferno_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "pre_smissmas_2022_demos" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "prerelease" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } "vscript_test" { "gid" "8469957949853360122" "size" "73934506" "download" "64158192" } } } "449" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_07_25_23_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_jungleinferno_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "pre_smissmas_2022_demos" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "prerelease" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } "vscript_test" { "gid" "2451727451644207550" "size" "73947996" "download" "58909344" } } } "branches" { "public" { "buildid" "12558449" "timeupdated" "1698450187" } "pre_07_25_23_demos" { "buildid" "11753452" "description" "Pre-07-25-23 Demo Playback" "timeupdated" "1690416239" } "pre_jungleinferno_demos" { "buildid" "2119861" "timeupdated" "1690827460" } "pre_smissmas_2022_demos" { "buildid" "9872056" "description" "Pre-Smissmas 2022 Demo Playback" "timeupdated" "1690827525" } "prerelease" { "buildid" "12558449" "timeupdated" "1698450253" } "vscript_test" { "buildid" "12558449" "description" "VScript beta. Cannot connect to public servers or matchmaking." "timeupdated" "1698450262" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "1000" "hidecloudui" "0" } "sysreqs" { "macos" { "supported" "1" "wants_fast_gpu" "1" "intel900" "warn" "intelx3100" "warn" "8086" { "27a6" "warn" "2a02" "warn" } "10de" { "009d" "deny" "0391" "deny" "0393" "deny" "0395" "deny" } } "macos104" { "supported" "0" "os_min" "macos1058" } "macos105" { "supported" "0" "os_min" "macos1058" } "macos106" { "supported" "0" "os_min" "macos1063" } } "localization" { "richpresence" { "english" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Main Menu" "#tf_richpresence_state_searchinggeneric" "Searching for a Match" "#tf_richpresence_state_searchingmatchgroup" "Searching - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In Match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Joining Match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Joining {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Joining Community Server" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Special Event" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "bulgarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Главно меню" "#tf_richpresence_state_searchinggeneric" "Търсене за мач" "#tf_richpresence_state_searchingmatchgroup" "Търсене — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "В мач — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Присъединяване към мач" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Присъединяване — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Общност — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Присъединяване към обществен сървър" "#tf_richpresence_matchgroup_competitive6v6" "Съревнователна" "#tf_richpresence_matchgroup_casual" "Неангажираща" "#tf_richpresence_matchgroup_specialevent" "Специално събитие" "#tf_richpresence_matchgroup_mannup" "Щателни Манневри" "#tf_richpresence_matchgroup_bootcamp" "Тренировъчен лагер" } } "danish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmenu" "#tf_richpresence_state_searchinggeneric" "Søger efter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søger - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I en kamp - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Slutter til en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Slutter til {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Fællesskab - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Slutter til en fællesskabsserver" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Særlig begivenhed" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Træning" } } "french" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Cherche un match" "#tf_richpresence_state_searchingmatchgroup" "Recherche - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Dans un match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Rejoint un match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Rejoint un match {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Serveur de la communauté - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Rejoint un serveur de la communauté" "#tf_richpresence_matchgroup_competitive6v6" "Compétitif" "#tf_richpresence_matchgroup_casual" "Occasionnel" "#tf_richpresence_matchgroup_specialevent" "Événement spécial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Camp d'entraînement" } } "german" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hauptmenü" "#tf_richpresence_state_searchinggeneric" "Suche nach Spiel läuft" "#tf_richpresence_state_searchingmatchgroup" "Suche läuft – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Im Spiel – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Spielbeitritt erfolgt" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Sie treten {#TF_RichPresence_MatchGroup_%matchgrouploc%} bei" "#tf_richpresence_state_playingcommunity" "Community – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Verbindung zum Communityserver erfolgt" "#tf_richpresence_matchgroup_competitive6v6" "Wettkampf" "#tf_richpresence_matchgroup_casual" "Gelegenheitsspiel" "#tf_richpresence_matchgroup_specialevent" "Sonderevent" "#tf_richpresence_matchgroup_mannup" "Mann-Up" "#tf_richpresence_matchgroup_bootcamp" "Training" } } "hungarian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Főmenüben" "#tf_richpresence_state_searchinggeneric" "Meccset keres" "#tf_richpresence_state_searchingmatchgroup" "Keres - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Meccsen - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Meccshez csatlakozik" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Csatlakozik: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Közösség - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Közösségi szerverhez csatlakozik" "#tf_richpresence_matchgroup_competitive6v6" "Versengő" "#tf_richpresence_matchgroup_casual" "Könnyed" "#tf_richpresence_matchgroup_specialevent" "Különleges esemény" "#tf_richpresence_matchgroup_mannup" "„Mannj rá”" "#tf_richpresence_matchgroup_bootcamp" "Kiképzés" } } "italian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principale" "#tf_richpresence_state_searchinggeneric" "In cerca di una partita" "#tf_richpresence_state_searchingmatchgroup" "Ricerca in corso - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In partita - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Unione a una partita" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Unione a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunità - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Unione a un server della Comunità" "#tf_richpresence_matchgroup_competitive6v6" "Competitiva" "#tf_richpresence_matchgroup_casual" "Leggera" "#tf_richpresence_matchgroup_specialevent" "Evento speciale" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Addestramento" } } "polish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu główne" "#tf_richpresence_state_searchinggeneric" "Wyszukiwanie gry" "#tf_richpresence_state_searchingmatchgroup" "Wyszukiwanie - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "W grze - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Dołączanie do gry" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Dołączanie do trybu „{#TF_RichPresence_MatchGroup_%matchgrouploc%}”" "#tf_richpresence_state_playingcommunity" "Gra społeczności - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Dołączanie do serwera społeczności" "#tf_richpresence_matchgroup_competitive6v6" "Rankingowy" "#tf_richpresence_matchgroup_casual" "Swobodny" "#tf_richpresence_matchgroup_specialevent" "Wydarzenie specjalne" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Trening" } } "russian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "В главном меню" "#tf_richpresence_state_searchinggeneric" "Ищет игру" "#tf_richpresence_state_searchingmatchgroup" "Поиск ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playinggeneric" "В игре: %currentmap%" "#tf_richpresence_state_loadinggeneric" "Заходит на сервер" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%}: %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Заходит на сервер ({#TF_RichPresence_MatchGroup_%matchgrouploc%})" "#tf_richpresence_state_playingcommunity" "Сервер сообщества: %currentmap%" "#tf_richpresence_state_loadingcommunity" "Заходит на сервер сообщества" "#tf_richpresence_matchgroup_competitive6v6" "Соревновательная игра" "#tf_richpresence_matchgroup_casual" "Обычная игра" "#tf_richpresence_matchgroup_specialevent" "Праздничный режим" "#tf_richpresence_matchgroup_mannup" "МАННёвры" "#tf_richpresence_matchgroup_bootcamp" "Учебка" } } "spanish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } "thai" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "เมนูหลัก" "#tf_richpresence_state_searchinggeneric" "กำลังค้นหาแมตช์" "#tf_richpresence_state_searchingmatchgroup" "กำลังค้นหา - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "อยู่ในแมตช์ - %currentmap%" "#tf_richpresence_state_loadinggeneric" "กำลังเข้าร่วมแมตช์" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "กำลังเข้าร่วม {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "ชุมชน - %currentmap%" "#tf_richpresence_state_loadingcommunity" "กำลังเข้าร่วมเซิร์ฟเวอร์ชุมชน" "#tf_richpresence_matchgroup_competitive6v6" "การแข่งขัน" "#tf_richpresence_matchgroup_casual" "แคชชวล" "#tf_richpresence_matchgroup_specialevent" "กิจกรรมพิเศษ" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "บูทแคมป์" } } "turkish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Ana Menü" "#tf_richpresence_state_searchinggeneric" "Maç Aranıyor" "#tf_richpresence_state_searchingmatchgroup" "Aranıyor - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Maçta - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Maça Katılınıyor" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Katılınıyor {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Topluluk - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Topluluk Sunucusuna Katılınıyor" "#tf_richpresence_matchgroup_competitive6v6" "Rekabetçi" "#tf_richpresence_matchgroup_casual" "Basit Eğlence" "#tf_richpresence_matchgroup_specialevent" "Özel Etkinlik" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Eğitim" } } "brazilian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "Buscando partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Em partida — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Entrando em partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Entrando em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor da comunidade — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Entrando em servidor da comunidade" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Treino (MvM)" } } "czech" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hlavní menu" "#tf_richpresence_state_searchinggeneric" "Vyhledávání zápasu" "#tf_richpresence_state_searchingmatchgroup" "Vyhledávání – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Zápas – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Připojování do zápasu" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Připojování – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Komunitní server – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Připojování ke komunitnímu serveru" "#tf_richpresence_matchgroup_competitive6v6" "Kompetitivní" "#tf_richpresence_matchgroup_casual" "Nenáročný" "#tf_richpresence_matchgroup_specialevent" "Speciální událost" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "finnish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Päävalikko" "#tf_richpresence_state_searchinggeneric" "Etsii peliä" "#tf_richpresence_state_searchingmatchgroup" "Etsii - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Pelissä - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Liittymässä peliin" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Liittyy {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Yhteisö - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Liittymässä yhteisöpalvelimelle" "#tf_richpresence_matchgroup_competitive6v6" "Kilpailullinen" "#tf_richpresence_matchgroup_casual" "Tavallinen" "#tf_richpresence_matchgroup_specialevent" "Erikoistapahtuma" "#tf_richpresence_matchgroup_mannup" "Miehisty-tila" "#tf_richpresence_matchgroup_bootcamp" "Harjoitusleiri" } } "portuguese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menu principal" "#tf_richpresence_state_searchinggeneric" "A procurar partida" "#tf_richpresence_state_searchingmatchgroup" "A procurar - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Numa partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "A entrar numa partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "A entrar em: {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Servidor comunitário - %currentmap%" "#tf_richpresence_state_loadingcommunity" "A entrar num servidor comunitário" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Iniciação" } } "ukrainian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Головне меню" "#tf_richpresence_state_searchinggeneric" "Пошук матчу" "#tf_richpresence_state_searchingmatchgroup" "Пошук — {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "У матчі — %currentmap%" "#tf_richpresence_state_loadinggeneric" "Приєднується до матчу" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} — %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Приєднується до {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Спільнота — %currentmap%" "#tf_richpresence_state_loadingcommunity" "Приєднується до сервера спільноти" "#tf_richpresence_matchgroup_competitive6v6" "Змагальний режим" "#tf_richpresence_matchgroup_casual" "Звичайний режим" "#tf_richpresence_matchgroup_specialevent" "Особлива подія" "#tf_richpresence_matchgroup_mannup" "«Манневри»" "#tf_richpresence_matchgroup_bootcamp" "«Тренувальний табір»" } } "swedish" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Huvudmeny" "#tf_richpresence_state_searchinggeneric" "Söker efter en match" "#tf_richpresence_state_searchingmatchgroup" "Söker - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I match - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Går med i match" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Går med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Gemenskap - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Går med i gemenskapserver" "#tf_richpresence_matchgroup_competitive6v6" "Tävlingsinriktat" "#tf_richpresence_matchgroup_casual" "Vanligt" "#tf_richpresence_matchgroup_specialevent" "Specialevent" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Träningsläger" } } "greek" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Κύριο μενού" "#tf_richpresence_state_searchinggeneric" "Αναζήτηση αγώνα" "#tf_richpresence_state_searchingmatchgroup" "Αναζήτηση - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Σε αγώνα - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Σύνδεση σε αγώνα" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Σύνδεση σε {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Κοινότητα - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Σύνδεση σε διακομιστή κοινότητας" "#tf_richpresence_matchgroup_competitive6v6" "Competitive" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Ειδικό συμβάν" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "norwegian" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hovedmeny" "#tf_richpresence_state_searchinggeneric" "Søker etter en kamp" "#tf_richpresence_state_searchingmatchgroup" "Søker – {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "I kamp – %currentmap%" "#tf_richpresence_state_loadinggeneric" "Blir med i en kamp" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} – %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Blir med i {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Samfunn – %currentmap%" "#tf_richpresence_state_loadingcommunity" "Blir med på samfunnstjener" "#tf_richpresence_matchgroup_competitive6v6" "Konkurransespilling" "#tf_richpresence_matchgroup_casual" "Avslappet" "#tf_richpresence_matchgroup_specialevent" "Spesielt arrangement" "#tf_richpresence_matchgroup_mannup" "Mann deg opp" "#tf_richpresence_matchgroup_bootcamp" "Treningsleir" } } "schinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主菜单" "#tf_richpresence_state_searchinggeneric" "正在搜索比赛" "#tf_richpresence_state_searchingmatchgroup" "正在搜索 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比赛中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "正在加入比赛" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "正在加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "社区服务器 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "正在加入社区服务器" "#tf_richpresence_matchgroup_competitive6v6" "竞技模式" "#tf_richpresence_matchgroup_casual" "休闲模式" "#tf_richpresence_matchgroup_specialevent" "特别活动" "#tf_richpresence_matchgroup_mannup" "曼恩奇现" "#tf_richpresence_matchgroup_bootcamp" "新兵训练营" } } "dutch" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Hoofdmenu" "#tf_richpresence_state_searchinggeneric" "Naar een spel aan het zoeken" "#tf_richpresence_state_searchingmatchgroup" "Zoeken - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "In spel - %currentmap%" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_playingcommunity" "Community - %currentmap%" "#tf_richpresence_matchgroup_competitive6v6" "Competitief" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Speciaal evenement" "#tf_richpresence_matchgroup_mannup" "Vermann je" "#tf_richpresence_matchgroup_bootcamp" "Trainingskamp" } } "japanese" { "tokens" { "#tf_richpresence_state_mainmenu" "メインメニュー" "#tf_richpresence_state_loadinggeneric" "マッチに参加しています" "#tf_richpresence_matchgroup_competitive6v6" "対戦" "#tf_richpresence_matchgroup_casual" "カジュアル" "#tf_richpresence_matchgroup_specialevent" "スペシャルイベント" "#tf_richpresence_matchgroup_bootcamp" "ブート・キャンプ" } } "tchinese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "主選單" "#tf_richpresence_state_searchinggeneric" "搜尋比賽中" "#tf_richpresence_state_searchingmatchgroup" "搜尋中 - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "比賽中 - %currentmap%" "#tf_richpresence_state_loadinggeneric" "加入比賽中" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "加入 {#TF_RichPresence_MatchGroup_%matchgrouploc%} 中" "#tf_richpresence_state_playingcommunity" "社群 - %currentmap%" "#tf_richpresence_state_loadingcommunity" "加入社群伺服器中" "#tf_richpresence_matchgroup_competitive6v6" "競技模式" "#tf_richpresence_matchgroup_casual" "休閒模式" "#tf_richpresence_matchgroup_specialevent" "特殊活動" "#tf_richpresence_matchgroup_mannup" "曼恩對決機器曼起來模式" "#tf_richpresence_matchgroup_bootcamp" "曼恩對決機器訓練營" } } "vietnamese" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Đại sảnh" "#tf_richpresence_state_searchinggeneric" "Đang tìm trận đấu" "#tf_richpresence_state_searchingmatchgroup" "Đang tìm - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "Đang chơi - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Đang tham gia trận" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Đang tham gia {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Cộng đồng - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Đang tham gia máy chủ cộng đồng" "#tf_richpresence_matchgroup_competitive6v6" "Tranh đấu" "#tf_richpresence_matchgroup_casual" "Đơn giản" "#tf_richpresence_matchgroup_specialevent" "Sự kiện đặc biệt" "#tf_richpresence_matchgroup_mannup" "Mann Up" "#tf_richpresence_matchgroup_bootcamp" "Boot Camp" } } "latam" { "tokens" { "#tf_richpresence_display" "{#TF_RichPresence_State_%state%}" "#tf_richpresence_state_mainmenu" "Menú principal" "#tf_richpresence_state_searchinggeneric" "Buscando una partida" "#tf_richpresence_state_searchingmatchgroup" "Buscando - {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playinggeneric" "En una partida - %currentmap%" "#tf_richpresence_state_loadinggeneric" "Uniéndose a una partida" "#tf_richpresence_state_playingmatchgroup" "{#TF_RichPresence_MatchGroup_%matchgrouploc%} - %currentmap%" "#tf_richpresence_state_loadingmatchgroup" "Uniéndose a {#TF_RichPresence_MatchGroup_%matchgrouploc%}" "#tf_richpresence_state_playingcommunity" "Comunidad - %currentmap%" "#tf_richpresence_state_loadingcommunity" "Uniéndose a un servidor de la comunidad" "#tf_richpresence_matchgroup_competitive6v6" "Competitivo" "#tf_richpresence_matchgroup_casual" "Casual" "#tf_richpresence_matchgroup_specialevent" "Evento especial" "#tf_richpresence_matchgroup_mannup" "Modo Mann" "#tf_richpresence_matchgroup_bootcamp" "Iniciación" } } } } } ================================================ FILE: FreePackages.Tests/TestData/demo_which_will_be_removed.txt ================================================ "appinfo" { "appid" "2390760" "common" { "name" "Headlong Hunt Demo" "type" "Demo" "parent" "2323660" "icon" "4d5a7385e6b89cd637710621077ff5b78d6c97d0" "clienticon" "0b952c17ef430b1024660c6744ea2a7ed8a1acbf" "clienttga" "27711ecff9b45a6ba3208f56ff8632560e379a97" "oslist" "windows" "osarch" "" "osextended" "" "releasestate" "released" "controller_support" "full" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "store_asset_mtime" "1694580774" "associations" { "0" { "type" "developer" "name" "Toombler Games" } "1" { "type" "publisher" "name" "Toombler Games" } } "primary_genre" "0" "category" { "category_2" "1" "category_28" "1" "category_62" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } } "steam_release_date" "1682337932" "gameid" "2390760" "exfgls" "6" } "extended" { "demoofappid" "2323660" "developer" "Toombler Games" "publisher" "Toombler Games" } "config" { "installdir" "Headlong Hunt Demo" "launch" { "0" { "executable" "Headlong Hunt Demo.exe" "config" { "oslist" "windows" } } } } "depots" { "2390761" { "manifests" { "public" { "gid" "4197211795039899891" "size" "227173403" "download" "73094016" } } "encryptedmanifests" { "developer" { "gid" "7804171D02872B87E66931369B0CB771" "size" "158735D7CADF0FA8A8123611B609B5ED" "download" "DF1C5DD4990E11ADCB42C8B55716E897" } } } "branches" { "public" { "buildid" "12253280" "timeupdated" "1695358167" } "developer" { "buildid" "12253422" "pwdrequired" "1" "timeupdated" "1695359406" } } } } ================================================ FILE: FreePackages.Tests/TestData/demo_with_fewer_categories_than_parent.txt ================================================ "appinfo" { "appid" "410" "common" { "clienticon" "c7cb09b9f0fbb9589b4bd5a8217c8333c4d8204e" "clienttga" "0da38a1351a4d7f17b4c53c9d9bd09ba59ed463b" "icon" "cfa928ab4119dd137e50d728e8fe703e4e970aff" "clienticns" "89b04b46c85279c6da7a543408644031317e49b3" "linuxclienticon" "9fcff385181db33a52955cb704f1409fc82adf8f" "name" "Portal: First Slice" "logo" "d8809408d0cb0edadcdbda25cf22f1955f29a853" "logo_small" "eb0ab1b98e35090f26435a36696234d31e177f61" "type" "Demo" "parent" "400" "oslist" "macos,windows,linux" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "1" "genres" { "0" "1" } "category" { "category_2" "1" "category_10" "1" "category_12" "1" "category_13" "1" "category_18" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "french" { "supported" "true" "full_audio" "true" } "german" { "supported" "true" "full_audio" "true" } "russian" { "supported" "true" "full_audio" "true" } "danish" { "supported" "true" } "dutch" { "supported" "true" } "finnish" { "supported" "true" } "italian" { "supported" "true" } "japanese" { "supported" "true" } "korean" { "supported" "true" } "norwegian" { "supported" "true" } "polish" { "supported" "true" } "portuguese" { "supported" "true" } "schinese" { "supported" "true" } "spanish" { "supported" "true" } "swedish" { "supported" "true" } "tchinese" { "supported" "true" "full_audio" "true" } } "original_release_date" "1210230000" "steam_release_date" "1210269600" "gameid" "410" "review_score" "8" "review_percentage" "96" } "extended" { "demoofappid" "400" "dependantonapp" "400" "developer" "Valve" "gamedir" "portal" "homepage" "http://www.half-life2.com" "icon" "steam/games/icon_portal" "icon2" "steam/games/icon_portal_dull" "languages" "english,french,german,russian" "noservers" "0" "order" "1" "sourcegame" "1" "state" "eStateAvailable" "validoslist" "macos,windows" "developer_url" "http://www.valvesoftware.com" "publisher" "Valve" } "config" { "launch" { "0" { "executable" "hl2.exe" "arguments" "-game portal -steam" "config" { "oslist" "windows" } } "1" { "executable" "hl2_osx" "arguments" "-game portal -steam" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game portal -steam" "config" { "oslist" "linux" } } } "contenttype" "3" "installdir" "Portal" "convertgcfs" "1" } "depots" { "402" { "config" { "oslist" "windows" "language" "" } "systemdefined" "1" "depotfromapp" "400" "sharedinstall" "2" } "403" { "config" { "oslist" "macos" "language" "" } "systemdefined" "1" "depotfromapp" "400" "sharedinstall" "2" } "404" { "config" { "oslist" "linux" "language" "" } "systemdefined" "1" "depotfromapp" "400" "sharedinstall" "2" } "405" { "config" { "language" "russian" } "depotfromapp" "400" "sharedinstall" "2" } "406" { "config" { "language" "spanish" } "depotfromapp" "400" "sharedinstall" "2" } "407" { "config" { "language" "french" } "depotfromapp" "400" "sharedinstall" "2" } "408" { "config" { "language" "german" } "depotfromapp" "400" "sharedinstall" "2" } "409" { "config" { "language" "" } "depotfromapp" "400" "sharedinstall" "2" } "410" { "config" { "language" "" } "depotfromapp" "400" "sharedinstall" "2" } "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish" "branches" { } } "ufs" { "quota" "10485760" "maxnumfiles" "100" "appidredirect" "400" "savefiles" { "1" { "root" "gameinstall" "path" "portal/save" "pattern" "*.sav" "siblings" "tga" "platforms" { "1" "all" } } "2" { "root" "gameinstall" "path" "portal/save" "pattern" "bonus_maps_data.bmd" "platforms" { "1" "all" } } } } } ================================================ FILE: FreePackages.Tests/TestData/demo_with_fewer_categories_than_parent_parent.txt ================================================ "appinfo" { "appid" "400" "common" { "clienticon" "c7cb09b9f0fbb9589b4bd5a8217c8333c4d8204e" "clienttga" "0da38a1351a4d7f17b4c53c9d9bd09ba59ed463b" "icon" "cfa928ab4119dd137e50d728e8fe703e4e970aff" "logo" "4184d4c0d915bd3a45210667f7b25361352acd8f" "logo_small" "07e7e9afa13b5132c32f5e265ed95a6beab3de6f" "metacritic_url" "pc/portal" "name" "Portal" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "portuguese" "1" "polish" "1" "danish" "1" "dutch" "1" "finnish" "1" "norwegian" "1" "swedish" "1" "hungarian" "1" "czech" "1" "romanian" "1" "turkish" "1" "brazilian" "1" "bulgarian" "1" "greek" "1" "ukrainian" "1" "vietnamese" "1" "latam" "1" } "clienticns" "89b04b46c85279c6da7a543408644031317e49b3" "oslist" "macos,windows,linux" "linuxclienticon" "9fcff385181db33a52955cb704f1409fc82adf8f" "type" "game" "steam_deck_compatibility" { "category" "3" "test_timestamp" "1646265600" "tested_build_id" "8289359" "tests" { "0" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigFullyFunctional" } "1" { "display" "4" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsLegible" } "2" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "0" "non_deck_display_glyphs" "0" "small_text" "0" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" } } "metacritic_name" "Portal" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "CenterCenter" "width_pct" "100" "height_pct" "78" } } "store_asset_mtime" "1682715009" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "1" "genres" { "0" "1" } "category" { "category_2" "1" "category_12" "1" "category_13" "1" "category_14" "1" "category_16" "1" "category_17" "1" "category_18" "1" "category_22" "1" "category_44" "1" "category_41" "1" "category_42" "1" "category_45" "1" "category_46" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "french" { "supported" "true" "full_audio" "true" "subtitles" "true" } "german" { "supported" "true" "full_audio" "true" "subtitles" "true" } "russian" { "supported" "true" "full_audio" "true" "subtitles" "true" } "danish" { "supported" "true" "subtitles" "true" } "dutch" { "supported" "true" "subtitles" "true" } "finnish" { "supported" "true" "subtitles" "true" } "italian" { "supported" "true" "subtitles" "true" } "japanese" { "supported" "true" "subtitles" "true" } "norwegian" { "supported" "true" "subtitles" "true" } "polish" { "supported" "true" "subtitles" "true" } "portuguese" { "supported" "true" "subtitles" "true" } "schinese" { "supported" "true" "subtitles" "true" } "spanish" { "supported" "true" "full_audio" "true" "subtitles" "true" } "swedish" { "supported" "true" "subtitles" "true" } "tchinese" { "supported" "true" "full_audio" "true" "subtitles" "true" } "koreana" { "supported" "true" "subtitles" "true" } "bulgarian" { "supported" "true" "subtitles" "true" } "czech" { "supported" "true" "subtitles" "true" } "greek" { "supported" "true" "subtitles" "true" } "hungarian" { "supported" "true" "subtitles" "true" } "brazilian" { "supported" "true" "subtitles" "true" } "romanian" { "supported" "true" "subtitles" "true" } "latam" { "supported" "true" "subtitles" "true" } "thai" { "supported" "true" "subtitles" "true" } "turkish" { "supported" "true" "subtitles" "true" } "ukrainian" { "supported" "true" "subtitles" "true" } } "original_release_date" "1191999600" "steam_release_date" "1191999660" "metacritic_score" "90" "metacritic_fullurl" "https://www.metacritic.com/game/pc/portal?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "400" "store_tags" { "0" "1664" "1" "5537" "2" "3839" "3" "5395" "4" "4182" "5" "3942" "6" "1719" "7" "7208" "8" "4136" "9" "3968" "10" "19" "11" "1742" "12" "1693" "13" "1625" "14" "5794" "15" "4166" "16" "5923" "17" "1663" "18" "4234" "19" "21" } "review_score" "9" "review_percentage" "98" } "extended" { "developer" "Valve" "gamedir" "portal" "homepage" "http://www.whatistheorangebox.com/" "icon" "steam/games/icon_portal" "icon2" "steam/games/icon_portal_dull" "languages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish" "languages_macos" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish" "minclientversion" "1218" "noservers" "0" "order" "1" "preloadunlocktime" "1191999600" "primarycache" "401" "requiressse" "1" "sourcegame" "1" "state" "eStateAvailable" "validoslist" "macos,windows" "deckresolutionoverride" "Native" "developer_url" "http://www.valvesoftware.com/" "publisher" "Valve" } "config" { "launch" { "0" { "executable" "hl2.exe" "arguments" "-game portal -steam" "workingdir" "bin" "config" { "oslist" "windows" } } "1" { "executable" "hl2.sh" "arguments" "-game portal -steam" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game portal -steam" "config" { "oslist" "linux" } } "3" { "executable" "PortalRTX\\hl2.exe" "arguments" "-game portal_rtx -steam" "type" "option1" "config" { "oslist" "windows" "ownsdlc" "2012840" } "description_loc" { "english" "Portal with RTX" } "description" "Portal with RTX" } } "contenttype" "3" "installdir" "Portal" "convertgcfs" "1" "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2063315457" { "controller_type" "controller_mobile_touch" "enabled_branches" "default,beta" "use_action_block" "false" } } "steamcontrollertemplateindex" "13" "steamconfigurator3rdpartynative" "65535" "steaminputmanifestpath" "steam_input/action_manifest_portal.vdf" } "depots" { "markdlcdepots" "1" "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish,brazilian" "402" { "config" { "oslist" "windows" "language" "" } "systemdefined" "1" "manifests" { "public" { "gid" "2535652127986385917" "size" "154940489" "download" "61850448" } "beta" { "gid" "2535652127986385917" "size" "154940489" "download" "61850448" } "deck_test" { "gid" "6625181238355211891" "size" "154917577" "download" "61852064" } } } "403" { "config" { "oslist" "macos" "language" "" } "systemdefined" "1" "manifests" { "public" { "gid" "8540313218896607941" "size" "109505307" "download" "33668576" } "beta" { "gid" "8540313218896607941" "size" "109505307" "download" "33668576" } "deck_test" { "gid" "6306429178267747215" "size" "109496153" "download" "33670480" } } } "404" { "config" { "oslist" "linux" "language" "" } "systemdefined" "1" "manifests" { "public" { "gid" "5390081909454758573" "size" "144467584" "download" "49462896" } "beta" { "gid" "8414041742674189020" "size" "144480511" "download" "49466288" } "deck_test" { "gid" "2944553574816157153" "size" "142962413" "download" "49125152" } } } "405" { "config" { "language" "russian" } "manifests" { "public" { "gid" "453200351187428393" "size" "85905720" "download" "76108208" } "beta" { "gid" "453200351187428393" "size" "85905720" "download" "76108208" } "deck_test" { "gid" "453200351187428393" "size" "85905720" "download" "76108208" } } } "406" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "8904830885129684315" "size" "147473667" "download" "103692368" } "beta" { "gid" "8904830885129684315" "size" "147473667" "download" "103692368" } "deck_test" { "gid" "8904830885129684315" "size" "147473667" "download" "103692368" } } } "407" { "config" { "language" "french" } "manifests" { "public" { "gid" "8242589767738537927" "size" "146568277" "download" "112107920" } "beta" { "gid" "8242589767738537927" "size" "146568277" "download" "112107920" } "deck_test" { "gid" "8242589767738537927" "size" "146568277" "download" "112107920" } } } "408" { "config" { "language" "german" } "manifests" { "public" { "gid" "8794244784218856360" "size" "145521369" "download" "114173696" } "beta" { "gid" "8794244784218856360" "size" "145521369" "download" "114173696" } "deck_test" { "gid" "8794244784218856360" "size" "145521369" "download" "114173696" } } } "409" { "config" { "language" "" } "manifests" { "public" { "gid" "5984360824509444405" "size" "3693457142" "download" "2240019072" } "beta" { "gid" "8739253430476639515" "size" "3693457142" "download" "2239632576" } "deck_test" { "gid" "6882033175431777282" "size" "3670370042" "download" "2237264032" } } } "410" { "config" { "language" "" } "manifests" { "public" { "gid" "106212190778449766" "size" "8574" "download" "3104" } "beta" { "gid" "106212190778449766" "size" "8574" "download" "3104" } "deck_test" { "gid" "106212190778449766" "size" "8574" "download" "3104" } } } "401" { "systemdefined" "1" "config" { "language" "" } "manifests" { "public" { "gid" "5882167507999820297" "size" "4029341322" "download" "2406895200" } "beta" { "gid" "7536013392037484693" "size" "4029341322" "download" "2406508704" } "deck_test" { "gid" "4344267954475545347" "size" "4005497841" "download" "2404028608" } } } "hasdepotsindlc" "1" "branches" { "public" { "buildid" "9970151" "timeupdated" "1673997754" } "beta" { "buildid" "10293467" "description" "SteamPipe Beta" "timeupdated" "1673992151" } "deck_test" { "buildid" "8249490" "description" "deck ui test" "timeupdated" "1645821796" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "100" "savefiles" { "1" { "root" "gameinstall" "path" "portal/save" "pattern" "*.sav" "siblings" "tga" "platforms" { "1" "all" } } "2" { "root" "gameinstall" "path" "portal/save" "pattern" "bonus_maps_data.bmd" "platforms" { "1" "all" } } } } "sysreqs" { "macos" { "supported" "1" "wants_fast_gpu" "1" "intel900" "warn" "intelx3100" "warn" "8086" { "27a6" "warn" "2a02" "warn" } "10de" { "009d" "deny" "0391" "deny" "0393" "deny" "0395" "deny" } } "macos104" { "supported" "0" "os_min" "macos1058" } "macos105" { "supported" "0" "os_min" "macos1058" } "macos106" { "supported" "0" "os_min" "macos1063" } } } ================================================ FILE: FreePackages.Tests/TestData/demo_with_fewer_content_descriptors_than_parent.txt ================================================ "appinfo" { "appid" "547490" "common" { "name" "Shadow Tactics: Blades of the Shogun Demo" "type" "Demo" "parent" "418240" "releasestate" "released" "clienticon" "e64c61ad70b477c279e4e8fe8bb51192faad71e1" "clienttga" "03a420c172a66c87b49df082c5f3c875e680b33f" "icon" "7f933b7e1bcb83caf3bbcc9a143aee85b8a677af" "oslist" "windows,macos,linux" "osarch" "" "clienticns" "e5c881742fd49c6e21fe36940891e6342863bdfe" "linuxclienticon" "7cdeabcd323ade1d904b4202b10f0870221aaefa" "logo" "0cccaad529953928ba8013f103798c6252fce977" "logo_small" "0cccaad529953928ba8013f103798c6252fce977_thumb" "metacritic_name" "Shadow Tactics: Blades of the Shogun Demo" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "87.80630105017502" "height_pct" "100" } } "store_asset_mtime" "1572358387" "associations" { "0" { "type" "developer" "name" "Mimimi Games" } "1" { "type" "publisher" "name" "Daedalic Entertainment" } } "primary_genre" "2" "genres" { "0" "2" } "category" { "category_2" "1" } "steam_release_date" "1479740328" "gameid" "547490" "review_score" "7" "review_percentage" "92" } "extended" { "demoofappid" "418240" "developer" "Mimimi Games" "publisher" "Daedalic Entertainment" } "config" { "installdir" "Shadow Tactics Blades of the Shogun Demo" "steamcontrollertemplateindex" "4" "launch" { "0" { "executable" "Shadow Tactics.exe" "type" "default" "config" { "oslist" "windows" } } "1" { "executable" "Shadow Tactics.app" "type" "default" "config" { "oslist" "macos" } } "2" { "executable" "Shadow Tactics" "type" "default" "config" { "oslist" "linux" } } } } "depots" { "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,japanese,polish,turkish,brazilian" "228983" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "547491" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "415302662000161731" "size" "2483367579" "download" "1579750960" } } "encryptedmanifests" { "testing" { "gid" "809834B310C73E5E74A1A12DA2AEE4B5" "size" "967081FA4C13915F98A4624CBF18C481" "download" "74EBB6AC027E975CEE3E09AF4E3CBD4A" } "testing-gog" { "gid" "D3EBDFCA02F3A3CFEB660861E666FDEC" "size" "718061EFE4F7E5B206EB11F0A05C5501" "download" "9F3E08158157FAF7577DB87E79A740C4" } } } "547492" { "config" { "oslist" "macos" } "manifests" { "public" { "gid" "719892081455757642" "size" "2554651174" "download" "1588009600" } } "encryptedmanifests" { "testing" { "gid" "D307C340834D0A5B52F096FA18CB593E" "size" "C90A096EB2ED5B954ADA67A128EC3F9D" "download" "9DC3585D4D8CB9D45D63325F31D628F8" } "testing-gog" { "gid" "C727D2D9E1A847F4238C627E18CEFF45" "size" "AA4DBBF97D029AF8ADDAB199BEB4C0B8" "download" "52B51A433DA86A6FDF70A1547CB840F0" } } } "547493" { "config" { "oslist" "linux" } "manifests" { "public" { "gid" "6022208623055710377" "size" "2484007210" "download" "1581660880" } } "encryptedmanifests" { "testing" { "gid" "09DCD479A984D000DBDF5B2FA9B2DE12" "size" "06E94BB0E4ABAB812776B0351BC7A6D3" "download" "07BC093CF01B74B9AE0C9D4058CDDC5A" } "testing-gog" { "gid" "F71FD30B9148FE0984A23E2E46749999" "size" "D7FB04A7E59E845DA9E31C8EAFA34D01" "download" "3F4C9635AC62E4A412686013F2E3624B" } } } "branches" { "public" { "buildid" "2806562" "timeupdated" "1528285244" } "testing" { "buildid" "2806562" "pwdrequired" "1" "timeupdated" "1527257577" } "testing-gog" { "buildid" "2807619" "pwdrequired" "1" "timeupdated" "1527274558" } } } } ================================================ FILE: FreePackages.Tests/TestData/demo_with_fewer_content_descriptors_than_parent_parent.txt ================================================ "appinfo" { "appid" "418240" "common" { "name" "Shadow Tactics: Blades of the Shogun" "type" "Game" "oslist" "windows,macos,linux" "logo" "9ca95758bb56d4ab81fb976f30950ad0a3e957e1" "logo_small" "9ca95758bb56d4ab81fb976f30950ad0a3e957e1_thumb" "clienticon" "e64c61ad70b477c279e4e8fe8bb51192faad71e1" "clienttga" "03a420c172a66c87b49df082c5f3c875e680b33f" "icon" "7f933b7e1bcb83caf3bbcc9a143aee85b8a677af" "releasestate" "released" "osarch" "" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "japanese" "1" "polish" "1" "turkish" "1" "brazilian" "1" } "clienticns" "e5c881742fd49c6e21fe36940891e6342863bdfe" "linuxclienticon" "7cdeabcd323ade1d904b4202b10f0870221aaefa" "content_descriptors" { "0" "2" "1" "5" } "has_adult_content" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "3" "test_timestamp" "1647302400" "tested_build_id" "8124387" "tests" { "0" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigFullyFunctional" } "1" { "display" "4" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsMatchDeckDevice" } "2" { "display" "4" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } "4" { "display" "1" "token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "0" "small_text" "0" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" } } "metacritic_name" "Shadow Tactics: Blades of the Shogun" "controller_support" "full" "small_capsule" { "english" "capsule_231x87.jpg" "schinese" "capsule_231x87_schinese.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "47.2093023255814" "height_pct" "90.47589646164806" } } "store_asset_mtime" "1662471015" "associations" { "0" { "type" "developer" "name" "Mimimi Games" } "1" { "type" "publisher" "name" "Daedalic Entertainment" } "2" { "type" "franchise" "name" "Daedalic Entertainment" } } "primary_genre" "2" "genres" { "0" "23" "1" "2" } "category" { "category_2" "1" "category_22" "1" "category_28" "1" "category_29" "1" "category_23" "1" "category_43" "1" "category_45" "1" "category_46" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "french" { "supported" "true" "subtitles" "true" } "german" { "supported" "true" "subtitles" "true" } "spanish" { "supported" "true" "subtitles" "true" } "japanese" { "supported" "true" "subtitles" "true" "full_audio" "true" } "polish" { "supported" "true" "subtitles" "true" } "russian" { "supported" "true" "subtitles" "true" } "koreana" { "supported" "true" "subtitles" "true" } "schinese" { "supported" "true" "subtitles" "true" } "brazilian" { "supported" "true" "subtitles" "true" } "italian" { "supported" "true" "subtitles" "true" } "tchinese" { "supported" "true" "subtitles" "true" } "turkish" { "supported" "true" "subtitles" "true" } } "original_release_date" "1481011200" "steam_release_date" "1481043360" "metacritic_score" "85" "metacritic_fullurl" "https://www.metacritic.com/game/pc/shadow-tactics-blades-of-the-shogun?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "418240" "store_tags" { "0" "1687" "1" "9" "2" "1708" "3" "1688" "4" "3813" "5" "4182" "6" "492" "7" "5851" "8" "3987" "9" "4376" "10" "19" "11" "1676" "12" "4026" "13" "4667" "14" "4166" "15" "1697" "16" "21" "17" "1662" "18" "1756" "19" "1664" } "review_score" "9" "review_percentage" "96" } "extended" { "developer" "Mimimi Games" "publisher" "Daedalic Entertainment" "homepage" "http://www.shadow-tactics.com" "listofdlc" "571410" "dlcavailableonstore" "1" } "config" { "contenttype" "3" "installdir" "Shadow Tactics" "launch" { "1" { "executable" "Shadow Tactics.exe" "type" "default" "config" { "oslist" "windows" } } "2" { "executable" "Shadow Tactics.app" "type" "default" "config" { "oslist" "macos" } } "3" { "executable" "Shadow Tactics" "type" "default" "config" { "oslist" "linux" } } "4" { "executable" "open_bonus_win.bat" "description" "Bonus Content" "type" "none" "config" { "oslist" "windows" "ownsdlc" "571410" } } "5" { "executable" "open_bonus_osx.sh" "description" "Bonus Content" "type" "none" "config" { "oslist" "macos" "ownsdlc" "571410" } } "6" { "executable" "open_bonus_lin.sh" "description" "Bonus Content" "type" "none" "config" { "oslist" "linux" "ownsdlc" "571410" } } } "steamcontrollertemplateindex" "4" } "depots" { "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,japanese,polish,turkish,brazilian" "hasdepotsindlc" "1" "228983" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228984" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "418241" { "config" { "oslist" "windows" "language" "" } "manifests" { "public" { "gid" "2234455499182889617" "size" "7792493860" "download" "3323937664" } "1.4.4" { "gid" "547844329454899423" "size" "9594091364" "download" "4656133104" } "2.2.2" { "gid" "6193499570758826160" "size" "7806745335" "download" "3324545744" } } "encryptedmanifests" { "age-rating" { "gid" "05CF4328D1B71891A679FFDBFFD91B60" "size" "DFCED85A9676BE7EEEAC457F493ADE65" "download" "3713871DB3F2143278AAB22CE747F067" } "baseline" { "gid" "FCEEAA3A18F259DC7625779A9301438E" "size" "8DE683602C0121F63383E1A3AC84F0B5" "download" "5337C89510281FB361FA4C48310DF5AC" } "experimental" { "gid" "C3957711383C3015BA745C9B74C70DAA" "size" "BF3F5CF3082C1D385C954ECFD625390B" "download" "D48EBA33AD83A28412B9FBD809D69AAC" } "internal" { "gid" "20B1773DF36F76C805B77924C139BAFE" "size" "F389586209DCBAFFDBDC227EA0EBA906" "download" "F9CE5B2A572A514397DDAF194293D96C" } "last-stable" { "gid" "4F0D133B9A19247251F9570BCA532EF2" "size" "E005DC0626500615104B76213013C58C" "download" "FEF75D8AB9E84BD913A2C30F12792DAE" } "loca" { "gid" "6252B2BA0BEF812997EF1776D6C30189" "size" "A2607FBF7741CFEB2BB3484DD94F4D41" "download" "13FBF69623178710B55D1E1A8AE680C1" } "milestone" { "gid" "21A7076158DEB6413AD06C4F2C435BAF" "size" "3ACA3D8AA3796759ED4CF4C685C3AD3B" "download" "B5A7B80F87D97B8556C8F4BFFBDC1E83" } "milestone-ps4" { "gid" "E4FBCA803B49376101D31F7C3815F8BD" "size" "DC879562F5FEF220E3796DD0A79E1623" "download" "BAEEF2A6F16E120262ED56E79AA19EEB" } "milestone-xbox" { "gid" "228759BBA6EC799D0D53A16E3A3768FE" "size" "8BB7EA785B678439FCD21DDB95B8A1F2" "download" "3FBE9AF928F9238D008D2273251CBDC4" } "release-candidate" { "gid" "CD2D4942DE25B3D982ABE23EEF6692E7" "size" "FEBD50ABA5F99877601A5BCE790C7553" "download" "49ED146BAAE08EF58E6C8D08F752F0EE" } "testing" { "gid" "292AF77CFDFD1F47860B31E70FB416CF" "size" "2499CAA9CAAFE7BAE2450E2F711CA9F2" "download" "96F5DEBADB34F3BF47B55A7E6C4B51EB" } "testing-ps4" { "gid" "CE9773B73567110F3FDFDFDBF2DC736F" "size" "A6DFA1EAAD422D134B74D0A7485401EE" "download" "3A6D5BB2E63D49C846236881207DC92E" } "testing-stone" { "gid" "9299603E44753909ABC5D11C402C05B5" "size" "B3E8A6E909A379C7774D00B28844A077" "download" "26F0E08131273470D6600EE383B8ED9A" } "testing-xbox" { "gid" "A248B0B461B458662D58827DE4B41E33" "size" "A54FDA25E1B28F870970D6DBAB0D399E" "download" "3780424548FE88BD3708CC58BF6089AE" } } } "418242" { "config" { "oslist" "linux" "language" "" } "manifests" { "public" { "gid" "8855741290430538859" "size" "7825549111" "download" "3330932656" } "1.4.4" { "gid" "7166914117778407482" "size" "9617225236" "download" "4667512688" } "2.2.2" { "gid" "1965331491417408619" "size" "7817843370" "download" "3331182000" } } "encryptedmanifests" { "baseline" { "gid" "51AE242887679952CAC40072AED514E3" "size" "8A8847771200140D8A39308208D40810" "download" "9909974628E744ED71A3D1C874032E03" } "experimental" { "gid" "A905DA81344FD90B0C96943F7CEAC054" "size" "3047CD0506B6231E21DFA15A977E5BB4" "download" "D4C6860F5855C65C174C1CF7489F12C4" } "internal" { "gid" "86A6EDC6D44CA195511A194664C3ECEC" "size" "6F0D07ABF30D83BB57ED90C31C0DA9B1" "download" "06259DC12A68703BB0B27068BFD13CFC" } "last-stable" { "gid" "5C92E4F785B12F2248F25ACA052E296C" "size" "98F4D6A8327FDB511B4C1581D41FDAA0" "download" "E99D08994F3565C9EA8FD4FB5B46605F" } "loca" { "gid" "9A52B0A1C7CDCAEAD524C3E20FA6A74B" "size" "7E4F3D7A3BB842F9C824036BBEBD1D30" "download" "707212486F5737D279F2B9B07BCC1A82" } "milestone-ps4" { "gid" "FEF84B0C194EEA8B87F333259680546B" "size" "7CF57DE8C2C7C938973B9DF6C523A64B" "download" "7E70345D0512443441D89DD702A604C6" } "milestone-xbox" { "gid" "8A04166230F528C9AA669CA10F7FE069" "size" "B3F86C3D481CF036473817FE0AA45EDC" "download" "6EFA1B8755E719A24F38B23600C1C532" } "release-candidate" { "gid" "759F5A21938223010C6063E74FA7B55B" "size" "57E9E997467DBF31C17D2F53CBC054EE" "download" "0E60AABE1161AA601075C148898C1455" } "testing" { "gid" "A432DB153BF296AC9072599A66449F4E" "size" "20DC3B2E485FE24400EA2AA42E620AE1" "download" "B2D0F9603CC65A98FD330EC1DAA4C0F7" } "testing-ps4" { "gid" "3893CEF3BDCF9D93E185F2FD4B0478C6" "size" "99109277878429ED05955FB9BD834BF4" "download" "C544F7E6FF862B1BF5D3EFEEFD74E9E9" } "testing-stone" { "gid" "FDBCE3B7BA03D38AA3F03BC2A9486BEA" "size" "2A6C265B0EFCA2753F42BFFF612316CA" "download" "2E192B879B28F36DFF5F4600D8AE8EEB" } "testing-xbox" { "gid" "BBCDC952928F3364D33CA787E1B29D31" "size" "5CCCC7455ADCBCC91DEACC1419D93EBF" "download" "F2F4C357E0DA2ADF4169B5A6A701DF27" } } } "418243" { "config" { "oslist" "macos" "language" "" } "manifests" { "public" { "gid" "2079282393073667094" "size" "7896193075" "download" "3337547552" } "1.4.4" { "gid" "3809133461538240130" "size" "9653574557" "download" "4676654896" } "2.2.2" { "gid" "3343965086290138819" "size" "7847161202" "download" "3335100896" } } "encryptedmanifests" { "baseline" { "gid" "75DC297EAE76597704A906A86AE1A790" "size" "0431B881E5AF6A5884DAA4C734254B6A" "download" "9604C52ADFBF1878AE6B52E782F0E7E2" } "experimental" { "gid" "A593CA4E97362F4636546DB04B95DCE5" "size" "8154A42072D79F9D8FB8D080C8C52EF9" "download" "FB61D819CEEE07F75D9512CB8F6AE132" } "internal" { "gid" "EEB03160D3EA4F0E21A44BE09C50E876" "size" "256A0D08B972818D6E836DF8DE01D045" "download" "84C767FCD5E8981DADA3AB4D48AFC996" } "last-stable" { "gid" "67157D26B8E876CF6D2C1772B7148717" "size" "78C73F8B2E22B157A6DC2D2E4158B3FE" "download" "D5C490859DD36BE20EA6A66646C092D7" } "loca" { "gid" "1BEC2680259C450957089131156540F1" "size" "7B52C2D1E96BE3173585CC9C8C08B134" "download" "8CA9E92564F9AB727C9903E6CBE9F6B2" } "milestone-ps4" { "gid" "33874B829018B2F2996E8775B2A6C774" "size" "B48264CA9E4FEB1DD3311E1D074B3767" "download" "6C6FCED2BFD82C35A873339F20927A25" } "milestone-xbox" { "gid" "1872FDD402BFEB140180CF02EE557C22" "size" "93D7E5121A5FA3AF1BFCFCF0458EF1E1" "download" "80263E858E466602E4CC6E4D81E78E0D" } "release-candidate" { "gid" "C26AF8E7C26DB3C635AE78A479349E7D" "size" "2831FABE2F506A4A46FEB8141E3277B5" "download" "5433DD752AB72B586E74665B2AE1D5DC" } "testing" { "gid" "E032E729C8674E66E7496ADC13A6B99A" "size" "FECC027C22D5600A5B685438D9C6F3E3" "download" "8D9945342C09B945CFFDF34667CC9EB9" } "testing-ps4" { "gid" "F76766D0813FE90FCBE0CCF5D2D22A29" "size" "270B8922B2B0F0F5EEB1F1DFC009539C" "download" "1682C74F3962B33FBB941CBC080C6215" } "testing-stone" { "gid" "06FC94556B3D4D080461937C18775EB6" "size" "C80863051620C9ECB2DFCC4D86D49D17" "download" "BA624604F37A23E86B89891762C5F1C1" } "testing-xbox" { "gid" "680739C57172133CF61027583C46649D" "size" "A790421B49E75D0A3B882EBE770F0A76" "download" "A01DA872BE1B992606FA517EA3BAB366" } } } "571410" { "dlcappid" "571410" "config" { "language" "" } "manifests" { "public" { "gid" "6524828579651589822" "size" "108018528" "download" "99723488" } "1.4.4" { "gid" "6524828579651589822" "size" "108018528" "download" "99723488" } "2.2.2" { "gid" "6524828579651589822" "size" "108018528" "download" "99723488" } } "encryptedmanifests" { "baseline" { "gid" "6903DA3917E788A59F4E8D217940144D" "size" "249FC935C1BA400A4F75012538F24BCC" "download" "ABBB6960ADC8DDC2D20F3BD5E2D2A456" } "experimental" { "gid" "3395C7927423A5230791CE4B1B9A60F4" "size" "D17A0ED22FBC4C61B63D1762B3C78FF4" "download" "AEBF0559079BA93625F29DBDDE28CD6A" } "loca" { "gid" "0648208E9058DAA83A5A87C59B248F2C" "size" "29E84B875686F15C38C4F34A503A5283" "download" "220BE2F8F516F88A2666CE91C83B2A51" } "milestone-ps4" { "gid" "D78FEF5D685DE1F768742BFAA5032B31" "size" "A4B920FA28C0A26298E7BACC11C91AC5" "download" "3EA4C2E6696A862BF118A31BBE524360" } "milestone-xbox" { "gid" "158DB0A45CBB2C3B741E242403585226" "size" "73E78E0C5A40EA8FE19B36611A523512" "download" "4160BF863772682DFAF07FDFF1BC842A" } "release-candidate" { "gid" "25E988FBB25E55C41841F49EB916C9F3" "size" "8EFB230627B212AA03DA88F6B9497D78" "download" "13D7BDB32C70E8FAC4C8345362AEADA4" } "testing" { "gid" "41FF9867C562FCCC6227DCD00627B6EA" "size" "2AD64B3440DF8EB5B1F446480E0FF411" "download" "58381C4262148DD42786030F61E47714" } "testing-ps4" { "gid" "4613E390C1537B5AB885BAC9E1D97275" "size" "62FC5A3EF44566DC834C395FE7599C3F" "download" "654E6BE7E54900F768D1DD01C2A27A9C" } "testing-stone" { "gid" "9807BB8F4D4522568FF58E1B7D03F401" "size" "CFF13B2189C9E72A25B362C19B95F88C" "download" "0B3050EF2236B2231CF3B77023FC549D" } "testing-xbox" { "gid" "6892FE863BB50A3E299A47D01E896C00" "size" "DA69A6D24D12DAABF7190471A6C3FFF0" "download" "928C210C0915B5232A3A3D11985D60BD" } } } "branches" { "public" { "buildid" "8181738" "timeupdated" "1646126338" } "1.4.4" { "buildid" "2099785" "description" "Release Version v1" "timeupdated" "1512988165" } "2.2.2" { "buildid" "2525365" "description" "Release Version v2.2.2" "timeupdated" "1528360185" } "age-rating" { "buildid" "1354321" "pwdrequired" "1" "timeupdated" "1474984825" } "baseline" { "buildid" "8181738" "pwdrequired" "1" "timeupdated" "1646124644" } "experimental" { "buildid" "11347962" "pwdrequired" "1" "timeupdated" "1685434011" } "internal" { "buildid" "2842459" "pwdrequired" "1" "timeupdated" "1528381462" } "last-stable" { "buildid" "1445902" "pwdrequired" "1" "timeupdated" "1478690011" } "loca" { "buildid" "2235958" "pwdrequired" "1" "timeupdated" "1509111039" } "milestone" { "buildid" "1416722" "pwdrequired" "1" "timeupdated" "1477587771" } "milestone-ps4" { "buildid" "1581934" "pwdrequired" "1" "timeupdated" "1484937431" } "milestone-xbox" { "buildid" "1585730" "pwdrequired" "1" "timeupdated" "1485188337" } "release-candidate" { "buildid" "8181738" "pwdrequired" "1" "timeupdated" "1646125485" } "testing" { "buildid" "8181738" "pwdrequired" "1" "timeupdated" "1644517699" } "testing-ps4" { "buildid" "1805719" "pwdrequired" "1" "timeupdated" "1494183226" } "testing-stone" { "buildid" "2099814" "pwdrequired" "1" "timeupdated" "1504788969" } "testing-xbox" { "buildid" "1805721" "pwdrequired" "1" "timeupdated" "1494183253" } } } "ufs" { "quota" "1000000000" "maxnumfiles" "1000" "savefiles" { "0" { "root" "WinAppDataLocal" "path" "Daedalic Entertainment GmbH/Shadow Tactics Blades of the Shogun" "pattern" "*" "recursive" "1" } } "rootoverrides" { "0" { "root" "WinAppDataLocal" "os" "MacOS" "oscompare" "=" "useinstead" "MacAppSupport" "addpath" "" } "1" { "root" "WinAppDataLocal" "os" "Linux" "oscompare" "=" "useinstead" "LinuxXdgDataHome" "addpath" "" } } } } ================================================ FILE: FreePackages.Tests/TestData/demo_with_fewer_languages_than_parent.txt ================================================ "appinfo" { "appid" "1316010" "common" { "name" "Grounded Demo" "type" "Demo" "parent" "962130" "releasestate" "released" "clienticon" "c32d52dd08904e453d46e3110aec9b5ed914b258" "clienttga" "c1d33aae31007248c34be89203c178d7c6996aab" "icon" "0e598fd0dc10e3d85e5f244c62d0c41e4c8d96cc" "oslist" "windows" "osarch" "" "osextended" "" "controller_support" "full" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "21.178529754959186" "height_pct" "49.99999999999998" } } "store_asset_mtime" "1592326549" "associations" { "0" { "type" "developer" "name" "Obsidian Entertainment" } "1" { "type" "publisher" "name" "Xbox Game Studios" } } "primary_genre" "1" "genres" { "0" "1" "1" "25" } "category" { "category_2" "1" "category_28" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } } "steam_release_date" "1592326772" "gameid" "1316010" } "extended" { "demoofappid" "962130" "developer" "Obsidian Entertainment" "publisher" "Xbox Game Studios" } "config" { "installdir" "Grounded Demo" "launch" { "0" { "executable" "Grounded.exe" "type" "default" } } } "depots" { "228988" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "1316011" { "config" { "language" "english" "oslist" "windows" } "manifests" { "public" { "gid" "5972724179545370343" "size" "19" "download" "64" } } } "962131" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "6304564497855120806" "size" "10201903161" "download" "9708831952" } } "encryptedmanifests" { "accessibility_dev" { "gid" "B81E6F9BFE38DC2A71781CD690878249" "size" "CE1747D84359852D9061DF408196A8A0" "download" "9859FA6AF29591AA86E48623A2600C96" } "agerating_dev" { "gid" "0959E3838032795AA7CCFBDAB9E76651" "size" "DC2BEAD669084DCD50DD29161387F44F" "download" "1DDE990A88685D6BF5E0EC267D2735F6" } "amd_dev" { "gid" "6065C3C8A18D8B90BEF764850E4F1C9E" "size" "3BB533C3AF07017FA0D23BEC520707AF" "download" "072E27BCE25333B33B40F8EB9A7E8A0D" } "buddha" { "gid" "3B111541FD0CC4A1ED7E3326B6A0F958" "size" "1D445FC1CB48B9C868207BF56A9F57BC" "download" "3D0207EFEB0AB5A368155F9A95A2911C" } "convention_demo" { "gid" "B223208976E03034ED9EF4D45B2E4D96" "size" "805A7BE4736131C72CEB6109514D5EDB" "download" "4F92091CAEAF057381032036779BA82A" } "latest_dev" { "gid" "F926EBE122C79227344E728F5A3A47CD" "size" "526700E45327E7D3BA56D38831418C65" "download" "A87039DB3BE2F986F4181F0178E9F653" } "latest_release" { "gid" "CAF691566F292F2D8218B076AF169697" "size" "41FF84C48EE9ABD874E1CF6FFD661AA5" "download" "973E3493B6CC7523998667598E7457B6" } "live_debug" { "gid" "271A9890324C10F105CDB7BAFEAF64EB" "size" "8B791BA860040C7A9CEC0ED38CC516CB" "download" "2170ABCF2F634AA5200D026FA51921F4" } "microsoft_research" { "gid" "B86F01D2A2EA523B47134D3C66F995E8" "size" "6B946EA7F0CF6321C44618EF7A2D4A6C" "download" "4DB4F2CDE2D40E9138099DCFACAD5B3D" } "october2023_preview" { "gid" "0C770047A0632E5C5C7FF4AFD873104A" "size" "1546F403858514FA65D4A596780981A1" "download" "185F6F2363AB396168CEF9A1BF6C47BE" } "shield_dev" { "gid" "B24742670C5D6973AD7C50050DF76FC7" "size" "98AFC5F2D943D39599B60A818DD55CAF" "download" "35CC78E0F57E384F91FBB1C602529E7D" } "shipping_staging" { "gid" "1989FF4C64B7C0282613897A1112E85E" "size" "26EFBF14E9FAC817E1AB372094FD4563" "download" "C6FEA2C49EB8CF61AB0AB982D49D6FAD" } "stable_dev" { "gid" "77052E24E7351944DE1364FD06AED7FA" "size" "609D0632FAF22C9EC67085C914876908" "download" "A5DA0B7A4322EC3DD9E6281AF63D5723" } "stable_release" { "gid" "45D6E36695DE4C32E73D7E361B883D71" "size" "A45153E08A07C3090DCFDCF800E100F0" "download" "CE197A98ED9F331658EC079A6A2887D5" } } "depotfromapp" "962130" } "branches" { "public" { "buildid" "5201901" "timeupdated" "1592886820" } "accessibility_dev" { "buildid" "12090331" "pwdrequired" "1" "timeupdated" "1694112002" } "agerating_dev" { "buildid" "9237043" "pwdrequired" "1" "timeupdated" "1659467892" } "amd_dev" { "buildid" "9534059" "pwdrequired" "1" "timeupdated" "1663610876" } "buddha" { "buildid" "8423567" "pwdrequired" "1" "timeupdated" "1648142420" } "convention_demo" { "buildid" "9086064" "pwdrequired" "1" "timeupdated" "1657576276" } "latest_dev" { "buildid" "12553307" "pwdrequired" "1" "timeupdated" "1698408947" } "latest_release" { "buildid" "12557541" "pwdrequired" "1" "timeupdated" "1698440258" } "live_debug" { "buildid" "12240975" "pwdrequired" "1" "timeupdated" "1695414287" } "microsoft_research" { "buildid" "12408365" "pwdrequired" "1" "timeupdated" "1696984594" } "october2023_preview" { "buildid" "12534773" "pwdrequired" "1" "timeupdated" "1698258737" } "shield_dev" { "buildid" "5296138" "pwdrequired" "1" "timeupdated" "1594936337" } "shipping_staging" { "buildid" "12557659" "pwdrequired" "1" "timeupdated" "1698441348" } "stable_dev" { "buildid" "12413496" "pwdrequired" "1" "timeupdated" "1697131606" } "stable_release" { "buildid" "12534776" "pwdrequired" "1" "timeupdated" "1698258753" } } } } ================================================ FILE: FreePackages.Tests/TestData/demo_with_fewer_languages_than_parent_parent.txt ================================================ "appinfo" { "appid" "962130" "common" { "name" "Grounded" "type" "Game" "oslist" "windows" "osarch" "64" "logo" "15d323a6ab3b07fc656592664e582abc34dba8c9" "logo_small" "15d323a6ab3b07fc656592664e582abc34dba8c9_thumb" "clienticon" "c32d52dd08904e453d46e3110aec9b5ed914b258" "clienttga" "c1d33aae31007248c34be89203c178d7c6996aab" "icon" "0e598fd0dc10e3d85e5f244c62d0c41e4c8d96cc" "releasestate" "released" "steam_deck_compatibility" { "category" "3" "test_timestamp" "1682035200" "tested_build_id" "11025012" "tests" { "0" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigFullyFunctional" } "1" { "display" "4" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsMatchDeckDevice" } "2" { "display" "4" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } "4" { "display" "1" "token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "1" "non_deck_display_glyphs" "0" "small_text" "0" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "proton-8.0-1" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "metacritic_name" "Grounded" "controller_support" "full" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "24.08812567365817" "height_pct" "68.45282178277765" } } "store_asset_mtime" "1676049046" "associations" { "0" { "type" "developer" "name" "Obsidian Entertainment" } "1" { "type" "publisher" "name" "Xbox Game Studios" } } "primary_genre" "25" "genres" { "0" "1" "1" "25" } "category" { "category_2" "1" "category_1" "1" "category_9" "1" "category_38" "1" "category_28" "1" "category_23" "1" "category_29" "1" "category_42" "1" "category_45" "1" "category_46" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "french" { "supported" "true" "subtitles" "true" } "italian" { "supported" "true" "subtitles" "true" } "german" { "supported" "true" "subtitles" "true" } "latam" { "supported" "true" "subtitles" "true" } "koreana" { "supported" "true" "subtitles" "true" } "polish" { "supported" "true" "subtitles" "true" } "brazilian" { "supported" "true" "subtitles" "true" } "russian" { "supported" "true" "subtitles" "true" } "schinese" { "supported" "true" "subtitles" "true" } "japanese" { "supported" "true" "subtitles" "true" } "thai" { "supported" "true" "subtitles" "true" } "tchinese" { "supported" "true" "subtitles" "true" } "turkish" { "supported" "true" "subtitles" "true" } "spanish" { "supported" "true" "subtitles" "true" } "arabic" { "supported" "true" "subtitles" "true" } } "steam_release_date" "1664297880" "metacritic_score" "83" "metacritic_fullurl" "https://www.metacritic.com/game/pc/grounded?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "962130" "store_tags" { "0" "1662" "1" "3859" "2" "1100689" "3" "7332" "4" "1685" "5" "1702" "6" "21" "7" "1695" "8" "1667" "9" "3843" "10" "19" "11" "3834" "12" "3810" "13" "3839" "14" "4182" "15" "122" "16" "493" "17" "1697" "18" "4726" "19" "4136" } "review_score" "8" "review_percentage" "88" } "extended" { "developer" "Obsidian Entertainment" "publisher" "Xbox Game Studios" "homepage" "https://grounded.obsidian.net" } "config" { "installdir" "Grounded" "launch" { "0" { "executable" "Grounded.exe" "type" "default" } "2" { "executable" "GroundedDev.exe" "description" "(GroundedDev.exe) Build with debug options." "type" "none" "config" { "betakey" "latest_dev" } } "3" { "executable" "GroundedDev.exe" "description" "(GroundedDev.exe) Build with debug options." "type" "none" "config" { "betakey" "stable_dev" } } "4" { "executable" "GroundedDev.exe" "type" "none" "config" { "betakey" "latest_release" } "description_loc" { "english" "(GroundedDev.exe) Build with debug options." } "description" "(GroundedDev.exe) Build with debug options." } "5" { "executable" "GroundedDev.exe" "description" "(GroundedDev,exe) Build with debug options." "type" "none" "config" { "betakey" "stable_release" } } "6" { "executable" "GroundedDev.exe" "description" "(GroundedDev.exe) Build with debug options." "type" "none" "config" { "betakey" "buddha" } } "7" { "executable" "GroundedDev.exe" "type" "none" "config" { "betakey" "microsoft_research" } "description_loc" { "english" "(GroundedDev.exe) Build with debug options." } "description" "(GroundedDev.exe) Build with debug options." } "8" { "executable" "GroundedDev.exe" "config" { "betakey" "live_debug" } "description_loc" { "english" "(GroundedDev.exe) Build with debug options." } "description" "(GroundedDev.exe) Build with debug options." } "9" { "executable" "GroundedDev.exe" "config" { "betakey" "accessibility_dev" } "description_loc" { "english" "(GroundedDev.exe) Build with debug options." } "description" "(GroundedDev.exe) Build with debug options." } "10" { "executable" "GroundedDev.exe" "config" { "betakey" "latest_1.0" } "description_loc" { "english" "(GroundedDev.exe) Build with debug options." } "description" "(GroundedDev.exe) Build with debug options." } "11" { "executable" "GroundedDev.exe" "config" { "betakey" "stable_1.0" } "description_loc" { "english" "(GroundedDev.exe) Build with debug options." } "description" "(GroundedDev.exe) Build with debug options." } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2258586831" { "controller_type" "controller_mobile_touch" "enabled_branches" "default" "use_action_block" "false" } } } "depots" { "228983" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228984" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228988" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "962131" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "6304564497855120806" "size" "10201903161" "download" "9708831952" } } "encryptedmanifests" { "accessibility_dev" { "gid" "B81E6F9BFE38DC2A71781CD690878249" "size" "CE1747D84359852D9061DF408196A8A0" "download" "9859FA6AF29591AA86E48623A2600C96" } "agerating_dev" { "gid" "0959E3838032795AA7CCFBDAB9E76651" "size" "DC2BEAD669084DCD50DD29161387F44F" "download" "1DDE990A88685D6BF5E0EC267D2735F6" } "amd_dev" { "gid" "6065C3C8A18D8B90BEF764850E4F1C9E" "size" "3BB533C3AF07017FA0D23BEC520707AF" "download" "072E27BCE25333B33B40F8EB9A7E8A0D" } "buddha" { "gid" "3B111541FD0CC4A1ED7E3326B6A0F958" "size" "1D445FC1CB48B9C868207BF56A9F57BC" "download" "3D0207EFEB0AB5A368155F9A95A2911C" } "convention_demo" { "gid" "B223208976E03034ED9EF4D45B2E4D96" "size" "805A7BE4736131C72CEB6109514D5EDB" "download" "4F92091CAEAF057381032036779BA82A" } "latest_dev" { "gid" "F926EBE122C79227344E728F5A3A47CD" "size" "526700E45327E7D3BA56D38831418C65" "download" "A87039DB3BE2F986F4181F0178E9F653" } "latest_release" { "gid" "CAF691566F292F2D8218B076AF169697" "size" "41FF84C48EE9ABD874E1CF6FFD661AA5" "download" "973E3493B6CC7523998667598E7457B6" } "live_debug" { "gid" "271A9890324C10F105CDB7BAFEAF64EB" "size" "8B791BA860040C7A9CEC0ED38CC516CB" "download" "2170ABCF2F634AA5200D026FA51921F4" } "microsoft_research" { "gid" "B86F01D2A2EA523B47134D3C66F995E8" "size" "6B946EA7F0CF6321C44618EF7A2D4A6C" "download" "4DB4F2CDE2D40E9138099DCFACAD5B3D" } "october2023_preview" { "gid" "0C770047A0632E5C5C7FF4AFD873104A" "size" "1546F403858514FA65D4A596780981A1" "download" "185F6F2363AB396168CEF9A1BF6C47BE" } "shield_dev" { "gid" "B24742670C5D6973AD7C50050DF76FC7" "size" "98AFC5F2D943D39599B60A818DD55CAF" "download" "35CC78E0F57E384F91FBB1C602529E7D" } "shipping_staging" { "gid" "1989FF4C64B7C0282613897A1112E85E" "size" "26EFBF14E9FAC817E1AB372094FD4563" "download" "C6FEA2C49EB8CF61AB0AB982D49D6FAD" } "stable_dev" { "gid" "77052E24E7351944DE1364FD06AED7FA" "size" "609D0632FAF22C9EC67085C914876908" "download" "A5DA0B7A4322EC3DD9E6281AF63D5723" } "stable_release" { "gid" "45D6E36695DE4C32E73D7E361B883D71" "size" "A45153E08A07C3090DCFDCF800E100F0" "download" "CE197A98ED9F331658EC079A6A2887D5" } } } "962132" { "config" { "language" "english" "oslist" "windows" } "manifests" { "public" { "gid" "6302913331842664540" "size" "0" "download" "0" } } "encryptedmanifests" { "accessibility_dev" { "gid" "0AD4FD10F3D6F03F6161B7FEE615BA8A" "size" "1F5D96AB1689D3A5007FD3D7B737D6C7" "download" "1F5D96AB1689D3A5007FD3D7B737D6C7" } "agerating_dev" { "gid" "693AA6CD68DE3D5172854CCEBA1AAEBF" "size" "C7888EF52A456C5DD3BD4741BB5CD887" "download" "C7888EF52A456C5DD3BD4741BB5CD887" } "amd_dev" { "gid" "C769DD316587E5352EF166CC1F732E15" "size" "65AF1A569F778704FA13FCB2B3CF06C1" "download" "65AF1A569F778704FA13FCB2B3CF06C1" } "buddha" { "gid" "3AE4CBC58B6A3C4D4DF37A36DC474972" "size" "451AB5A4065C2635512FDE4CD869050A" "download" "451AB5A4065C2635512FDE4CD869050A" } "convention_demo" { "gid" "63D310FC1607F2C0050EDF5A56295545" "size" "3D3319729B5135F068302146910551CF" "download" "3D3319729B5135F068302146910551CF" } "latest_dev" { "gid" "30D60613EB572B496A987E9C1351F7D3" "size" "CDBCB9A8925FF4F2931F08E09270A9FA" "download" "CDBCB9A8925FF4F2931F08E09270A9FA" } "latest_release" { "gid" "126408420C7D34B54B7F33E19066BB04" "size" "11BFE37FA1F379C9A021186C18353E9A" "download" "11BFE37FA1F379C9A021186C18353E9A" } "live_debug" { "gid" "38240EB89BED81CD096797CECCB2F81A" "size" "30E73B4A8104FEEB0DD03879FFE5F122" "download" "30E73B4A8104FEEB0DD03879FFE5F122" } "microsoft_research" { "gid" "34FA6BA997B6A1870457E68089A8926B" "size" "670E66B3E091342EBD6CB15C8BB65816" "download" "670E66B3E091342EBD6CB15C8BB65816" } "october2023_preview" { "gid" "364A6582184FB17EADD3D9D1C3B9C826" "size" "DC052CBAD7D05E7634A5A0787F71465C" "download" "DC052CBAD7D05E7634A5A0787F71465C" } "shield_dev" { "gid" "ADB2CF82EDCA096D06939C5BD2AF0673" "size" "A3DD06C8187409009073F77220AE53C2" "download" "A3DD06C8187409009073F77220AE53C2" } "shipping_staging" { "gid" "D50D96CD3D26D90098A6DF75EB41FA2F" "size" "6B5700636CE6439B4B3C706743978B51" "download" "6B5700636CE6439B4B3C706743978B51" } "stable_dev" { "gid" "679D59D75163D5066EF4B7E676C126EE" "size" "D85E218F2CE0E98E4737E4EFF6F67567" "download" "D85E218F2CE0E98E4737E4EFF6F67567" } "stable_release" { "gid" "D20D170405ED4D4A41179AB7392F1155" "size" "719F36CD54F9DEDDD647FD587BC9A068" "download" "719F36CD54F9DEDDD647FD587BC9A068" } } } "962133" { "config" { "language" "english" "oslist" "windows" } "manifests" { "public" { "gid" "2318510851023808" "size" "0" "download" "0" } } "encryptedmanifests" { "accessibility_dev" { "gid" "EE1B70EE416A6F43A31D49E304198E64" "size" "1F5D96AB1689D3A5007FD3D7B737D6C7" "download" "1F5D96AB1689D3A5007FD3D7B737D6C7" } "agerating_dev" { "gid" "C24E893AAEB8EC92CF344FFBDE73AF9E" "size" "C7888EF52A456C5DD3BD4741BB5CD887" "download" "C7888EF52A456C5DD3BD4741BB5CD887" } "amd_dev" { "gid" "0AED71A35866F32BE36B86103FDA941B" "size" "65AF1A569F778704FA13FCB2B3CF06C1" "download" "65AF1A569F778704FA13FCB2B3CF06C1" } "buddha" { "gid" "E4E1D7A4A67D78BD17CF7273C631BA9F" "size" "451AB5A4065C2635512FDE4CD869050A" "download" "451AB5A4065C2635512FDE4CD869050A" } "convention_demo" { "gid" "2AFF5E6847BBCD3594131D3D8DF50678" "size" "3D3319729B5135F068302146910551CF" "download" "3D3319729B5135F068302146910551CF" } "latest_dev" { "gid" "E7CF9A9E9852BB11CF614D9BB6668D22" "size" "CDBCB9A8925FF4F2931F08E09270A9FA" "download" "CDBCB9A8925FF4F2931F08E09270A9FA" } "latest_release" { "gid" "70B32CCF934E8C11840C412A5D2462E6" "size" "11BFE37FA1F379C9A021186C18353E9A" "download" "11BFE37FA1F379C9A021186C18353E9A" } "live_debug" { "gid" "C5FB0D76E970C6470E9D3A9B89F93C21" "size" "30E73B4A8104FEEB0DD03879FFE5F122" "download" "30E73B4A8104FEEB0DD03879FFE5F122" } "microsoft_research" { "gid" "8EEDC0809BFC0F84E3DF445B4FB401E1" "size" "670E66B3E091342EBD6CB15C8BB65816" "download" "670E66B3E091342EBD6CB15C8BB65816" } "october2023_preview" { "gid" "EA5C849FD0AABA398873C96947FBBC53" "size" "DC052CBAD7D05E7634A5A0787F71465C" "download" "DC052CBAD7D05E7634A5A0787F71465C" } "shield_dev" { "gid" "AF72E94F257D68978CB3671F5071FC16" "size" "A3DD06C8187409009073F77220AE53C2" "download" "A3DD06C8187409009073F77220AE53C2" } "shipping_staging" { "gid" "D6D58B5DCA24E9DD7FCA2D2D62233D0C" "size" "6B5700636CE6439B4B3C706743978B51" "download" "6B5700636CE6439B4B3C706743978B51" } "stable_dev" { "gid" "6B024AA1CB32C42A05083F036055F470" "size" "D85E218F2CE0E98E4737E4EFF6F67567" "download" "D85E218F2CE0E98E4737E4EFF6F67567" } "stable_release" { "gid" "80FFEAE361F2268AB422F0BE6D027870" "size" "719F36CD54F9DEDDD647FD587BC9A068" "download" "719F36CD54F9DEDDD647FD587BC9A068" } } } "962134" { "config" { "steamdeck" "1" } "manifests" { "public" { "gid" "5364155453177518539" "size" "0" "download" "0" } } "encryptedmanifests" { "accessibility_dev" { "gid" "9567229F4CA63ABE38AB312FD0299B96" "size" "1F5D96AB1689D3A5007FD3D7B737D6C7" "download" "1F5D96AB1689D3A5007FD3D7B737D6C7" } "latest_dev" { "gid" "215F5935D48DECD1856117D797836370" "size" "CDBCB9A8925FF4F2931F08E09270A9FA" "download" "CDBCB9A8925FF4F2931F08E09270A9FA" } "latest_release" { "gid" "6BEAD253F66E072407E86BCD92DDD022" "size" "11BFE37FA1F379C9A021186C18353E9A" "download" "11BFE37FA1F379C9A021186C18353E9A" } "live_debug" { "gid" "FDE7C7B3D7399465C38A78645DBA2B4B" "size" "30E73B4A8104FEEB0DD03879FFE5F122" "download" "30E73B4A8104FEEB0DD03879FFE5F122" } "microsoft_research" { "gid" "9161E6CBFEC173E38DD70F3D6292BFA4" "size" "670E66B3E091342EBD6CB15C8BB65816" "download" "670E66B3E091342EBD6CB15C8BB65816" } "october2023_preview" { "gid" "2AD51EAE6DA049DCEBAC2628FC6D9368" "size" "DC052CBAD7D05E7634A5A0787F71465C" "download" "DC052CBAD7D05E7634A5A0787F71465C" } "shipping_staging" { "gid" "84128C0728ADA60D6BA31B92F234C652" "size" "6B5700636CE6439B4B3C706743978B51" "download" "6B5700636CE6439B4B3C706743978B51" } "stable_dev" { "gid" "2F5D222365E0043E21DCB2D1C2E65631" "size" "D85E218F2CE0E98E4737E4EFF6F67567" "download" "D85E218F2CE0E98E4737E4EFF6F67567" } "stable_release" { "gid" "93327722B4F3E39A669F44C74FDFA70A" "size" "719F36CD54F9DEDDD647FD587BC9A068" "download" "719F36CD54F9DEDDD647FD587BC9A068" } } } "962135" { "manifests" { } "encryptedmanifests" { "accessibility_dev" { "gid" "99B251E1DD9ADEAFA47587B608D9CE96" "size" "797BAEBC45B7C496E5CD08D906E9EEE1" "download" "C32E0250ECD8E64329DA7ED1E8E75EE6" } "latest_dev" { "gid" "9A34E465668E5F3287E8006D5609CDF0" "size" "6F55DDFE600C8DD3A0331BA1C18F18D7" "download" "01DCA15E309F9B541FAC9073C40377B0" } "live_debug" { "gid" "B5AE18183D48ADAED749FA325AD85EC4" "size" "60F290D5A41A9A1902CD69264825CBBD" "download" "3442CB2929C5CFACAA0D86CFD9AA4627" } "microsoft_research" { "gid" "42A7AED682C1F1ADA174C92859633DDB" "size" "7D475E01064A020FF8D7306FE56704AF" "download" "18106E080148EF1F754C19B1C8D20FA6" } "october2023_preview" { "gid" "1701D5B48686B8D8C68E33E0E0CE366F" "size" "4F5509DC91717E57A493AD90753AA441" "download" "48C3B1FCFF87CD388612D8824A8AAEE1" } "stable_dev" { "gid" "A45BBB830E7A8C9A23C7CEDB101A73E3" "size" "9B6FA2538FA889F13486810911F3F159" "download" "AA2517AE5AF296C035C16AE34C793D89" } "stable_release" { "gid" "635926037722F49FAE162453DDD7131B" "size" "C25E504B241AA9AEFE4C61E782B97595" "download" "D2BE1AE4CAB6984EA63D1A6D7B1A3FF4" } } } "branches" { "public" { "buildid" "12236153" "timeupdated" "1695315633" } "accessibility_dev" { "buildid" "12090331" "pwdrequired" "1" "timeupdated" "1694112002" } "agerating_dev" { "buildid" "9237043" "pwdrequired" "1" "timeupdated" "1659467892" } "amd_dev" { "buildid" "9534059" "pwdrequired" "1" "timeupdated" "1663610876" } "buddha" { "buildid" "8423567" "pwdrequired" "1" "timeupdated" "1648142420" } "convention_demo" { "buildid" "9086064" "pwdrequired" "1" "timeupdated" "1657576276" } "latest_dev" { "buildid" "12553307" "pwdrequired" "1" "timeupdated" "1698408947" } "latest_release" { "buildid" "12557541" "pwdrequired" "1" "timeupdated" "1698440258" } "live_debug" { "buildid" "12240975" "pwdrequired" "1" "timeupdated" "1695414287" } "microsoft_research" { "buildid" "12408365" "pwdrequired" "1" "timeupdated" "1696984594" } "october2023_preview" { "buildid" "12534773" "pwdrequired" "1" "timeupdated" "1698258737" } "shield_dev" { "buildid" "5296138" "pwdrequired" "1" "timeupdated" "1594936337" } "shipping_staging" { "buildid" "12557659" "pwdrequired" "1" "timeupdated" "1698441348" } "stable_dev" { "buildid" "12413496" "pwdrequired" "1" "timeupdated" "1697131606" } "stable_release" { "buildid" "12534776" "pwdrequired" "1" "timeupdated" "1698258753" } } } "ufs" { "quota" "384000000" "maxnumfiles" "10000" "savefiles" { "0" { "root" "WinSavedGames" "path" "Grounded" "pattern" "*" "platforms" { "1" "Windows" } "recursive" "1" } } } } ================================================ FILE: FreePackages.Tests/TestData/demo_with_fewer_tags_than_parent.txt ================================================ "appinfo" { "appid" "410" "common" { "clienticon" "c7cb09b9f0fbb9589b4bd5a8217c8333c4d8204e" "clienttga" "0da38a1351a4d7f17b4c53c9d9bd09ba59ed463b" "icon" "cfa928ab4119dd137e50d728e8fe703e4e970aff" "clienticns" "89b04b46c85279c6da7a543408644031317e49b3" "linuxclienticon" "9fcff385181db33a52955cb704f1409fc82adf8f" "name" "Portal: First Slice" "logo" "d8809408d0cb0edadcdbda25cf22f1955f29a853" "logo_small" "eb0ab1b98e35090f26435a36696234d31e177f61" "type" "Demo" "parent" "400" "oslist" "macos,windows,linux" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "1" "genres" { "0" "1" } "category" { "category_2" "1" "category_10" "1" "category_12" "1" "category_13" "1" "category_18" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "french" { "supported" "true" "full_audio" "true" } "german" { "supported" "true" "full_audio" "true" } "russian" { "supported" "true" "full_audio" "true" } "danish" { "supported" "true" } "dutch" { "supported" "true" } "finnish" { "supported" "true" } "italian" { "supported" "true" } "japanese" { "supported" "true" } "korean" { "supported" "true" } "norwegian" { "supported" "true" } "polish" { "supported" "true" } "portuguese" { "supported" "true" } "schinese" { "supported" "true" } "spanish" { "supported" "true" } "swedish" { "supported" "true" } "tchinese" { "supported" "true" "full_audio" "true" } } "original_release_date" "1210230000" "steam_release_date" "1210269600" "gameid" "410" "review_score" "8" "review_percentage" "96" } "extended" { "demoofappid" "400" "dependantonapp" "400" "developer" "Valve" "gamedir" "portal" "homepage" "http://www.half-life2.com" "icon" "steam/games/icon_portal" "icon2" "steam/games/icon_portal_dull" "languages" "english,french,german,russian" "noservers" "0" "order" "1" "sourcegame" "1" "state" "eStateAvailable" "validoslist" "macos,windows" "developer_url" "http://www.valvesoftware.com" "publisher" "Valve" } "config" { "launch" { "0" { "executable" "hl2.exe" "arguments" "-game portal -steam" "config" { "oslist" "windows" } } "1" { "executable" "hl2_osx" "arguments" "-game portal -steam" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game portal -steam" "config" { "oslist" "linux" } } } "contenttype" "3" "installdir" "Portal" "convertgcfs" "1" } "depots" { "402" { "config" { "oslist" "windows" "language" "" } "systemdefined" "1" "depotfromapp" "400" "sharedinstall" "2" } "403" { "config" { "oslist" "macos" "language" "" } "systemdefined" "1" "depotfromapp" "400" "sharedinstall" "2" } "404" { "config" { "oslist" "linux" "language" "" } "systemdefined" "1" "depotfromapp" "400" "sharedinstall" "2" } "405" { "config" { "language" "russian" } "depotfromapp" "400" "sharedinstall" "2" } "406" { "config" { "language" "spanish" } "depotfromapp" "400" "sharedinstall" "2" } "407" { "config" { "language" "french" } "depotfromapp" "400" "sharedinstall" "2" } "408" { "config" { "language" "german" } "depotfromapp" "400" "sharedinstall" "2" } "409" { "config" { "language" "" } "depotfromapp" "400" "sharedinstall" "2" } "410" { "config" { "language" "" } "depotfromapp" "400" "sharedinstall" "2" } "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish" "branches" { } } "ufs" { "quota" "10485760" "maxnumfiles" "100" "appidredirect" "400" "savefiles" { "1" { "root" "gameinstall" "path" "portal/save" "pattern" "*.sav" "siblings" "tga" "platforms" { "1" "all" } } "2" { "root" "gameinstall" "path" "portal/save" "pattern" "bonus_maps_data.bmd" "platforms" { "1" "all" } } } } } ================================================ FILE: FreePackages.Tests/TestData/demo_with_fewer_tags_than_parent_parent.txt ================================================ "appinfo" { "appid" "400" "common" { "clienticon" "c7cb09b9f0fbb9589b4bd5a8217c8333c4d8204e" "clienttga" "0da38a1351a4d7f17b4c53c9d9bd09ba59ed463b" "icon" "cfa928ab4119dd137e50d728e8fe703e4e970aff" "logo" "4184d4c0d915bd3a45210667f7b25361352acd8f" "logo_small" "07e7e9afa13b5132c32f5e265ed95a6beab3de6f" "metacritic_url" "pc/portal" "name" "Portal" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "portuguese" "1" "polish" "1" "danish" "1" "dutch" "1" "finnish" "1" "norwegian" "1" "swedish" "1" "hungarian" "1" "czech" "1" "romanian" "1" "turkish" "1" "brazilian" "1" "bulgarian" "1" "greek" "1" "ukrainian" "1" "vietnamese" "1" "latam" "1" } "clienticns" "89b04b46c85279c6da7a543408644031317e49b3" "oslist" "macos,windows,linux" "linuxclienticon" "9fcff385181db33a52955cb704f1409fc82adf8f" "type" "game" "steam_deck_compatibility" { "category" "3" "test_timestamp" "1646265600" "tested_build_id" "8289359" "tests" { "0" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigFullyFunctional" } "1" { "display" "4" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsLegible" } "2" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "0" "non_deck_display_glyphs" "0" "small_text" "0" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "native" "requires_h264" "0" } } "metacritic_name" "Portal" "controller_support" "partial" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "CenterCenter" "width_pct" "100" "height_pct" "78" } } "store_asset_mtime" "1682715009" "associations" { "0" { "type" "developer" "name" "Valve" } "1" { "type" "publisher" "name" "Valve" } } "primary_genre" "1" "genres" { "0" "1" } "category" { "category_2" "1" "category_12" "1" "category_13" "1" "category_14" "1" "category_16" "1" "category_17" "1" "category_18" "1" "category_22" "1" "category_44" "1" "category_41" "1" "category_42" "1" "category_45" "1" "category_46" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "french" { "supported" "true" "full_audio" "true" "subtitles" "true" } "german" { "supported" "true" "full_audio" "true" "subtitles" "true" } "russian" { "supported" "true" "full_audio" "true" "subtitles" "true" } "danish" { "supported" "true" "subtitles" "true" } "dutch" { "supported" "true" "subtitles" "true" } "finnish" { "supported" "true" "subtitles" "true" } "italian" { "supported" "true" "subtitles" "true" } "japanese" { "supported" "true" "subtitles" "true" } "norwegian" { "supported" "true" "subtitles" "true" } "polish" { "supported" "true" "subtitles" "true" } "portuguese" { "supported" "true" "subtitles" "true" } "schinese" { "supported" "true" "subtitles" "true" } "spanish" { "supported" "true" "full_audio" "true" "subtitles" "true" } "swedish" { "supported" "true" "subtitles" "true" } "tchinese" { "supported" "true" "full_audio" "true" "subtitles" "true" } "koreana" { "supported" "true" "subtitles" "true" } "bulgarian" { "supported" "true" "subtitles" "true" } "czech" { "supported" "true" "subtitles" "true" } "greek" { "supported" "true" "subtitles" "true" } "hungarian" { "supported" "true" "subtitles" "true" } "brazilian" { "supported" "true" "subtitles" "true" } "romanian" { "supported" "true" "subtitles" "true" } "latam" { "supported" "true" "subtitles" "true" } "thai" { "supported" "true" "subtitles" "true" } "turkish" { "supported" "true" "subtitles" "true" } "ukrainian" { "supported" "true" "subtitles" "true" } } "original_release_date" "1191999600" "steam_release_date" "1191999660" "metacritic_score" "90" "metacritic_fullurl" "https://www.metacritic.com/game/pc/portal?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "400" "store_tags" { "0" "1664" "1" "5537" "2" "3839" "3" "5395" "4" "4182" "5" "3942" "6" "1719" "7" "7208" "8" "4136" "9" "3968" "10" "19" "11" "1742" "12" "1693" "13" "1625" "14" "5794" "15" "4166" "16" "5923" "17" "1663" "18" "4234" "19" "21" } "review_score" "9" "review_percentage" "98" } "extended" { "developer" "Valve" "gamedir" "portal" "homepage" "http://www.whatistheorangebox.com/" "icon" "steam/games/icon_portal" "icon2" "steam/games/icon_portal_dull" "languages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish" "languages_macos" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish" "minclientversion" "1218" "noservers" "0" "order" "1" "preloadunlocktime" "1191999600" "primarycache" "401" "requiressse" "1" "sourcegame" "1" "state" "eStateAvailable" "validoslist" "macos,windows" "deckresolutionoverride" "Native" "developer_url" "http://www.valvesoftware.com/" "publisher" "Valve" } "config" { "launch" { "0" { "executable" "hl2.exe" "arguments" "-game portal -steam" "workingdir" "bin" "config" { "oslist" "windows" } } "1" { "executable" "hl2.sh" "arguments" "-game portal -steam" "config" { "oslist" "macos" } } "2" { "executable" "hl2.sh" "arguments" "-game portal -steam" "config" { "oslist" "linux" } } "3" { "executable" "PortalRTX\\hl2.exe" "arguments" "-game portal_rtx -steam" "type" "option1" "config" { "oslist" "windows" "ownsdlc" "2012840" } "description_loc" { "english" "Portal with RTX" } "description" "Portal with RTX" } } "contenttype" "3" "installdir" "Portal" "convertgcfs" "1" "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "2063315457" { "controller_type" "controller_mobile_touch" "enabled_branches" "default,beta" "use_action_block" "false" } } "steamcontrollertemplateindex" "13" "steamconfigurator3rdpartynative" "65535" "steaminputmanifestpath" "steam_input/action_manifest_portal.vdf" } "depots" { "markdlcdepots" "1" "overridescddb" "1" "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,portuguese,polish,danish,dutch,finnish,norwegian,swedish,hungarian,czech,romanian,turkish,brazilian" "402" { "config" { "oslist" "windows" "language" "" } "systemdefined" "1" "manifests" { "public" { "gid" "2535652127986385917" "size" "154940489" "download" "61850448" } "beta" { "gid" "2535652127986385917" "size" "154940489" "download" "61850448" } "deck_test" { "gid" "6625181238355211891" "size" "154917577" "download" "61852064" } } } "403" { "config" { "oslist" "macos" "language" "" } "systemdefined" "1" "manifests" { "public" { "gid" "8540313218896607941" "size" "109505307" "download" "33668576" } "beta" { "gid" "8540313218896607941" "size" "109505307" "download" "33668576" } "deck_test" { "gid" "6306429178267747215" "size" "109496153" "download" "33670480" } } } "404" { "config" { "oslist" "linux" "language" "" } "systemdefined" "1" "manifests" { "public" { "gid" "5390081909454758573" "size" "144467584" "download" "49462896" } "beta" { "gid" "8414041742674189020" "size" "144480511" "download" "49466288" } "deck_test" { "gid" "2944553574816157153" "size" "142962413" "download" "49125152" } } } "405" { "config" { "language" "russian" } "manifests" { "public" { "gid" "453200351187428393" "size" "85905720" "download" "76108208" } "beta" { "gid" "453200351187428393" "size" "85905720" "download" "76108208" } "deck_test" { "gid" "453200351187428393" "size" "85905720" "download" "76108208" } } } "406" { "config" { "language" "spanish" } "manifests" { "public" { "gid" "8904830885129684315" "size" "147473667" "download" "103692368" } "beta" { "gid" "8904830885129684315" "size" "147473667" "download" "103692368" } "deck_test" { "gid" "8904830885129684315" "size" "147473667" "download" "103692368" } } } "407" { "config" { "language" "french" } "manifests" { "public" { "gid" "8242589767738537927" "size" "146568277" "download" "112107920" } "beta" { "gid" "8242589767738537927" "size" "146568277" "download" "112107920" } "deck_test" { "gid" "8242589767738537927" "size" "146568277" "download" "112107920" } } } "408" { "config" { "language" "german" } "manifests" { "public" { "gid" "8794244784218856360" "size" "145521369" "download" "114173696" } "beta" { "gid" "8794244784218856360" "size" "145521369" "download" "114173696" } "deck_test" { "gid" "8794244784218856360" "size" "145521369" "download" "114173696" } } } "409" { "config" { "language" "" } "manifests" { "public" { "gid" "5984360824509444405" "size" "3693457142" "download" "2240019072" } "beta" { "gid" "8739253430476639515" "size" "3693457142" "download" "2239632576" } "deck_test" { "gid" "6882033175431777282" "size" "3670370042" "download" "2237264032" } } } "410" { "config" { "language" "" } "manifests" { "public" { "gid" "106212190778449766" "size" "8574" "download" "3104" } "beta" { "gid" "106212190778449766" "size" "8574" "download" "3104" } "deck_test" { "gid" "106212190778449766" "size" "8574" "download" "3104" } } } "401" { "systemdefined" "1" "config" { "language" "" } "manifests" { "public" { "gid" "5882167507999820297" "size" "4029341322" "download" "2406895200" } "beta" { "gid" "7536013392037484693" "size" "4029341322" "download" "2406508704" } "deck_test" { "gid" "4344267954475545347" "size" "4005497841" "download" "2404028608" } } } "hasdepotsindlc" "1" "branches" { "public" { "buildid" "9970151" "timeupdated" "1673997754" } "beta" { "buildid" "10293467" "description" "SteamPipe Beta" "timeupdated" "1673992151" } "deck_test" { "buildid" "8249490" "description" "deck ui test" "timeupdated" "1645821796" } } } "ufs" { "quota" "1073741824" "maxnumfiles" "100" "savefiles" { "1" { "root" "gameinstall" "path" "portal/save" "pattern" "*.sav" "siblings" "tga" "platforms" { "1" "all" } } "2" { "root" "gameinstall" "path" "portal/save" "pattern" "bonus_maps_data.bmd" "platforms" { "1" "all" } } } } "sysreqs" { "macos" { "supported" "1" "wants_fast_gpu" "1" "intel900" "warn" "intelx3100" "warn" "8086" { "27a6" "warn" "2a02" "warn" } "10de" { "009d" "deny" "0391" "deny" "0393" "deny" "0395" "deny" } } "macos104" { "supported" "0" "os_min" "macos1058" } "macos105" { "supported" "0" "os_min" "macos1058" } "macos106" { "supported" "0" "os_min" "macos1063" } } } ================================================ FILE: FreePackages.Tests/TestData/package_which_is_free.txt ================================================ "953346" { "packageid" "953346" "billingtype" "12" "licensetype" "1" "status" "0" "extended" { "allowcrossregiontradingandgifting" "false" } "appids" { "0" "2660620" } "depotids" { "0" "2660621" } "appitems" { } } ================================================ FILE: FreePackages.Tests/TestData/package_which_is_no_cost.txt ================================================ "44911" { "packageid" "44911" "billingtype" "0" "licensetype" "1" "status" "2" "extended" { "allowpurchasefromrestrictedcountries" "0" "purchaserestrictedcountries" "RU" } "appids" { "0" "304050" } "depotids" { "0" "304051" "1" "304052" "2" "304053" "3" "845241" } "appitems" { } } ================================================ FILE: FreePackages.Tests/TestData/package_with_deactivated_demo.txt ================================================ "20737" { "packageid" "20737" "billingtype" "12" "licensetype" "1" "status" "0" "extended" { "deactivated_demo" "1" "dontgrantifappidowned" "11140" "expirytime" "1592345200" "freeweekend" "1" "starttime" "1592325000" } "appids" { "0" "7290" } "depotids" { "0" "7291" } "appitems" { } } ================================================ FILE: FreePackages.Tests/TestData/package_with_demo_which_will_be_removed.txt ================================================ "860092" { "packageid" "860092" "billingtype" "12" "licensetype" "1" "status" "0" "extended" { } "appids" { "0" "2390760" } "depotids" { "0" "2390761" } "appitems" { } } ================================================ FILE: FreePackages.Tests/TestData/package_with_disallowed_app.txt ================================================ "657460" { "packageid" "657460" "billingtype" "12" "licensetype" "1" "status" "0" "extended" { "deactivated_demo" "1" "dontgrantifappidowned" "1408080" "expirytime" "1592345200" "freeweekend" "1" "starttime" "1592325000" } "appids" { "0" "1827800" } "depotids" { "0" "1827801" } "appitems" { } } ================================================ FILE: FreePackages.Tests/TestData/package_with_free_weekend.txt ================================================ "81948" { "packageid" "81948" "billingtype" "12" "licensetype" "1" "status" "0" "extended" { "dontgrantifappidowned" "218620" "expirytime" "1445706000" "freeweekend" "1" "starttime" "1444928400" } "appids" { "0" "218620" } "depotids" { "0" "218621" "1" "218622" "2" "218623" "3" "218624" "4" "218625" "5" "218626" "6" "218627" "7" "218628" "8" "218632" } "appitems" { } } ================================================ FILE: FreePackages.Tests/TestData/package_with_purchase_restricted_countries.txt ================================================ "1890" { "packageid" "1890" "billingtype" "1" "licensetype" "1" "status" "0" "extended" { "allowpurchasefromrestrictedcountries" "1" "purchaserestrictedcountries" "US CA MX PR" } "appids" { "0" "33520" "1" "33530" } "depotids" { "0" "33521" "1" "33522" "2" "33523" "3" "33524" "4" "33531" "5" "33532" "6" "33533" } "appitems" { } } ================================================ FILE: FreePackages.Tests/TestData/package_with_restricted_countries.txt ================================================ "178" { "packageid" "178" "billingtype" "1" "licensetype" "1" "status" "0" "extended" { "allowpurchasefromrestrictedcountries" "1" "lowviolenceinrestrictedcountries" "1" "onlyallowrestrictedcountries" "1" "purchaserestrictedcountries" "DE" "restrictedcountries" "DE" } "appids" { "0" "2620" } "depotids" { "0" "2621" "1" "2656" } "appitems" { } } ================================================ FILE: FreePackages.Tests/TestData/package_with_single_app.txt ================================================ "907539" { "packageid" "907539" "billingtype" "10" "licensetype" "1" "status" "0" "extended" { "allowcrossregiontradingandgifting" "false" } "appids" { "0" "1086940" } "depotids" { "0" "1086941" "1" "1086942" "2" "1086943" "3" "1086944" "4" "1086945" "5" "1086946" "6" "1086947" "7" "1086948" "8" "1086949" "9" "1419650" "10" "1419651" "11" "1419652" "12" "1419653" "13" "1419657" "14" "1419658" "15" "1419659" "16" "1419660" "17" "1419661" "18" "1419662" "19" "1419663" "20" "1419664" "21" "1419665" "22" "1419666" "23" "1419667" "24" "2330350" "25" "2330351" "26" "2330352" "27" "2330353" "28" "2330354" "29" "2330355" "30" "2330356" } "appitems" { } } ================================================ FILE: FreePackages.Tests/TestData/package_with_single_app_app_1.txt ================================================ "appinfo" { "appid" "1086940" "common" { "name" "Baldur's Gate 3" "type" "Game" "releasestate" "released" "clienticon" "ea19a7ce2af83c0240e775d79d3b690751a062c1" "clienttga" "a4cd79e3b930b890d17473ea7f0e40e2144fcfca" "icon" "d866cae7ea1e471fdbc206287111f1b642373bd9" "oslist" "windows,macos" "osarch" "64" "osextended" "macos64,macosapplesilicon" "eulas" { "0" { "id" "1086940_eula_0" "name" "Baldur's Gate 3 EULA" "url" "https://store.steampowered.com//eula/1086940_eula_0" "version" "3" } } "logo" "a8c254f3aaa272a8cd3222b76fc6cdb2358b4587" "logo_small" "a8c254f3aaa272a8cd3222b76fc6cdb2358b4587_thumb" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "polish" "1" "turkish" "1" "brazilian" "1" "ukrainian" "1" "latam" "1" } "content_descriptors" { "0" "1" "1" "2" "2" "5" } "has_adult_content" "1" "has_adult_content_sex" "1" "has_adult_content_violence" "1" "steam_deck_compatibility" { "category" "3" "test_timestamp" "1695427200" "tested_build_id" "12134408" "tests" { "0" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultControllerConfigFullyFunctional" } "1" { "display" "4" "token" "#SteamDeckVerified_TestResult_ControllerGlyphsMatchDeckDevice" } "2" { "display" "4" "token" "#SteamDeckVerified_TestResult_InterfaceTextIsLegible" } "3" { "display" "4" "token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant" } } "configuration" { "supported_input" "gamepad" "requires_manual_keyboard_invoke" "0" "requires_non_controller_launcher_nav" "0" "primary_player_is_controller_slot_0" "0" "non_deck_display_glyphs" "0" "small_text" "0" "requires_internet_for_setup" "0" "requires_internet_for_singleplayer" "0" "recommended_runtime" "proton-8.0-4" "requires_h264" "0" "gamescope_frame_limiter_not_supported" "0" } } "metacritic_name" "Baldur's Gate 3" "controller_support" "full" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "CenterCenter" "width_pct" "42.59539141078173" "height_pct" "72.26394372050225" } } "store_asset_mtime" "1696948779" "associations" { "0" { "type" "developer" "name" "Larian Studios" } "1" { "type" "publisher" "name" "Larian Studios" } "2" { "type" "franchise" "name" "Baldur's Gate" } } "primary_genre" "3" "genres" { "0" "25" "1" "3" "2" "2" } "category" { "category_2" "1" "category_1" "1" "category_38" "1" "category_23" "1" "category_48" "1" "category_9" "1" "category_45" "1" "category_46" "1" "category_22" "1" "category_28" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "french" { "supported" "true" "subtitles" "true" } "german" { "supported" "true" "subtitles" "true" } "spanish" { "supported" "true" "subtitles" "true" } "polish" { "supported" "true" "subtitles" "true" } "russian" { "supported" "true" "subtitles" "true" } "schinese" { "supported" "true" "subtitles" "true" } "turkish" { "supported" "true" "subtitles" "true" } "brazilian" { "supported" "true" "subtitles" "true" } "italian" { "supported" "true" "subtitles" "true" } "latam" { "supported" "true" "subtitles" "true" } "tchinese" { "supported" "true" "subtitles" "true" } "ukrainian" { "supported" "true" "subtitles" "true" } } "steam_release_date" "1691074800" "metacritic_score" "96" "metacritic_fullurl" "https://www.metacritic.com/game/pc/baldurs-gate-3?ftag=MCD-06-10aaa1f" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "1086940" "store_tags" { "0" "122" "1" "6426" "2" "1742" "3" "4747" "4" "4325" "5" "21" "6" "4474" "7" "14153" "8" "3843" "9" "1684" "10" "3859" "11" "4947" "12" "9" "13" "4508" "14" "4182" "15" "4155" "16" "4604" "17" "3993" "18" "7481" "19" "1687" } "review_score" "9" "review_percentage" "96" } "extended" { "developer" "Larian Studios" "publisher" "Larian Studios" "homepage" "https://baldursgate3.game" "listofdlc" "2378500,2378510" "dlcavailableonstore" "1" } "config" { "installdir" "Baldurs Gate 3" "launch" { "0" { "executable" "Launcher\\LariLauncher.exe" "workingdir" "bin" "type" "default" "config" { "oslist" "windows" } } "1" { "executable" "Baldur's Gate 3.app" "type" "default" "config" { "oslist" "macos" } } } "steamcontrollertemplateindex" "2" "steamdecktouchscreen" "1" } "depots" { "baselanguages" "" "228989" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "1086941" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "3694534054212424521" "size" "159723958327" "download" "113162192384" } } "encryptedmanifests" { "agerating" { "gid" "E4B2C2D1DADE1F8D2F89F9AE8A3D2770" "size" "EFEDF90B8CBD2FD9D75E8CEDD92570FD" "download" "41588BDEF002D25D840CAD43AABD7765" } "baseline" { "gid" "25362C10C2DB19CEABB843BF76A13AB9" "size" "077C2AAED380E8601FE470CDB65B8F1A" "download" "6F1A860F3881A13D036058192EAF7C75" } "ch_main" { "gid" "207B8B4E07F1B10B4536EFAFE93F0AA0" "size" "6E6A756196030E795C97C79A5A1E9850" "download" "D5385A84ED249B2B965F066EF325CD9D" } "ch_rc" { "gid" "A5EA28049859FF9055F7469753DA6CD4" "size" "C376558611FBA7AF3782AB43F38E8CFA" "download" "7B1E0FFB18B50D1A4C7009AD7C2586E2" } "compat" { "gid" "C3554338064450DBA92A9769E2FE6692" "size" "75C2E493230A2BEC51C6ED641ECC500F" "download" "65F1DB2567CF81455E14F5D02785A78F" } "dlss" { "gid" "7D1D71C29D6E57C6A04A9C1C21D59C6A" "size" "9C4169DCF6B789105E2ED4011A69B8A1" "download" "C28FE105DAA9FA0D4ED11C36B1114A5C" } "mac_test1" { "gid" "D9D5FAF134942F858F4E03B723F22C6A" "size" "FF13736A8125B5FDA1FD79421FE0C0BA" "download" "BBF79B30B8141EF6D8746C14649CEAEC" } "mac_test2" { "gid" "2D4211D7E8DC6F5B1D6B712144A48E31" "size" "226AFD87D78F4145AB331F0D15EE555F" "download" "87D37F1A7B9C41AA72A6E8C009E79F26" } "mac_test3" { "gid" "E510BC43C1C0F2FB925DDCE6344AA8A1" "size" "5E89FD4800485DD03094D1E20D7B9C79" "download" "51E30980E631528AD3076CA2A85FCE6C" } "playtesting" { "gid" "F78EC31AB901B73FBE8B582812D2FA74" "size" "2A959854EA60977423F41E7D8E7D42EB" "download" "0BC584C4894713A2C496B6FCA7990B9B" } "pt_bcn" { "gid" "5E902B50444B42BA2DD36F73D23F24E0" "size" "6B31413AF2788904032265521B8316B6" "download" "A017FB37171C0BD7D5E2DBCDDF244CA4" } "pt_dub" { "gid" "FAA7C88E58562D27FA029EF13A46699D" "size" "A11993C7D94AA9C55A34A0FB089E2069" "download" "9AA7BFB6FC2A74EDB7F77092CD384A65" } "pt_gf" { "gid" "F8B46813F35C7F9C2C018DCA576115D9" "size" "27D251E7AA0D58026C1FA1B37C9C88F9" "download" "04EC1EC8C9B6D30A6EA19C680E21BB60" } "pt_gnt" { "gid" "4DFB5A5464364194F02ACFDA8204774B" "size" "8223737B3DEDE6C70114D6782BC85041" "download" "D21D73D7DB50BA650971510A7C6DB704" } "pt_kl" { "gid" "B6812DA509326ABF189B2E5A9D026DFF" "size" "78A992517226028AD8AA3169EAC388B3" "download" "872AA500F19581C8D85771F775E73DF1" } "pt_qbc" { "gid" "E194B2FD72FC9588AED3B5594B10171D" "size" "521827312F2C809E3F85D2A15D2448C7" "download" "95747A0F693B3085EC79F8AB47F5FDD8" } "qaprio" { "gid" "FAA4EDC980B1E33B5399393A8996626F" "size" "29FB1A8223462A11A37F60FE6F6BBEC6" "download" "9B3DD1C82981F88AD33C769F789A7FCB" } "release" { "gid" "83A08461B847F01B4B3730C7D463EA44" "size" "F3B55479441F86CED596FC4D9EB694B7" "download" "372200E1B883B8B10C007DF060C5844C" } "release_hf1" { "gid" "7AF0456A13BDD78BF2C1F0B2D2A13008" "size" "A3BE50DC4D27E775E89DF6748648670B" "download" "854F8EC330D77A78B09066FF63CE810E" } "release_hf2" { "gid" "89B4AA1AC5847092B166EF7C6EF38F8A" "size" "7A14D8335CD66DDE0F4A841AA6D7FCC3" "download" "6E82259324E9FCABBDBC05AA437585D4" } "release_hf2.1" { "gid" "4A66D1FAC14F5F89CC796F51710EF472" "size" "0934C5CD5EF31C4453A02667A5420979" "download" "5760D101A8F6042D01844BE28C273F00" } "release_hf3" { "gid" "BEFB4361B427775FAC6D4E31E814C03B" "size" "8B87AE4250C375527FC0897E77F16D1C" "download" "57E94AF304EFE14BC5944F1D8242F5E2" } "release_hf4" { "gid" "36404F0FF08E5725947BBA5D53AC93B0" "size" "2C2678DE75E2EF82FA4F63CF092DEB61" "download" "20AA6ED852E3B802647BDBD7B4520BCB" } "release_patch1" { "gid" "F532467AB08551B7CD01E364B6AAC5D1" "size" "808C7BD34390CABE047876CD12DBD7D7" "download" "135E06B30908FADDB79F1E010FC946B2" } "release_patch2" { "gid" "EA46820D353CE8A3BC6A8414792A603E" "size" "C54B3B54C60B828D8E15E1E3F85B6E8E" "download" "A68424831AB73569D93A6606947B63A8" } "release_patch3" { "gid" "3BADF4B698A67799DEA697DCB9440596" "size" "548A7A750F65A9DBD9C4A6F335E09522" "download" "FDA08C19E2AD14618690B64639E711EF" } "release_patch3_hf1" { "gid" "EE7C4659A69DFFBAC5F6A386FE6F676F" "size" "1D3BC098C0BBF1293DE739399F5713B1" "download" "3FF48E10924EA91DEAF20EF26CE886AC" } "release_patch3_hf2" { "gid" "C37DF918C62FB3B6E5B1F66C2B1B5FBA" "size" "F59E6481AF093890EDF28D375459711A" "download" "30ED53CDC592206F1DF66BAE08A4C6C3" } "release_patch3_hf3" { "gid" "1FDFA8B1A708D316CF914A6CEB7F7EF8" "size" "DD155FC49673F81BE601E0FBA8C558C0" "download" "DE9E3E50975C9F24EB1E6346A1465481" } "release_patch4" { "gid" "4518D8A7D6B3653A6B5B7F8F252CBCA9" "size" "23A083F34889A44C61809D399167FF03" "download" "E03F2D4D3D5A64A4DDC35C64C22BC972" } "summer2020_loca" { "gid" "15BF3173E1D1F3E9FC3F75B11E147405" "size" "534202A736EB986C07A85A7F6D6C660F" "download" "7D8ECC28DD5D28ECEBEA64FCE9623E40" } "temp" { "gid" "5C4CA69288659D1880765A5D16BE7635" "size" "172580BDC0C4C64B97945868CDC5EAA6" "download" "2E9AD37695BD903A52E2B814BF7A5E08" } "testbranch" { "gid" "79B0171C230B28A94E18AC2187AF6346" "size" "E4A91AD56074C616BA203DB852316BF5" "download" "33DF39B240A10D8D7A99CA3587B6E2DC" } } } "1086942" { "config" { "language" "english" "oslist" "windows" } "manifests" { "public" { "gid" "17875152607970122" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "C56CA96F704AD75B1773612C4029DCEB" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "baseline" { "gid" "DF76437AEE6A8F25E04E3C20B3127AD1" "size" "5847AB920AE50B03586B3EBDD4FAFB80" "download" "E5C33F04760FA64194957A6D0DBFE8BB" } "ch_main" { "gid" "F8D87C4B259F22F644B80AC588E5B2C8" "size" "AD8062173DDDCC75D21F68D9CF86CEF2" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "F62D2BBD3F8636882B2B56A1CBBFC1B8" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "BCFA59EDAF1CFEE180522806C1945F50" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "6F8D7381D5573F034E4FC02A48A233A8" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "01CFFA9EC58CF20F02478DDF6A562895" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "F02E9C1BFE0176838B7C0E8BE3E1CBE1" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "51F2E49EC3D45B47045B3F5FBBE5536C" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "F74F0D8F66C216892124648C651E8822" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "88105F5E8361A35984A590E4D87ECE7B" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "B09A5A942ED32BA01918105DDBA4EF93" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "3A0A1D467427812B1B7AD4057EA7F9DE" "size" "56DB2935C18F1B9BC7562552F8C7D468" "download" "5F83776DB7021651B99D1B14015A0648" } "pt_gnt" { "gid" "E265A9DA5D0416F19600D9EDA85D854E" "size" "EE9AAAF888D21E81F37F54B45F0F91EF" "download" "39CA42EF9583DABE0E257DC599693B19" } "pt_kl" { "gid" "3CBD7C1116EC0AEE859833C2F5D7212E" "size" "6E03523319BD32B57873A848BD7B5624" "download" "C50A325D39C9341C054DCFFBAF7C5CA9" } "pt_qbc" { "gid" "DB9F29B26F6D97EC19088A32EAECDEE6" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "F0895C2CE504EDF81E5CF754DD161AAC" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "A57EA9264A78383875A0BF0F87CC78B8" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "EC31DED23234A28CD72ADA5E58F23798" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "3AA5D6A8CC6F91F4BB1A880A61C4DE8B" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "82BE827E2E96D5FB59825688EA7E5222" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "A59D53E14E4B28D02AF04FD34CD0BB3B" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "FD275726C1BD417BAB67105FB0526ACA" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "8035E9C1EDD5199C60DC703B94013CB3" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "FF8689E4F186AC97D8381EF8C1EF4D1F" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "2AB614C33FDA06E167A2BDDD595835A2" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "3F64DEF3F207251BBD8DBDAC1966AA7A" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "22119B16F73651254C3A6EAA7838A201" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "B80CF787B409935DC2237FDAF582810F" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "635F0D0F6098E00FFF1CE9D7936D7093" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "E417DBBE1CFDDCC00766744F13F8E031" "size" "A8EF6516D2F4BEC8736612518D62F55C" "download" "6F8A129A74E53EF43F9C66C3C93002C4" } "temp" { "gid" "D3D423B2B08D90B3540D16F721508E4C" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "CEE64AD264AA714AC06F0145533F1ABB" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1086943" { "config" { "language" "french" "oslist" "windows" } "manifests" { "public" { "gid" "6209140131624329019" "size" "14899178" "download" "12885440" } } "encryptedmanifests" { "agerating" { "gid" "656C8506ACFE5760A63A4AEF5D86FD77" "size" "B4EB596C2BBD74E02BAE9D87466F4E9F" "download" "BC341D237E586AB2C479032DB9C74D81" } "baseline" { "gid" "85E778C27BBBB7E30D4C26462968204A" "size" "C598670816950C3679929088155AE634" "download" "7C4E2C1CD4267FA5A4C1B5C6278FB901" } "ch_main" { "gid" "4D03E2B06C38A54E779CC01C487E684B" "size" "8D3BAE118396AA331B034B2976D52528" "download" "39CD2150DAA4B084BE5C63FE171CCF50" } "ch_rc" { "gid" "CCAAA2D05A96370CE50E4EF4141BCC93" "size" "0EF9A7C3A14644B13D5DF21AD1C63B1F" "download" "802F58D89C895CA205F3ECA76AA95534" } "compat" { "gid" "E34C192E0D8DA5F88F180F961A14690B" "size" "85DF3E7CD0882CFFC9FAACC590C57695" "download" "9B54D8A0CB2E92891AA74D3B3101C227" } "dlss" { "gid" "686585CF6390E6A2DC41EBAC0301CC34" "size" "E7F33EDAE2D96083053F5F1E89CD3B7B" "download" "FBE27DB75CB7F17C873D8427A072C737" } "mac_test1" { "gid" "B31D2EAD6C1F44298C3ABAE76741DA17" "size" "F6C32ECA1A58C0F77DA19E6A807AE2E4" "download" "15411F10085BB2AC408F8D78ED30C1FA" } "mac_test2" { "gid" "62A503A0FFF5595B096FA2FD8B1034C4" "size" "87E75C2458F098837C41313E6BD773B3" "download" "4A18260811DE2F9C5F2C5C351B8D0B9B" } "mac_test3" { "gid" "31AA384AF17F39B89A05979B72A39950" "size" "864C47B6A662B9D065A8038677FCC752" "download" "A6A4129FCF7414CACCCF7560B16B3FEE" } "playtesting" { "gid" "D242D0E72D4C24A9F8E15EB39BBBC8BA" "size" "06044D9EECA50ED0D9A2E9F4D2117BA7" "download" "C3C0D9A366849AE688E702B3F35F68A1" } "pt_bcn" { "gid" "2183D59CC41F4F586ADE078EC6BDA2F5" "size" "0D74CD957B93759EAAD6BE982FC3169B" "download" "7E23EB32D226A6A1C68EF4FB1B9B7E6D" } "pt_dub" { "gid" "89FCCE9F9EF6985754783F64CC5C93CD" "size" "81B02228C0295C9893FA8E0AF764D4DA" "download" "07A8C581666E6A0BAB915B0D8DD73567" } "pt_gf" { "gid" "7E19D555EC06C3CFAB0558D1BEBCA8CD" "size" "8459CFAFF43278E80223EEC1C3CC12B4" "download" "7644608610F682AF1354421472225452" } "pt_gnt" { "gid" "414CBE0FC1CBAF724ABAC42BB89701B1" "size" "13F9D55DD012F0AF107A78DDF21F33F3" "download" "2A136C556D27F08B281D25F3C59AD218" } "pt_kl" { "gid" "9990550F29788CE5E71490B037CA1351" "size" "1B0A30D5B4F3853BC0B4F608ABAAAFEF" "download" "0121C0E99C841EAFEA90AEBCC4C419B3" } "pt_qbc" { "gid" "9901645A984EE4FFCB7AFBCB0C6B2AF6" "size" "28F2D5F1C9643E766B879F9C379839EF" "download" "C9C7FB13FEDA1CACB7AAA0D254146C34" } "qaprio" { "gid" "541A99D6308E96E2212F7638153405F6" "size" "49281FD960F0D33362D97575BAC4975E" "download" "55162E15BB2A7BDB65ED9148B8E582B4" } "release" { "gid" "CCF8FE6EF7E7801AB586482BA8966F18" "size" "68B44460C913BA23DA05F4F8BFC2B4B7" "download" "EBE24C2110E46D10968B8CC21C44B0EB" } "release_hf1" { "gid" "706F2C1E9E3752E54009102026D5EC79" "size" "03F850FDE8BB839B670CF7BFCEE4B0A0" "download" "C206D074269406A2F0AFCDABF3ADAD35" } "release_hf2" { "gid" "9E2988CAFE7CF7FCC9AFC924AB588705" "size" "5476E280FAE56410A385F6E3321A1491" "download" "9BE3A502D45F365991DC8390B2E8765D" } "release_hf2.1" { "gid" "5BEEF3ED1BB9534ECBC1CF12A19B0405" "size" "C0A84FA21CB43126C375E49D991BD301" "download" "ED927C36B7C15D4FB6F26CE3C91DB742" } "release_hf3" { "gid" "5786E85FB3CA6CD5BB9D59E7F4E459AB" "size" "F79A936885B8B84B57BBE43C5BFC1987" "download" "003C122C3C6562C2F62B51D5E724E0CE" } "release_hf4" { "gid" "D1E66904B40E4578B1263997321406F4" "size" "91B033CDE7211BF79EEE4EB624D8435D" "download" "E3842B500F46BF901EF0C6E89E927287" } "release_patch1" { "gid" "F151B6F11A9EFFB1A8FCA268151E6CFA" "size" "5058C5C56721102D5787379DDD3674D4" "download" "4DAC07F976ED79579B8DD7DD17D49295" } "release_patch2" { "gid" "BA77EE887A6B27FE58F49070FFE5A275" "size" "692647159AB0C562C86045818E63EAB0" "download" "326FE1B140AFAFD5E5A65DB742776A18" } "release_patch3" { "gid" "9BF5D6EEE08CF519A578742DB9E821E8" "size" "F5E053C20E17B7884D9FE29A3E555908" "download" "09E5839F7401B4283EBDB3D6811928D6" } "release_patch3_hf1" { "gid" "1DBB4655F2E409131EA1CD854FC74112" "size" "6AF2074F066CC72DD5C87E23DC25ADD5" "download" "82D7B146B60246B6E58377ACD377A7EB" } "release_patch3_hf2" { "gid" "FAB96A1854E4743D2E0EABDDDF5BC9FF" "size" "985B6EE024FE8673B8E8530EC87B67CC" "download" "3C20B44DD9059D2D4B8026159E817CF7" } "release_patch3_hf3" { "gid" "B304D45C4281374D725198060C08564D" "size" "D2FA1AD5AAC9A88F048C4AE703380BFB" "download" "2ED6FD6B3D6653D35749945690DFFA45" } "release_patch4" { "gid" "266B3B15F52418CC55168F330C4456E9" "size" "65781814403FBDC70333D783E0E88644" "download" "56DD4263DE71E24DFF964AF8BD9F3F99" } "summer2020_loca" { "gid" "B5197F5DE86D5575990E6047B36E0497" "size" "957421ACA0CD94EBAA96EC3D3F6D9ED4" "download" "FBFCEFA5CD712D0FDC05508E323671C6" } "temp" { "gid" "26CE6A5EF3BA93320AAE7AE78F4CC81E" "size" "6EEE321E3B3B8830F189563A5D700D4F" "download" "B4DD01799AF67B4E853D1A8771DE6319" } "testbranch" { "gid" "B8B1BB8711BB5758865CAE4C0DC4020A" "size" "9820031A4F0789D82490CD38283E331C" "download" "5E96EF6E4920D44926BCEA38BF3D7391" } } } "1086944" { "config" { "language" "german" "oslist" "windows" } "manifests" { "public" { "gid" "7716771822333365534" "size" "13511846" "download" "11697216" } } "encryptedmanifests" { "agerating" { "gid" "126EBB9C3D4513AD0149B393CBECBFD7" "size" "1A73BC8590467ACBE3109C0E16363FDF" "download" "B71C64576A8AB1C097D0B17D11564CFB" } "baseline" { "gid" "561E996EF91C9D2E348F59915BFA61C8" "size" "70AB7AC3690AF17DB4C4AE7130797FA6" "download" "900B594927500CB0F1CAF8DB81701756" } "ch_main" { "gid" "1E21B794EBFB12114AC65D3E327E2966" "size" "753DCFEC8C551003524306F24423EF40" "download" "96956F6EAD020DDCBB5D6AF6CAD3AAA1" } "ch_rc" { "gid" "32CF7E91F9837FF41258737BA3A95E3E" "size" "B2826D402F47B19512E2039DBCE2335B" "download" "278F469BB5F60A3470AFFDD54F5D16DF" } "compat" { "gid" "27E29C67452E01A9496C50FC35AD1B97" "size" "C61401D5A0109BEEF51ABAF1ABC05D33" "download" "43F27363708BB987055194DC807BD46E" } "dlss" { "gid" "4E443712500BAB3D7E4D6AA0D61C7B14" "size" "A8A87421CBBC7DEA6B92F5582E72F822" "download" "82C48A63C6E1095FE097259B7BE26E4F" } "mac_test1" { "gid" "E8441D7502234E5E74C247526D13249F" "size" "9C96835382D066B522874C9D3BA7E02D" "download" "FD4C87D18D35E60A36D5E35133A48EAD" } "mac_test2" { "gid" "87247FCBC6EE2CBBA06F1D45D06E6CB2" "size" "C582DB01D9E339247315F7DBF6AC9B27" "download" "FC11864B7E957EB2ECFD27055DF8C157" } "mac_test3" { "gid" "5488C73F601F47B3C4A0DBEEE4BF98F9" "size" "7B6B3330B1B7B83465350B28B6FEACE1" "download" "92C011C645622F46BA9F052F2C9417DE" } "playtesting" { "gid" "31327ADCCD1995EF50EB003E8BBBC40A" "size" "D61A881B35F84FAF1DAFD9262AE370B1" "download" "736916155F90D90DBFABD229D1BB1550" } "pt_bcn" { "gid" "791D5B0899F45F72C9BD486DC952247C" "size" "D0B2A177B1C56708814F4DC11CBB0AF3" "download" "A62303AFA43064A68B561C816C7D7819" } "pt_dub" { "gid" "14ADC08DE3E4237E2FBD281AFB14112C" "size" "E1A08EE7982A4751513C8C59DF265896" "download" "87FAF22D10D4D679154B1770644B0742" } "pt_gf" { "gid" "32FD0FCC7F967B6F8C0AFF9FDC958BAC" "size" "8AB482C646988B86BF5B21E679EB86FA" "download" "15ADC32E8AD3F0DFF5A997647B46B3CD" } "pt_gnt" { "gid" "9C70F5A3D3C1EF482F22222FE725D60E" "size" "A89146259699383F86BCDC2617AD25AD" "download" "923E91B13D982E878CE9B33BEC18E742" } "pt_kl" { "gid" "F71E35C6F739BDD9942BA5ABE308F963" "size" "BC465BA5A7C280A2E740E0DDCD0A13C1" "download" "F773C5AC2D9FF5B55493DCA19FD94079" } "pt_qbc" { "gid" "A3B65437D3959C89C15F356B5650E8D0" "size" "6E7E307691690B192379B4CB4C360A86" "download" "C0800E86D6B9CBEB3ECC1B79110D77CE" } "qaprio" { "gid" "C3C0476FBA0D40611D7D738029F8D5E7" "size" "8ECA343DBE3D710EA16C8DFC1F7AC39F" "download" "D365880EC66F0BE523B7F6AAB52DC593" } "release" { "gid" "CFA84DD236CD61A8A69CCB1C0E9B244D" "size" "6730ADE5B2DFFE46389630AA1CE8DB42" "download" "C02ACABEFE2E8DFFB5692DA2346BF54B" } "release_hf1" { "gid" "51B04F019DA3F17F1E8C5480995460E4" "size" "CFFA2347AC6256A727B0EBD42AC0E524" "download" "82DC0C90CBC2370B8923EF752D28BCB4" } "release_hf2" { "gid" "A82DBC8A50C66224851E0D9E5FB9B4EB" "size" "A872F4976C10CB9B6087E83EC3B7F1E8" "download" "B915376EA5E47E924C549EC781BBD5B4" } "release_hf2.1" { "gid" "DA70E36059B80704D9D0112C2B09644F" "size" "8E5F4D99FA53EF36E308A4B0F2DB3423" "download" "1384D04FC413E29BC4BF0CE96BDC4495" } "release_hf3" { "gid" "12BE0280ED6E81B56D407D8F829D69C3" "size" "6FDA9F1DBB7855BFC1EA9AEF0F21DFF4" "download" "5C268897815EEC5D5995417C584FBD83" } "release_hf4" { "gid" "451D1B3298C52D2A977EA15A27DE181D" "size" "6691CC84297FF40CB414F132B554669A" "download" "1BCB7718CA5965A9BEE9C1BA5DF6A722" } "release_patch1" { "gid" "5AA637B436459345854BB6D7C3174463" "size" "10B4FE1FDD0BCC4FDF597ECA9B9D5494" "download" "B5041F61330298A525305AAB50A1CB82" } "release_patch2" { "gid" "224BFE01A1590C979E41B27101B6734F" "size" "30923E9A79902098AFF7768CD5C01627" "download" "E7B8C314B3A823F9C1D4F885A63CE3C2" } "release_patch3" { "gid" "F3F615C5A524257D97831D185163B589" "size" "6D41C31EBA9B9667261CE6C4A10ED865" "download" "03C8A34DB0428AA35D1326796575F044" } "release_patch3_hf1" { "gid" "FF22EC9FA09A2CA62018AB429CB1AE9D" "size" "3239237BE4EA61483D4FC578E0C01C24" "download" "51512C861C144FA9C3082758A0732A71" } "release_patch3_hf2" { "gid" "E9F8E6E206D6955590CBFFDBDA20A137" "size" "2A6087D570B80402427CD57D550FFD3D" "download" "56D7C9E0C4F484986E16636D40A72784" } "release_patch3_hf3" { "gid" "C4EBD3A3CC809F5641593427C0759543" "size" "49A4C4ECE23CF448B06D25D26CAC4533" "download" "2A008510DC618FE3269BDE466F1C78C2" } "release_patch4" { "gid" "166AEBB1A42130A249BEFE58C78A4C02" "size" "490009A0E1D44AE7437BD421E8AFB28E" "download" "9138B6AB3675F7B130D73D4E3E9D7B2E" } "summer2020_loca" { "gid" "E58987133C94C4AF2DC372C27BA4FE7F" "size" "EC3664BAC6C9FBA2AD455E93FC925A62" "download" "AF2CC1D5F13D56FF7DE9D2028DCEA4F0" } "temp" { "gid" "145C963A552CA1AFF48DD856BDBA9263" "size" "36394803A17EC7ADAA693A0385CDF25C" "download" "AF8F9649E738D65FB3E9071823DCDA0C" } "testbranch" { "gid" "77647A887F29F06C128C8F3A96798D4C" "size" "B1ABF7127752018D01C6754278E08B94" "download" "93C6F751F66F1D01D2D11CBD073C6DF3" } } } "1086945" { "config" { "language" "polish" "oslist" "windows" } "manifests" { "public" { "gid" "3331576179541847055" "size" "14673065" "download" "12712832" } } "encryptedmanifests" { "agerating" { "gid" "F4549D79565A8F329CCB7DE530B16AE3" "size" "C2B0923AF8E569E7EF32DC584D203921" "download" "274FED2BD1EE2474EE3A94BDA9D302EC" } "baseline" { "gid" "7BC531FF90AC7E04705E54897A77B9BB" "size" "18ABCCB9CEBD5D511860208EEBC34AAC" "download" "62E8316CD522A02ECC8F796606506437" } "ch_main" { "gid" "5FB524A8FCAF2DBBDFE4E17C86FF40F3" "size" "776B8ABAEFD12BC1500619E199709465" "download" "DA42ADF4F2A7A4C78B37CE430DF15F34" } "ch_rc" { "gid" "259FC255795907647F78D0B4D80B288A" "size" "35DB64E1A05731C391DDD07BF3078933" "download" "5D03392D52109905646E759416EC0A54" } "compat" { "gid" "E433109CC24C677A271E02CDCCDBC833" "size" "E79F355CE9BDC4BFBD8373CCF866AEDC" "download" "D6E9F9D2813D832E70A42279C7AC1F13" } "dlss" { "gid" "25D99CEEE7582DCBC771A15F2EA706D2" "size" "6A39E5DF29E7DA09536CCB7469825695" "download" "6D2CE2C47BC74E5026358EEFF9AC5AC1" } "mac_test1" { "gid" "7E8B2D6235D043153345967FBB67FD42" "size" "A1411948E7188D8E90CD53D256C94B59" "download" "7CB7DD4F7692F91DF95AD5BA5BEC70C2" } "mac_test2" { "gid" "8051FFAB6DB4628ED0863BE46565079D" "size" "B155EB44DAE8FFD1E796987815E7B349" "download" "B93C5AC10E45C14969B59ABDAC5C680A" } "mac_test3" { "gid" "53A51768C5DE42231BA4DEC7FE54603A" "size" "0F312AD91D7D482B27D7CFDEA1D06B3A" "download" "D8712212B208EA0308B9301CBE463FCD" } "playtesting" { "gid" "21041081D537850D1D3DADF9734D8F13" "size" "04385DE7C49E173B0DBC5708CFAC952B" "download" "F0059CADA40EBFD14CEFF6D062A4D3B8" } "pt_bcn" { "gid" "2C88C9BB42C2E89331D11905B2560DA1" "size" "2AC5F9551EE5257AC182C586C8A202CC" "download" "84198ADFA0109D8DEA0FBF7902B5D189" } "pt_dub" { "gid" "6FE407C113B458AE9D847F47BDB10E3F" "size" "4E3871D554D87C687D10E64237EBB08C" "download" "B9A09ACFD24587D0CCB69A600228287B" } "pt_gf" { "gid" "F0F58625659DE4906CF697D706EC7699" "size" "E34400C1845249FED80BB6B7E7FEC924" "download" "79C40B15D0049DC8BAE18671426494FA" } "pt_gnt" { "gid" "4E73AF71F1A186B7AA351F6539636F1A" "size" "D822D484B9ACF179F35650D938C5A60A" "download" "83048F5E2FF60DE5636F287E70A23748" } "pt_kl" { "gid" "E26D36891E4D718B90C7DEF00A9929B5" "size" "91282080FD2785DDB970663C1CE90173" "download" "8B3BF41D50544E96CAE9712429CD0513" } "pt_qbc" { "gid" "56B9CB64F2A99F5FAB04A13C338109A1" "size" "E31989F009A08C8A1E4D286FA94F3698" "download" "5291C069390E7A4B21AF76309DF90E27" } "qaprio" { "gid" "123BDA8B2C46D811E64DCD2F4B8533F8" "size" "A78B97C1FD86B5246165406A231E421B" "download" "8C43567995AD3DBBC5F2BDB3667749A3" } "release" { "gid" "99DAFEECA4C06C0AFB732E3705A0E0AC" "size" "00FA9F7BFD84ECDCEB22C450EBDA4DFF" "download" "F99373194F612641713975F3453A69B8" } "release_hf1" { "gid" "42C2BD790F2597BEA6296BB5A2E1E2CB" "size" "538DB8C16D3B46480B337E503D0E15D8" "download" "5EDC2863E1AEBA716BE28FA95D9DD75D" } "release_hf2" { "gid" "E34830315EE963EC08870020739041FE" "size" "F7D74C514E40610BF572F85409BA9BB0" "download" "A5AC45FA6F29BED7F8CEFC11AB801470" } "release_hf2.1" { "gid" "2D4E2DA8F14FA746A43CB837B77C9107" "size" "2E2BBDB6906C03FA5F9747FE058454EB" "download" "758662CD7FF9280E48EB5CAA632397DD" } "release_hf3" { "gid" "437FBC86E7C921027DAAB1EF839BF540" "size" "2CC67F7D9A50DFE29C1CD036145B385A" "download" "315BA605A71BD19857317A7B3154371F" } "release_hf4" { "gid" "B295413A2AD2E256428EAE4F675AE1EF" "size" "0A55FC4A0AF14FC9BC8CC699C8EB50CA" "download" "DFB7F381D7C35F96617FA06CD5EEC32B" } "release_patch1" { "gid" "791F8FF5E8C9AAA4BDFE5E8372F6C64E" "size" "E906D5E8495C28CD321A789446F38BC7" "download" "17F28D23CCD1257088F606B262DA0B5E" } "release_patch2" { "gid" "AE1C01530DA3CCF68019FDC62D20DD76" "size" "965F34F2ED638EB4A3209ED44D81881A" "download" "37C2E6D8E5C82ED45A2D50F6718B2A7D" } "release_patch3" { "gid" "4CDEF9FEF959BEE4E137A8F07CE2FBB1" "size" "EA07AC79AC38764789663330AC01BCAF" "download" "516C9DBA305F14A233272A6F645578EB" } "release_patch3_hf1" { "gid" "19B7A4CF8D57DB32F260A6C2AFB785A9" "size" "F65DEA5289FA9857B7763C461E8B402B" "download" "5F3B8E749439045DACC918BF6C64AE89" } "release_patch3_hf2" { "gid" "AF3948C0352DC193AD371B53C60DA788" "size" "250EF83632B3B97DB74C005B702F017C" "download" "5AE0EE090C29D84B04B1207BEA6ABD44" } "release_patch3_hf3" { "gid" "DB8242E02E766706E55096310D3D5D4A" "size" "25F99C73818EDAF65A7183C33097E5D8" "download" "9CF7C4F92F86DBCB2D1C2E62D012443D" } "release_patch4" { "gid" "C3F9C3AB9588B8019E1F067D5B4A2E86" "size" "6D2A0C85BC0B6CB5FD99EE97C90F2BF3" "download" "73769ED0759C561D7F952560816E764B" } "summer2020_loca" { "gid" "83FF99B5553F73C875FED583BC300381" "size" "993AF352D9FCF71E16131E44EB097FAE" "download" "E52FCB94E8BBAF24ADAE05A1E0AC08FA" } "temp" { "gid" "333C610E649FAD34E49EA3FFA2FB7BD7" "size" "6773AE305BFF0DBAB53740E1AF10891B" "download" "07C52BDE5EFA315FCD1BA5A9B7424675" } "testbranch" { "gid" "55CD828E0F8DE861C0D144C925B80947" "size" "C6CB9ADC2295CAFE68B745107AF28ACD" "download" "3AE83872AD4A976F57BC9A3A9F188ABE" } } } "1086946" { "config" { "language" "russian" "oslist" "windows" } "manifests" { "public" { "gid" "7638415403314671008" "size" "15825391" "download" "13805024" } } "encryptedmanifests" { "agerating" { "gid" "CE969B88F82CCACB81988C1382D037D0" "size" "E2D090D14E9D8AEC1A9B92C1D24E595D" "download" "906CBD63F6D84FFD28FBB0FF03D7C364" } "baseline" { "gid" "B1D7CBDBD331AF080B755A85814EC2ED" "size" "2B7A1BF83E2CEF2A8096E33EFD48D90B" "download" "CA30B103B44E0B0D292DE856D0E91B50" } "ch_main" { "gid" "F6B8EE1E9E2D4A7BD866D816B8724595" "size" "B3F5E2331E1A32DF996C00B15198D916" "download" "06776BE707DB66B1A4281868C48A37A7" } "ch_rc" { "gid" "F4C131EE665497B4689002234D85D9A3" "size" "8591C8F323239F09CBB016EA71F206BC" "download" "40B5EC694CA928EAC2E769FD362D6AD1" } "compat" { "gid" "F0859886728A4BEF37E2B7273CADA133" "size" "15B1984913BF028B8250FEDCB8AB385F" "download" "F1425625A677FCC7537915008831BD51" } "dlss" { "gid" "E2F7CC7A02249C59190CE0B2D0FF02B9" "size" "2F268AEB60329EC9D8D9593EBFE8EDDF" "download" "1F7FEF6C1E828A5632257F784ABB6BF4" } "mac_test1" { "gid" "2FF0D3E7BEA21E3EC2980B6646913BE6" "size" "7C8878F85F6A3D10D72CFF0BB9209B67" "download" "7C18FAF13180CAE7CC5BE77DE576FD82" } "mac_test2" { "gid" "2E38CCEF2E36A366FBFF2BB043D0801D" "size" "EB839198B30DB702F0BB8F87D724A739" "download" "5B43952A223B91DF1B509864C98D32BB" } "mac_test3" { "gid" "5ED1B7C0C7E5D055BD776B4DDE72FDB8" "size" "329BAA241112B920C827B3CD7C1052FF" "download" "18D9EA1A4D9539E3E1F79C6159051822" } "playtesting" { "gid" "16DB2DC79C4BAB204A022E752517D6C3" "size" "926CEF713DB8EE14E19D8D46DE1A9113" "download" "DC0F24B4125773217323C0BF89EB029E" } "pt_bcn" { "gid" "8293A137BEB76FFA79A4AC692DA51194" "size" "9DF25EFDB77B5A497137A93A2A6C1A46" "download" "AA8BA8502FD56480B0ED9E81F280AB5C" } "pt_dub" { "gid" "E712F519640A2D8E69A0B8A121D0D6A8" "size" "71489A658AC81F61CE76BC91FCBBCDE7" "download" "F3BE200C61381F9A9EF9517824B5C279" } "pt_gf" { "gid" "B06152D8503180FEB9034C55996A87E9" "size" "F0B1619FBCE274D2C316F768678A30E2" "download" "E762A4148F5700C44C305CE0CE274864" } "pt_gnt" { "gid" "FCA5FBBC2268205722406CBBA0A09754" "size" "55034AB1DD26D138F27D13BEBE70DE7B" "download" "7C6A3AD168ED36D19C34379C11F6936C" } "pt_kl" { "gid" "C54BAE6E71E9909B8F65E5DC1CAFB187" "size" "044BE4D1BC0B75B9EC10DF22B4962E79" "download" "8A8C3B7235319D688340DDFBC566D82D" } "pt_qbc" { "gid" "0A266DA311176731D91F781C1CFDFC64" "size" "1ED1CDE394DD6351DC36A14D95C60057" "download" "D77A1F9D991B0ECACFBA14ED463B680E" } "qaprio" { "gid" "92BA20DC9255131621B1BDE0923D29D2" "size" "3D26550022FF7F1815D2AB2C4D67621C" "download" "FE6299ED7ABF71C2615F8A67411ECA4A" } "release" { "gid" "F33AD7F4BFB135BB037F857A60FB7BFD" "size" "D385A1B40A0AF2F31FE3FD98EEDC80C4" "download" "6EF679289AB4881EF0809E933E2F4BC4" } "release_hf1" { "gid" "11804B9A4811885F74BB1789933D4DB0" "size" "6CEA4258C60B7CC75AC3C2831A07E3DE" "download" "A23680FDDB542750E07DF3FF047B6715" } "release_hf2" { "gid" "E82F9CC15680BDF196ACAC3840CBD193" "size" "7240BBDD0E67598827BD8C637E953739" "download" "6D4CB4F0EF05D5F87BB2318EB28BEC67" } "release_hf2.1" { "gid" "36E8E802555A25366061601375124C38" "size" "B5269A7DBEFE0477084F2F9389CF62C1" "download" "DC842DCE2CBF1C32AA12F4F752AB8A10" } "release_hf3" { "gid" "11B27A059A835030DDB8644A395E28D0" "size" "6D75753B35551D0BA752A20F3F3AC53F" "download" "C1B062D53F144D4D88EA88EBA8807C94" } "release_hf4" { "gid" "7AD5B0AFD1CEE8E04950A6F8B60227E0" "size" "0BF560A05E39BFE7B33185C839154BE5" "download" "2152F8A21865F7A65F840B87C8ADB618" } "release_patch1" { "gid" "BC181C6CFB28F3AAD85376ED71910F30" "size" "F68249D670B317F42BC5497637B1A9F3" "download" "6017858A8A59E29629964A6B2EBA8287" } "release_patch2" { "gid" "8F81349A3152F7C309FEAAC52ED55CEB" "size" "95183A48EEE8F12C415BAFC7A4293FFC" "download" "8CF460C3F2ACFBA2DF7AE284DFECAC6B" } "release_patch3" { "gid" "FCF0879D73FC06D06C83CBA4BBAD4745" "size" "78A5429EDBB0712497580110321E7D95" "download" "88B42915A2CFF614E62292C2783EB501" } "release_patch3_hf1" { "gid" "57F3EB8D8049A14032475FAE30FB785A" "size" "4B319920D2A04F4873599197260A41A3" "download" "C30A1A3AF2501799F4960E09C1B5AEAF" } "release_patch3_hf2" { "gid" "35A3B9BA772093E1712D35F9AC015D3A" "size" "A53382DCF6B4F800B27570B64AFE4538" "download" "ABD3EBC9514C36B347C88965215D0CB3" } "release_patch3_hf3" { "gid" "51F94E76C17E154132EC5AFF5654D467" "size" "02751E7780447D91BA2249C3241A7BFE" "download" "EB8FCD95433EF7F739A4BB6EB512B68B" } "release_patch4" { "gid" "FD775F5F2B718CBED7FC68884957DF1F" "size" "6C2EC6266D92FC51EBE6D139639F377D" "download" "9FC09323790C4BAC391983A5592F1D38" } "summer2020_loca" { "gid" "97751EB09506DE33CD2C5B51F44B744C" "size" "434EA9C8DB6610A12E32FD8612FD178A" "download" "39FF5D914510105EB2D1B9256EF8C584" } "temp" { "gid" "6583CE9FC73DF1D5D48C9F3B22A0E374" "size" "E5D22DF1B37F4148C1FE86CC8C3B43BE" "download" "BEEC12226821EB441070038EAA30B668" } "testbranch" { "gid" "3987D7E48135A4791ED126AF09DB8AEA" "size" "48CE6DE98644B2985648F43B3F54C383" "download" "AAF090B71ADB598DC6D0C3853D0E8AF2" } } } "1086947" { "config" { "language" "schinese" "oslist" "windows" } "manifests" { "public" { "gid" "626830338642682297" "size" "23491884" "download" "20609744" } } "encryptedmanifests" { "agerating" { "gid" "E44C47F919B111392DF45812938B141B" "size" "0990E879BC4764448E7A9B123A7D98B9" "download" "D16817FCF0B90FFF018D7B9D5DE27F89" } "baseline" { "gid" "607C83995B73D353BC7861DFDC54E6E9" "size" "0C041973A317040EA29DDB50CF15BCA3" "download" "2BFD421D20A5F0C229A9BE8334103706" } "ch_main" { "gid" "81662110665E5D7830EEC042456796DC" "size" "785F585600A1547E392C10D5594DB4A0" "download" "1A053D14F75320CBACA5E6591A1727CF" } "ch_rc" { "gid" "1363B1FDECA4A1BB829259BA58E562A3" "size" "5BD34B6EC6D591F7FF390AE1935005DE" "download" "F0CA11B0C092F325D533FC22F3B39287" } "compat" { "gid" "9F524C99B40B2E4E086F731E1F963FAE" "size" "61FE9FE706212FFBA6524AAA1D9B458E" "download" "26DF6CB06D0AFA38D252196D57A1723A" } "dlss" { "gid" "AF12E8E3E2830F617DDA2B9F23C8B8F7" "size" "9B13A7CC6F84CBB76AC14C780D838F57" "download" "B13BECC0FCB0F688EF21F3549C857A32" } "mac_test1" { "gid" "8DEB96D02360741503AE710241D11DD2" "size" "24415FC92084DFACCF63F29C1E5C9504" "download" "BFECB04C236B9D95B42C3AFE3FD8B396" } "mac_test2" { "gid" "63C46687C1584522DCA1037962383308" "size" "EE4A7827A547F121E141FC6F447F4112" "download" "CA772AE836CEC95C311AEC56EAC3EA7A" } "mac_test3" { "gid" "BF223BF5A064FE4703D2515C1812D5AB" "size" "8E3E75152DC3835E1A1609D3358FE929" "download" "06D54BD6293E137827023C0952BA9735" } "playtesting" { "gid" "66B9A28F786CB0F6316278E4D5ED29AF" "size" "BFCA7111C3E308293E8B69FC4E1E8EDE" "download" "C8AFAA90145056F5ADB430BEFABBA52B" } "pt_bcn" { "gid" "9B03B10CE045BA37714BA3143A3F261E" "size" "0BCEDDF6D5A7BB6D56CB27D6FE628064" "download" "03CDF542ED3EF85CB775BEC6358667E6" } "pt_dub" { "gid" "868B9998F77D2328AA53EE970246AD84" "size" "4F4C8AC510479993145DBA7FABD8911F" "download" "417A91DF3E61B00B15D60A471A2E47D0" } "pt_gf" { "gid" "8E42A10FA2BB934363C8AA22E0E006BC" "size" "9A1FAD99C01E384E0659A26E5492F7DF" "download" "CBCEA7A3753306B6969A4AF0278D73D0" } "pt_gnt" { "gid" "57FAB71991D1EC1709222498E0BB7CFF" "size" "8272A45DF0B6D3E73AA0BA88775CAAB5" "download" "3F2D31408B9E731F1642E2380D485DFB" } "pt_kl" { "gid" "60788F11CFE588A12898C8EC62B29DA1" "size" "A954D48456125AB2F831162AF7551B7D" "download" "86ABFBE33B87A7D9FE2A45ABE3371509" } "pt_qbc" { "gid" "9A9E56173FDFB30843A95F07274969D9" "size" "4D37D4E56720E210E1C1DA0A264F9BFD" "download" "A995D932735D4F5B0ED0F340F46AADFD" } "qaprio" { "gid" "AD86140B34F0967EA453664CA25DB2A9" "size" "6A868E145B736A291372563D4AC2A2AF" "download" "8339E3949C5B2B5FA41CA29E88AC71DD" } "release" { "gid" "BE940FD3C96D74CE6768C6486783D5BD" "size" "DFDCEA8ADFCF6CFC1581463D7290C6F8" "download" "30F23139329FFA0553CA7552ABAECC20" } "release_hf1" { "gid" "280344F72E30F1795662A59A13B1FD24" "size" "AE72B913FAAC3C2671B8E8BDF8B21B45" "download" "4B81547E4F34448658C8FF050FE6A62E" } "release_hf2" { "gid" "47D82991A16BFC5D920C381EDEDE92F9" "size" "894CCBA055DF9550471A2FDC9840A7CE" "download" "DB01423A3729D16140A4B18C1752A656" } "release_hf2.1" { "gid" "BC659DE3E749C985DF1EF8859C2AB9D1" "size" "7FADF05DD2BBFF8F7333ACACEC38DEA0" "download" "95F0B1743273E018E91D6E82C643B3A3" } "release_hf3" { "gid" "3891F54622675722D18BC35164D4A48D" "size" "DE22F79219648C38F7430E528A2E80BE" "download" "E5C233EE29852FA786076D7154BDAB6B" } "release_hf4" { "gid" "C7268206BBB560878BCBB15C74A1B749" "size" "5CB49D777B97359794A4D8179104A822" "download" "37F25613E6C9748C3E2AB092A72D5B8A" } "release_patch1" { "gid" "58D3E12BD2399EFEBC30FF02B68FC1DC" "size" "C6746366DF58637075D0E12379292C44" "download" "E6BD38F447733C44A1E0492790D4814C" } "release_patch2" { "gid" "0481A99607AC19F8ABF07C0C1128600A" "size" "617DAC3C5DA49C80CCCFC876F62D7D05" "download" "E04C04DCC6D887F37E0708208AC60F5C" } "release_patch3" { "gid" "A0CF09C2A496144996270915C255FD48" "size" "25D6EA18DBF6DFBBA746CFE1D3AD2574" "download" "E7A0A94769742975B131A0A2B1B6AA13" } "release_patch3_hf1" { "gid" "83230F1D62EFE3A7263116C0D40FB0F6" "size" "2411855387F29B1F0A5C69EA0908DAE4" "download" "5088EB070030960DD2C054EB3E63E473" } "release_patch3_hf2" { "gid" "77B78B9009C53B5A246E67F65252B47F" "size" "B067F2CA8CA24EB796DFC070B7F04484" "download" "CA9DCEEA3ACC3A11314E6BD48E745F5F" } "release_patch3_hf3" { "gid" "AD387ADFA6241FA10058C37B5843A92B" "size" "83B98E36695E656C33EB81DCE4CB68DF" "download" "6C7E50C774003D8A6650A7366DC0F933" } "release_patch4" { "gid" "135E443C3E6CA386F53432D377AFA379" "size" "8E285C18CF6E621ED7940D47B20E1289" "download" "C3447AC9E2820DA017913370D7A7C1BC" } "summer2020_loca" { "gid" "67D89B7BBC9C41994EEFCC01B775F366" "size" "116173DE9A2CDF8155B2FDAEE2C9AA41" "download" "C294EE57595A155E62B199ECC47817E1" } "temp" { "gid" "78A47D83DFBDF1ED181F98A2CF3D6B2E" "size" "8B11FAC4A75148F1FB32B9182772AADD" "download" "E36C9C79142BB372219EF8D4F9D33E5A" } "testbranch" { "gid" "638664409E0B17C6D43393967270AA15" "size" "A7335810A00A37DFBCAC0B11BA6F7567" "download" "68C7E1B90D6FBBBD01E78FDE22EF7631" } } } "1086948" { "config" { "language" "tchinese" "oslist" "windows" } "manifests" { "public" { "gid" "3867897012063273051" "size" "31942153" "download" "27821648" } } "encryptedmanifests" { "agerating" { "gid" "FA7799EA6856D992901A049095A845C4" "size" "EBDB0D5CC931564818F6D550DCE64CB9" "download" "2C5C003DEAF55FA2494D47F1943B0D81" } "baseline" { "gid" "51CFDB92826C00EB42CB3B0B8AB71160" "size" "652E4E1267A416EE5EADF4899AB29EEA" "download" "EE6406926E9E03EC694620B34F4E2B6F" } "ch_main" { "gid" "936D0048ABE22EDD23313D76943E98F9" "size" "EC97ECA22135E5B7422BDBC28673C4EA" "download" "0FDD8FC6AA6C16507ADC3B6B6A8B7590" } "ch_rc" { "gid" "05DB3D35EC0F400F8A5D0FC180926ED9" "size" "CA5A2D4246557C36A62D8C7B095F5CC6" "download" "FE1801745D1C85D43AEDCD519E12A18B" } "compat" { "gid" "E7EC5FDAC6E437DC5B0046A00C74B6DD" "size" "1F11332613B75A4CF68939F69BB32F2A" "download" "F20B0BD3368FF6C41850BBF192BF072D" } "dlss" { "gid" "1B20102757D467E1D141503AC124B3CB" "size" "08BA17BA397FDA4B5E5C64C389E8218F" "download" "E59B7E732F2CEABD7F9DB13EDCEF21D2" } "mac_test1" { "gid" "3A217C032F00CA75C507BE0896DFE8F7" "size" "C75374E41F364B18B20F7369D85F342D" "download" "C75374E41F364B18B20F7369D85F342D" } "mac_test2" { "gid" "C5F83E6B93B3144A9DD8DC8DA63E4DE3" "size" "634E099430E76A46445A08E512D942AE" "download" "634E099430E76A46445A08E512D942AE" } "mac_test3" { "gid" "F67DA137965600A952AB3710677B3574" "size" "7A4C880D4C7541300FEE636C6976E8B8" "download" "F989A31D7F339DA5F4D0053ED335AB59" } "playtesting" { "gid" "447F594304B211CEEA0D1C5531B667FD" "size" "09950BBA0A7F202813CCC0598E19107C" "download" "9A1753882197BF8D1719DE69B52D2198" } "pt_bcn" { "gid" "25BE899FFBFA7F20318CB3180DE26A80" "size" "A145BB7F92B52D77C59DB4BC43227AD0" "download" "CF37D754C50C8BBEAFEE81EB082DD9EF" } "pt_dub" { "gid" "ED7786C95937F5A9A2A3FAD7D1275341" "size" "A4BBC68168580E14897CA44250979CCF" "download" "7C17382021C22B4708C0DABAA82BACCD" } "pt_gf" { "gid" "3222AFD2679A22BFB70C0EABED4511ED" "size" "C45DA2870A5249DC47BEEAFB1F4CC0B1" "download" "D794262A0D4EEF545D260423F7CDB1CC" } "pt_gnt" { "gid" "B4DDE1E841D3FBF17E8627916B1C544F" "size" "45160F2B93F751E2E7C915ABCDD1CB61" "download" "1B00D0FD079C680D72B1B8F5EAAE4962" } "pt_kl" { "gid" "76EFC1B2A8DA2EB6467BBC929283A91C" "size" "3060A143F78E0CBDA7D013567652F916" "download" "97B0C867B11AA06B5FD1BEBB979F2393" } "pt_qbc" { "gid" "20E52F116B87B28C460B52CE30774497" "size" "3C2AF79A03B0DCBAF267200E6A7C92DA" "download" "07395527A3E5B25D2B7BEC1A29A0622E" } "qaprio" { "gid" "8EA35E07A136B72CB6B2F697D4CFADB4" "size" "93416B20050434CA87DF04738F8A875E" "download" "A852F11B06292DBAD596E0F803FE1B78" } "release" { "gid" "F9771A7DDFD3BC565D515BE8CAB25C42" "size" "0C108F939FA17C999CDC9F8D4292C365" "download" "3020178883775949C8E1DDF50802FFD0" } "release_hf1" { "gid" "318B68EDDC5CD64FE4A11CAA7EAA7E3C" "size" "7CF6A8F98195F1F351544DB096816830" "download" "9E0FD6FC17477F7C6EDF43FD3C3A0E80" } "release_hf2" { "gid" "1B7B54EFA6C7356FC50E36C258B42A3B" "size" "8C5C33952EA85407AFEBEFA8B6D37F9A" "download" "22C3EFFB3954D82F51C205F89679332A" } "release_hf2.1" { "gid" "96177D0F4F692CB1410481FE0D6DD8BF" "size" "74D76484B39BF0D324EF6DDAAD159CD1" "download" "6A12ADD723F91B2636C885426CC6F2ED" } "release_hf3" { "gid" "C86DFBC0BE84442E9CAF60265487DEAE" "size" "718D284F7C7C9D2CA496EA6FCB147405" "download" "26CD3A22807BA265D5F2E63353674596" } "release_hf4" { "gid" "429CD03C6630A184AC2E816396871A54" "size" "D9938AD973E4C999155CC8FDC37692CD" "download" "9F09956762173AF4E9D380A5A037DE06" } "release_patch1" { "gid" "ECAB2DF40EA9A339D28A30C61ED1CF5A" "size" "B97CCBC074A4A77116C6B282472D8757" "download" "464B5741F3C76A44D13FC2CDBE9CBEBB" } "release_patch2" { "gid" "F947D17495394ED4C04ABDDDCEC2D163" "size" "CB05A750220C0DD2E62069EC2F3D7259" "download" "5BEEE4A25C0C857E516D944692084160" } "release_patch3" { "gid" "3F9BA45538854798DE1C5FD844F7245C" "size" "CAE6F8B1F3006A5016DBE397DDCAC9EA" "download" "1E52BD3569772FE51870B4EEC573B279" } "release_patch3_hf1" { "gid" "16171535D0081054F737D6AB52E3762A" "size" "FD978EC062B8A91A3030688473B19C5E" "download" "8A98B984B4614B210AC66604D84367EA" } "release_patch3_hf2" { "gid" "89F7015D95F6D8739609720161A2B0E8" "size" "BB4AE8D3E18F388577F82A4789DD82E0" "download" "D05810C67D3A6733AABAB39A7072C324" } "release_patch3_hf3" { "gid" "99314A05D119FD54BFD175B0AA95DB3D" "size" "8C968376562BDF593F573BC42B737F19" "download" "612F68315552D408A90A1FFC54846B69" } "release_patch4" { "gid" "4356667210B82D0D505F071188BD5EB0" "size" "3AD3DA02B6052BA58C13EA45AA6749B9" "download" "C969C05D3004337D59B8298E36866102" } "summer2020_loca" { "gid" "48A73F3707AC9F0A4F35AFF20126A41A" "size" "0A64E09DF0298485D18B5C25613952F2" "download" "A0873F2539D2BAD4E234A1F9190B4286" } "temp" { "gid" "418BF48801EB171F6C320C3559B4F62C" "size" "0219320DDA8FFAF461AA64642DECECEE" "download" "5B176EAB0BFC8F8053015250F4ABAD61" } "testbranch" { "gid" "A33EC4148C2527B156F0AA462BDB3BC5" "size" "132D5C86DB7B6FC98739F47D6D55AA54" "download" "AA9EB70A1C07A5BE5B9291A1F8B37228" } } } "1086949" { "config" { "language" "spanish" "oslist" "windows" } "manifests" { "public" { "gid" "5307061479641271926" "size" "13610778" "download" "11726464" } } "encryptedmanifests" { "agerating" { "gid" "5A132E82D8AAA72BF80231FD94B20DA7" "size" "3E01F7BA98D91986C7FAAAC6D9705096" "download" "CB9D9EF1A0DC6FC6B4705D9DA94AB398" } "baseline" { "gid" "34BCDC6A11F61DBDA41FADEA3826FCEE" "size" "4738E11E426EB7AC0C012D4470A8D567" "download" "173068F02DEC4E8EA6F0E1746FB4F071" } "ch_main" { "gid" "1B607689542C345EC3F033BCDBF1EEF9" "size" "529D9F5575FD5B8D981301A461B04993" "download" "F825BE967B73123C661C0270F190AF8F" } "ch_rc" { "gid" "EFA588D1E579F8B805F0617A2F0BB98D" "size" "A3F5E00B864F6A3271FF01B675801A55" "download" "536FB75F001006F2A2C8DCA020AB63E0" } "compat" { "gid" "68302271D73725FDD2E9B2BC6C8AE374" "size" "03C0D4B2769578B234B42077E479FC91" "download" "009092B7FE0F7D5DA34496792EBC2002" } "dlss" { "gid" "ED980D4E4A1398A0BDD75C4B26F9F92A" "size" "D007BF4CFD831005D165FDDED51F92E2" "download" "FEA55261322C421D5CAD7B0F73EDCB3C" } "mac_test1" { "gid" "B6155FF4A0757AF84C1F57B8905ECE7E" "size" "E65F71091C6CABA4A814DCDC77C9C577" "download" "D4EC5714D98FADF7CFDDB22BEB245C20" } "mac_test2" { "gid" "8147748519CD0DF2CBC1028781EFAB6E" "size" "807AB0CDC7AF351AA5840882B67F69D8" "download" "9D10536AEA8A5C99A7B30C8A388DB04B" } "mac_test3" { "gid" "24A5087D22ACE7CAF01A02CFEFFEC567" "size" "E977A3D22A189EC004B90E9E44F53512" "download" "FDD3D7C9804AD038BABC9545C4021448" } "playtesting" { "gid" "0512736FAB0499416ADC580A08DB5E04" "size" "C53E2B5F309638DD40F8E43F6A7CFEAA" "download" "C3FDF826BA2B175A68FE2F9CA89331A4" } "pt_bcn" { "gid" "88A6E7EC0F91892AA9D85D1D3A0BD40E" "size" "A6AACE7882B5D85E6A1AF81463F788C8" "download" "59CC01CBCEA203E1EB4DECE8F99FDEFA" } "pt_dub" { "gid" "FFC179B83FCC61249AA4D957122B21F8" "size" "11C546F7054B4717FE4E229FFD074A36" "download" "74A5C04FC1843D85FCAA38DE8F569BE3" } "pt_gf" { "gid" "1A23C7AEA5F4B8805FD327B45B9A1AE8" "size" "D0C28313BFF7C42A31A3F7E1637DBF15" "download" "54EB08A85421D9B7DB7AA642157892B8" } "pt_gnt" { "gid" "C68B860FE08B01AC811D9C4BD633B85D" "size" "C751A5F79BA62E97597EE82B2026023B" "download" "1C9AF5C654DE42DF5DF06DD675150290" } "pt_kl" { "gid" "0AA66A50C12AAE0A6957FD6AB9B00D5E" "size" "536E651DBFC77ACFB9153EB5912522B5" "download" "25D2100A651DF95CC15DB1B2EB26254F" } "pt_qbc" { "gid" "BE2E7A3030FE052FB24A41D9CC76C97E" "size" "53822C43FBF6E367FF6250D97CF877A6" "download" "22601B2B60078EBF836E896E4A7F2B93" } "qaprio" { "gid" "12BFE4088A3AEF49CF3E8E563C13C33D" "size" "FA9782274C1A8D813249DAE4ED7B4B8A" "download" "623C4A48AC05CDD51F916BC701A448CF" } "release" { "gid" "0F8B51F9E2EFE2B993378FA3D0974476" "size" "618C01D392DF9B406D0B4BD9F8DCB9A6" "download" "4FA5F09434200E259452497928E0245C" } "release_hf1" { "gid" "B3460D0C0FB531670971411EE15EA5B6" "size" "925E90E3B9FCB8AB6FDB59199A6EC95D" "download" "C41BF4D2E469E57956F07141724513B1" } "release_hf2" { "gid" "26E98C418342E6D5586B3EFDF4E04D25" "size" "9E4318C784281F78672652B648C28786" "download" "AEA2322A981212CAA7B258A6C9891924" } "release_hf2.1" { "gid" "8BEF173BA9F6E5AFD123C723F054A76F" "size" "831B1998D47EAD126CA9310B7420BBE8" "download" "600173FB9E83662AFB50E4C926E0F8EE" } "release_hf3" { "gid" "8776E8AFFA7E8A29B9CAE1AF0BE4C807" "size" "D597C9D3F3204A68B5D40E4DE64FC8C8" "download" "8D0831FFEE486CB4DA6449D540FB565C" } "release_hf4" { "gid" "6219A3E3E272BEF877B32BCBF16DF9AC" "size" "B09B82AAD0F6930E00451EBB7487D7C4" "download" "DF37810CEAF79BE4C051EE562C67CFFE" } "release_patch1" { "gid" "899A95FBF107D565AA3D443B7B7F9BD3" "size" "479116892AEB7DE8E6E26477673907C5" "download" "E564B7D4F717DA14B35F068D791E06AD" } "release_patch2" { "gid" "A54A802AB3B4633E7790D8B94E77A1FE" "size" "FDDA379D646CAF5CED28E55F292EF88F" "download" "68EC3109D79D20DC0967B36523AEF982" } "release_patch3" { "gid" "30CA03FF5DA79C770A1826E4ABDB1BA0" "size" "73A5079F93A6D95A8A8D64EA4576FD57" "download" "CCEDB5E1D87678BE2EEB60FBE3D42DCC" } "release_patch3_hf1" { "gid" "2CA7BA7B895AAD71206B70B1F9D739D4" "size" "CA901102148F1160E489CBDE52978262" "download" "D9E2EB0E23693F06878BE2E928CA4B6E" } "release_patch3_hf2" { "gid" "F366B5BA4DD472898A0CF3AAC3BBB00D" "size" "CAAAE7D7BECE209D2BFF2B4BB2B171B2" "download" "D004C303A1373A1890ACB2C871CD0F55" } "release_patch3_hf3" { "gid" "938334EA83D8A7E578AF396A5C9E6C06" "size" "B281CFA92762DB399903B9F402543E55" "download" "AA0CDCE2EBF211ADFAF6DD5A9A8926FE" } "release_patch4" { "gid" "A7BB43109721C42520DE30DB55C5ED18" "size" "C0DEF5361D2D7CF3D3ACB8EB90F2BEF3" "download" "F698757FD840A9D8ECCCFE505028A4E2" } "summer2020_loca" { "gid" "4DE003B67AB49CBB6B4B66A5E2B29EDD" "size" "F6FEE30F0FF1CDF29F217C46E70589AA" "download" "6FF0F42EFF5FE0615DEFE857B293B817" } "temp" { "gid" "7ACF749E0B6E6DF173C29325C88E916B" "size" "7866C1B4519D91B95DB6139FFB3D1AFA" "download" "EE7F0E0EC61337870FE1F36F81327787" } "testbranch" { "gid" "C631C2F17F2D399644CC3D6DC9E67092" "size" "4F585241FD5E5A04D97ADD5099DCD285" "download" "2BEBEF9CD87AA2BDAF4EDAA9AE386E4F" } } } "1419660" { "config" { "oslist" "macos" } "manifests" { "public" { "gid" "7928495372307669987" "size" "130962007014" "download" "104867589904" } } "encryptedmanifests" { "agerating" { "gid" "DA5666BDF17D76C836329C555B05E94D" "size" "361C4223B01B1298812B4512438B4171" "download" "F2C6701E1859F1F8D7A7BAA9C0DF16C3" } "ch_main" { "gid" "E9B8C4B7A1C15190FC77A010F6223DB3" "size" "023F7A0C8E3BEAA8E73361BB11E716FB" "download" "04E15CA17AF9B8B5AA6313A562890971" } "ch_rc" { "gid" "C77E7DD81C3FFC7B44D410FAFFFD0183" "size" "097A902C2FA8198A7EFD2CBAF1FCC8BB" "download" "B8B41A63B41CBCB0C8B8D8B1DC80F7D2" } "compat" { "gid" "085B515B6716577C727000E3B838A786" "size" "62D20CF8868FF08F9B771A2F03CEB6BA" "download" "23CFFA0885E53C146E0EFC9AF7F9D9E9" } "dlss" { "gid" "D8CA8973CFD531BB268EFB2B06C13DF8" "size" "FB475A7B1534D965DC5B7A1F8373D6C9" "download" "C3215EF759D48C404E69DDC87091FE91" } "mac_test1" { "gid" "0142F0D989EF0898F2CDCE75374CF464" "size" "2D48DAF3A0B0C9D2ED2A6137BCC0CF53" "download" "F5F760EAB9477C05BFC5F7AC66B8842C" } "mac_test2" { "gid" "A032221DB5639118D7E49CBCA073795E" "size" "C5E9858FD7798C24C264D73543FD1602" "download" "0BD20F1377084F172C8C16923FB8C3DE" } "mac_test3" { "gid" "6A784F0C6133751B027463338AAF74C8" "size" "41D1C4CFBBF8C198099DEF33B9181A97" "download" "98FA58310E5E3C69C8F357F2CB348FA7" } "playtesting" { "gid" "4E7A4E2D2B5EFE9D6757A9F8BA3E1C2D" "size" "4CA5938ED6D33506481359E5464BF0FA" "download" "7BD74579D642F81EB131B888984565E8" } "pt_bcn" { "gid" "CD6D339F1EA2DFB76BC58C39B29B5CCA" "size" "63B923F44D1E9629997C783A33E40110" "download" "961E04F1AD3D57A2A8C4480D2B273A4F" } "pt_dub" { "gid" "DF0256E78E6847F5CAFFE319A8D5ABE2" "size" "881EA17B60DC0AB84A85AF4F486F0865" "download" "CCC93A0F0D015DAB0236244EA7A69414" } "pt_gf" { "gid" "2F8C64A0AB026113D9252C109473D77D" "size" "C3CCDB6BFECC61B62CB1EC6648228C8B" "download" "FF9F9A5818E7736C9B39A5D98BE79B8D" } "pt_gnt" { "gid" "F8795A7A297751E1D3FED622E30A979D" "size" "7912068EE69AA7900DD779406EE392B6" "download" "DA7B1D5BBA73D7343510F4B3525639C0" } "pt_kl" { "gid" "A10D9A2971C05B5A4064F2A3F706C581" "size" "60910893FBCAFEEE2C15E957A7FE109C" "download" "E030702AF1DBA8FA3479EE11CB40A03D" } "pt_qbc" { "gid" "5BFC4404C819592D4FEF7A6C097C702B" "size" "BDEBF28A608BD9432E9569B9E97E819D" "download" "477450A28121F70C8753AAF964FAFD2E" } "qaprio" { "gid" "AB998BFF9CE7ACC6D9AD51A62E4B1A09" "size" "86B6F331F0E87ACBF4784727DFC287F3" "download" "D2A188DB1EFED4040A03E90E46E1E01F" } "release" { "gid" "2C150654BFEB844D46A567F0C97EC778" "size" "991504A0957589564AECDE7E415A12E4" "download" "60F478068022C6C0E227823F7D367176" } "release_hf1" { "gid" "B98975AE7E7A8A48FE5E16317932D4A7" "size" "008A26D176E7845D54EB4BF01AF5F953" "download" "1003E89BBE536BB0A6377BD403C28809" } "release_hf2" { "gid" "945F6A07F3AA08D359466FD9D58CD27D" "size" "F0225A71D728565A96D052A67986C9AE" "download" "211A3328ACCD13B1CAA6A7D8493EE0AF" } "release_hf2.1" { "gid" "09D036774C3BBF4247298E175C856097" "size" "ABAB07A6D243D9C97E172FEE4C68B9C8" "download" "CDC96F0915093A3B76FC9976E3163E9D" } "release_hf3" { "gid" "62503B12BD6034C9575DBE5DAD4354CA" "size" "AC7F5F1BE2DFC487CF67AC212428F17B" "download" "2FBDD3F75BE7860DCD5D0CCA0268E49A" } "release_hf4" { "gid" "BD8D5858FB42310C1FFD2B068B3B2CF5" "size" "6DDC6569B5133B1C5D5B3C16B17DBB6D" "download" "FAA2D6161AADB0EBA42D8F3C8C9ACD88" } "release_patch1" { "gid" "26A84A83EF8F3FD2FAA385002090B4A5" "size" "17D72481803C0037CA1CC1D1D1CF2D87" "download" "BDA17C1918745B1125B05BD4D5D66F57" } "release_patch2" { "gid" "FDBD7488D71D0E67FB75A746BE52B00D" "size" "06A1CC0B3F3F3220A681441102059452" "download" "D079A05B20EFA5877F070F93ABC11470" } "release_patch3" { "gid" "64879D67024032F336B47EBB88005132" "size" "A33CBB10F30AB90B310C523E6445C2CD" "download" "6F3CA8C9B53EA38A7A8CF15F26874AC4" } "release_patch3_hf1" { "gid" "83B7633A707793AF4D293FDC9D9E0416" "size" "5373264FCFECEC74B4196AF6CE247F00" "download" "400A1C82653CD59E47104A873081F4B5" } "release_patch3_hf2" { "gid" "2B683C6043197E7F0CFACFBA83B7D50A" "size" "0AD045374C7A02E0C81056E895114A1E" "download" "EC8D7D65B81ADF83D6329900A9563032" } "release_patch3_hf3" { "gid" "AF907672D3085BA8B0D08A309CAC2B36" "size" "6601ABB5BB8E4E28D6E45E2DC591E89C" "download" "2D08CD04E480812B71216D62EC4B5355" } "release_patch4" { "gid" "82936023523507F701BD304982B61446" "size" "5F9066BB18C34CAF6F49943DD1A46785" "download" "FC3834D7DD9703DAD5C9E9728C21DB08" } "summer2020_loca" { "gid" "F13E1BDC6247854F06BE3956DF1B2FE7" "size" "A0C933D039A6979485E6928962CA53B1" "download" "05700145F55514DB61A0BA87CE56FA9E" } "temp" { "gid" "2BF7F6D99784B06F316DF02A56EC678C" "size" "1652AF41638AC5680AC97491C5061BBE" "download" "18C575C4D26624462559B09067E5F282" } "testbranch" { "gid" "7E48F4BE49850551CBE492FF81BC1C08" "size" "64BA296CDA8D0E74E033A6808CAB9B08" "download" "B53C820DA8D70EC7C78F5D9080D2E1B1" } } } "1419661" { "config" { "language" "english" "oslist" "macos" } "manifests" { "public" { "gid" "4191530919188121973" "size" "574" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "7B944E6CCB8445D61AB8B43523C8381F" "size" "6BBE51463054AB0DC78083FAEADE8DA8" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "269F57C309B30868BB71282804C229A6" "size" "9FD74F0E6026B580D44BD2FC1977DC4D" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "0C87A8598962F2740997547442843971" "size" "BBCA0B1365B8686211E7FBCE914B2A93" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "EA0B8FEA7BF50F807E6DB82329957652" "size" "1FF1B6936202380A34BD6B56C0FB2F64" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "8CDA1D961EA425B6E7BB2AC52D8B15E8" "size" "4C56FACD324964161F241B2BFAE16774" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "3FF7351466E504B280C11E687188D237" "size" "C48C1D89D0FA794F1B42EF0F92318A95" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "987F17FF5C533DC9C153B88CF8F8AC6D" "size" "5E8C152A1C2B00BA7D2D734342936716" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "D20B0237FA36BE12708CF00A425605D1" "size" "6105C8897C956C46ECD04F40A0179DE9" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "4CC55FE9A9B50416D4258EAB147007D0" "size" "6B282B824CBF095D9B18C1D351F8A759" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "712DB84B5A6D9BE260C6FE9CDCC638FB" "size" "DF087D2A915D9C9444861492E95AE741" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "3A44C733C73BDB3AD12B4BE5A1DEF96D" "size" "1B8FB8AED420D669F211B2459D6C82B2" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "6C40551456863D4B5F9B4214C0F51F30" "size" "C361D0E81B0AA58F48AB68DBAA1794C8" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "3F8CAB52C6CBC30B7A6EBFD858EA9DBE" "size" "DD95D9B05C89BAFDED61DC4553A4920D" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "3A0A8CFBF338939A93807C81CB1D09C7" "size" "0B3889FCE7BCFC108FD7FF763B659874" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "D41CD7F5300AA3DDB58F72647C6AB74A" "size" "2DFF7DEE7F4148C9FC75D7DB293ED201" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "5BFC3A7F8E9B0BD91083D4401C436664" "size" "E7AEC9569A0EDF07556ED2F6F94491B9" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "9DD68C01EBF03F18CAEDF9CAEBBBD4C2" "size" "2A63767AEFD8D6A55AE328069F23A9D0" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "381DE4F977B563CD1A53079BA1D37F96" "size" "247B1F904DB8D7E4E1FE5B76C8B80371" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "10278C9A41C9E1C6B26631367663B142" "size" "DC181839ED9F92E0741D697BE63E5B08" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "0E1C19C1FA04107A58C03888050BFFD8" "size" "77E22B5190F3D7F550EA216DD5F7FEF6" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "7C6F44C34EE0544FA8B37BA38C4512AA" "size" "158178778ADDD5EEA804BD865ED3A4EC" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "0D88BF2010038BF52933527C13162789" "size" "2BF344E37EBAE402FE51BFDB120A15E8" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "029E5102FC981E2D3EEAF252AECE9503" "size" "3EC532F47C77DC8C99A7A38752D89DE7" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "B32358DAE19DBB7707765FF5A915387A" "size" "40B44703D11B553EED74E074AB3FEC18" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "1BC0326B749EA45DFBA25CBE977511D4" "size" "AA0682B41F137D59808016594525404E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "E91848FA1013EAE88428E88607278E4F" "size" "6397833D4E97353C6B4EE91599FAAFB6" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "E5DE627328B5F1934664BAEF3408407D" "size" "F4BE13E10A34F3ED4F6B8107FA6A240A" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "595BD420C5EF322A44DEFBD5E4E7165B" "size" "38D095AD9D8386181A1561EEC78DB40F" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "B119D9446277E7B91E464BEFBD3A4B37" "size" "D83726B9B58DA7DFBC18F7DC67638BD9" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "D8ADED181165C3D3B10BA154ED9E3F87" "size" "7337C3F67B69124C4F584E55F7A05D76" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "766CE56F1494DA76A260FD1925E1EBA2" "size" "AD9C7008B79B05918A3BDFBC93B1AAD7" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "7EED344A7DB59D70BDED9863C29CEEA7" "size" "5336E2B9C882B464CA133DBE874802C5" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419662" { "config" { "language" "french" "oslist" "macos" } "manifests" { "public" { "gid" "155056616988897828" "size" "572" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "C5499717220C2A3DC56234019974BD59" "size" "8CA612E406B8C60B9E70F76F6E598DEB" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "5A085071574EED004484BCDEE8B8D55B" "size" "8C9FBF06BD9897E135BA82D38076D2AA" "download" "25FB844F10D78D0399D8DDAE62F2EC8F" } "ch_rc" { "gid" "227CDC432B69AA4FE3393BCA360B8F94" "size" "BCD39907A16E216AFD6266644E6F175F" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "CE2B63D960D275449B638E12470E9DE9" "size" "6386F6F3427E6BBA3D83AF9F038FBE95" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "524901B2685F543B549D655BFF4A8E12" "size" "D13117D9AC274FA320CA64DF29C19905" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "6F1F1A0024ED6E2AE2B3367095EF358E" "size" "E414B6431CC1158A631B8D7C4B5A183A" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "99E27644A1CD821FE8C037EF860DF66B" "size" "0928C86FC231EEA8E7B464B8C2553635" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "35CE33666D6AE11FCDF2090A5BF4D1AE" "size" "6FDC85A68A1A461E16AC1AF57F109C4A" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "F405C2E3F0C36339EE0B62998CED6056" "size" "A971F48ABDE2D6BF6CBA778034972ED1" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "C22EDD0868701B1FC10A7454273E1B63" "size" "E088BA9F1542B7BBF675AD622A76D261" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "F830DF002DF4D9B75C6193D2422A7A69" "size" "19B638DE94CAC47A26F97605E5BCF751" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "205A22D18E368973112DE3906F3254B1" "size" "7F0D387EE8492363CE1A70670ADB288A" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "3B785C36CFD9757088E3287932733D33" "size" "91E638D858F18C5908176F73E1CC47F6" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "9E646D86D08BC056E63A9977DF9BD02D" "size" "0AA7A411121F2C42C12E77D9D173A6AD" "download" "97408B23D5CEC6E0BCFC4B463DA9C09E" } "pt_qbc" { "gid" "07083C8AC340FC88CDF7BA55F5A602D2" "size" "67FD9387D64DD757B260B5A5E2B382F8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "4D649E34E8DA44AD28EEDBCF29E6C05F" "size" "F06AA3794E020862E37EA05AA9E65E4B" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "5EA6F7E94F75EB89FC8390A51D910B43" "size" "48662EBB51B5124B9E00D67D56DB2B7D" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "0FE2B0F75C683C33137EB82AE7D1599D" "size" "A2316249CC4788390A2659CC9D809AD2" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "D45D56C8667305B86EDFAFB73D72B0CF" "size" "65BA6A708111512D84127FBDCB3563ED" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "91624595C383CBF2E00F9E9449BA34C9" "size" "9CE41972B666EBD5EDD030C08A385AD0" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "2527F6F1477DF7A2F7FB2B9D9D43D028" "size" "73258E06F90DE15631E533FD3CD1B8B6" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "01691A5BED3CF0C4395A0A7BB019C1B7" "size" "1A41B6FC4DB6FB71C8052211B773B815" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "69C7EBAAAA7158517173C6AE468AF87D" "size" "C56FA22C9669DB96A293264ACA648138" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "EA54BF8B0CD1F000B6183F62E3C1C019" "size" "5E3A9F3CF3B29C8FDF6734AEAC9DB0A0" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "D5654BCFE85665D8A5511ACD98C1DC68" "size" "EA1097B8C304D469FF1D6D6D2AF5831E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "A05DAA4B58510BCD84974195EA81D626" "size" "80FCB7FF0CE8233CFAB01D22AC8A911B" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "86B4E53789F23ABBB34AF3A663CCC9FC" "size" "17A54ED7CB83CB45F5C535541E84577E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "B382A384DB35A101A710B2EC10764B1E" "size" "D353EDC55BFF58FFDC01F9C6E059B080" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "16BFDC69D1FA7D562DB0DC6BFDF8F3AE" "size" "5A6ED9FAB9D206A5389B4EF8DEC88621" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "223B465203D9E60D62C07D8C696C7178" "size" "F908B4893B5C271566201CEDA7783338" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "C4B77A16DBF358267DF6386CFC6601FE" "size" "A404017A2E9479C0202719B88EC4EF7D" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "5B2EBBE49541D8278A1C75F1BB7AA734" "size" "86F1F49B0AA837B5518AEBD30CCF1BD2" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419663" { "config" { "language" "german" "oslist" "macos" } "manifests" { "public" { "gid" "723954999732581088" "size" "572" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "B7DE90A01EDD0FB0A24070561AC67123" "size" "8CA612E406B8C60B9E70F76F6E598DEB" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "43905350D29AA2419B9FF6EBA5CA2E2C" "size" "8C9FBF06BD9897E135BA82D38076D2AA" "download" "25FB844F10D78D0399D8DDAE62F2EC8F" } "ch_rc" { "gid" "E93197298E6DB239F25389A7576AF8FC" "size" "BCD39907A16E216AFD6266644E6F175F" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "7A4CE48D26544E087F964A3A99BC074E" "size" "6386F6F3427E6BBA3D83AF9F038FBE95" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "7292253764E8FBC6D1C7C09F390440EF" "size" "D13117D9AC274FA320CA64DF29C19905" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "8D53D5399170CD22DB2BAAB2E8A58CF6" "size" "E414B6431CC1158A631B8D7C4B5A183A" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "98EDDD15411BD58F90C881F3D5A9591A" "size" "0928C86FC231EEA8E7B464B8C2553635" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F83C736E4D43CEA93079C84797BD4AB7" "size" "6FDC85A68A1A461E16AC1AF57F109C4A" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "BCF44B734AB0BA09919BDA928B2C38CA" "size" "A971F48ABDE2D6BF6CBA778034972ED1" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "B75D3E6106FD36C42BC896F465F8A13D" "size" "E088BA9F1542B7BBF675AD622A76D261" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "792A9C13D5740BB65E901CE806DC3F6E" "size" "19B638DE94CAC47A26F97605E5BCF751" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "589B5DB6484BC4FE9E7CC2BA996A6BAC" "size" "7F0D387EE8492363CE1A70670ADB288A" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "B2F1CE110663CC74755DC0880E1C926B" "size" "91E638D858F18C5908176F73E1CC47F6" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "44DB84ACFC6CD2E0EF63489722199069" "size" "0AA7A411121F2C42C12E77D9D173A6AD" "download" "97408B23D5CEC6E0BCFC4B463DA9C09E" } "pt_qbc" { "gid" "57AC047ABC94B8AC2B513DFD8035B654" "size" "67FD9387D64DD757B260B5A5E2B382F8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "C24A70E0615B6536E0168985F37A6DB7" "size" "F06AA3794E020862E37EA05AA9E65E4B" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "331E292B881616FD9C46D2455C827A2B" "size" "48662EBB51B5124B9E00D67D56DB2B7D" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "B10F01EAC5F533D89F2B0419F73C3E43" "size" "A2316249CC4788390A2659CC9D809AD2" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "C333B3207CADB377815E07E7AA20AF0C" "size" "65BA6A708111512D84127FBDCB3563ED" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "CED5BFC90A21B437807D630758E59017" "size" "9CE41972B666EBD5EDD030C08A385AD0" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "BC97A8F06320DF5A2682D0E0F1CE19DC" "size" "73258E06F90DE15631E533FD3CD1B8B6" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "4881220DD93928FA52E79AE1B2FF2432" "size" "1A41B6FC4DB6FB71C8052211B773B815" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "33249AC16CBF83D8FF5BBEC35F6DE9C2" "size" "C56FA22C9669DB96A293264ACA648138" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "D7AA2072A55C1043D63900515C06A6C1" "size" "5E3A9F3CF3B29C8FDF6734AEAC9DB0A0" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "EA48A4F7DB19CE33E8CD6B52FFA3B9FB" "size" "EA1097B8C304D469FF1D6D6D2AF5831E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "0A1EDA6C84DBB8D23396D89CBFAFF645" "size" "80FCB7FF0CE8233CFAB01D22AC8A911B" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "F8053E33915E136991F28A912AC0D9B6" "size" "17A54ED7CB83CB45F5C535541E84577E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "A2DA9E921BA2991C5AE214CAA4876714" "size" "D353EDC55BFF58FFDC01F9C6E059B080" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "F16C04705B8891058DB5DF29AD711BBD" "size" "5A6ED9FAB9D206A5389B4EF8DEC88621" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "9370FAD2F22885DF383740A23F147640" "size" "F908B4893B5C271566201CEDA7783338" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "EECE30CAE6770AF901EFB5872EFA43C4" "size" "A404017A2E9479C0202719B88EC4EF7D" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "B80DC5996DBE3C6A5D740785E005BD29" "size" "86F1F49B0AA837B5518AEBD30CCF1BD2" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419664" { "config" { "language" "russian" "oslist" "macos" } "manifests" { "public" { "gid" "1107219692270677752" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "6CB1EA35970AA1E536123E7676B7A165" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "DB91CA3C4BC0F305D37C270CF6960BE3" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "0C2CA9075D85A58162E2AD3C5CC90112" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "F4DE89194507E6A062E2605D7335B58A" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "DC27CDCB7C27D95F8C42188608C77F32" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "3C2234B77E825114CB4AC00D6F3C8312" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "4CC27166254024F2337C3784160F5462" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "2BF9F7F5AD5A0E4867E2CAF5E01CE9EC" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "6DDA16ECBFC52386ABA602C4E397B57A" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "E0672DA31AFC9FB6C49C325DBD9D3D0D" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "0B0940F2F8A0DBD4B42DB7AA751E85B4" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "A5E4DF51681A038744FA871B51772499" "size" "A936F6BA3B1481FB4908DA31BA922574" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "703C3B5263328BC3D717995E1FEECA87" "size" "9B133F53FA32B795E101B397AC5AAC19" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "45EB925136934145C7A29A91C80E2E7D" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "754F20AD0047936544DFC168D67FFEDC" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "DBEF1C55A98F481361D2234B1445666E" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "1620C6067A7730BFDEC4C5EE993E722A" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "B998B5AB5BBE9A2C82003649F78DE55A" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "17E046D2E70BA1248760BD92057EACA8" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "8CD36E0F58B912A14F98141FC3199A8E" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "E7D664BB1F7B1D21A2E3540922BCE145" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "1EC6F963AD3083F79F01DA8F233423EF" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "EEF53C3F0296E7F820BF3F86E5E5F0AD" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "6208EBC3F146062C5B9D9F8A824A0A7D" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "19B087A469FEA555065DDC248D4E3CF3" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "3F97F26DD85CCB67B9E7962ACB9F1CA2" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "FC93B26799EAB88D8B5650FB63C8152B" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "89DCA39878A98C66C38A3FB6B126BC69" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "D0A09E033938E8B43E4D536CA7FF0CDC" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "594B45637235C79C1227B915F915BF92" "size" "158690BC057E3EFF950346013654EDA4" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "D9D41D0F7734EE91576CA458847ABCBF" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "5263D578D7CC4409F77011848A898283" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419665" { "config" { "language" "polish" "oslist" "macos" } "manifests" { "public" { "gid" "747776678919642180" "size" "572" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "F5873AEFCE6D76515418006E36BCC8F6" "size" "8CA612E406B8C60B9E70F76F6E598DEB" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "7FF726CBDDF1871C5448BCBB2A3353AF" "size" "8C9FBF06BD9897E135BA82D38076D2AA" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "1C15707F2A3FF9735C9D859D0330E5BA" "size" "BCD39907A16E216AFD6266644E6F175F" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "81BF1D4735274C35AA5A799FD6F9FDB5" "size" "6386F6F3427E6BBA3D83AF9F038FBE95" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "7492E028417D821B72B14A50DEA5DD2D" "size" "D13117D9AC274FA320CA64DF29C19905" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "D6F8EA0193A2CCB986C4E54CCCE4F33C" "size" "E414B6431CC1158A631B8D7C4B5A183A" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "2C2CD00E00CF2C9138F3E468014567C2" "size" "0928C86FC231EEA8E7B464B8C2553635" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F89A968521EB333042EF4D469DC49A2A" "size" "6FDC85A68A1A461E16AC1AF57F109C4A" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "ED61F7F2F977151A24DB7FA56853A012" "size" "A971F48ABDE2D6BF6CBA778034972ED1" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "3F8B38BE8426089FAF0C4E2ED32B8E7A" "size" "E088BA9F1542B7BBF675AD622A76D261" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "ECF7DD1D7A56866F348DF3F4B3E45464" "size" "19B638DE94CAC47A26F97605E5BCF751" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "7C6E7E0ECFDF044CE0C0FD18B2EDE9E4" "size" "7F0D387EE8492363CE1A70670ADB288A" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "0E84C13A87FC6CCF0CCB21EAFFF6D70F" "size" "91E638D858F18C5908176F73E1CC47F6" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "74BD22C34F66A6620F7C22841BAF385B" "size" "0AA7A411121F2C42C12E77D9D173A6AD" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "A05742D93925AF1880B0CE2BC88BD903" "size" "67FD9387D64DD757B260B5A5E2B382F8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "C3A4C64B429DF25A3EDFA8AB7C52E839" "size" "F06AA3794E020862E37EA05AA9E65E4B" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "7BCBB872CB9749EB6E327D74A44C8EF9" "size" "48662EBB51B5124B9E00D67D56DB2B7D" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "BABC9A324D09CC3BA28F4F5908D159D7" "size" "A2316249CC4788390A2659CC9D809AD2" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "FAEB9DF3F2206E3AA6641E57493C59C0" "size" "65BA6A708111512D84127FBDCB3563ED" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "98B9236A51C77804F8239813FA746536" "size" "9CE41972B666EBD5EDD030C08A385AD0" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "64F124381E62EA6AB99BEA0854620546" "size" "73258E06F90DE15631E533FD3CD1B8B6" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "380F4AB04AD42DDFC8B70F979D47D985" "size" "1A41B6FC4DB6FB71C8052211B773B815" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "320A0632B3858471F3DA13DD921E761D" "size" "C56FA22C9669DB96A293264ACA648138" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "6EE5E7DE37F5C0A741D7AF9EB8104656" "size" "5E3A9F3CF3B29C8FDF6734AEAC9DB0A0" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "EC5F391B0DD173208652E72CF06267FB" "size" "EA1097B8C304D469FF1D6D6D2AF5831E" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "F48E2324751AA5E0BF659CEF0F98A861" "size" "80FCB7FF0CE8233CFAB01D22AC8A911B" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "9EA0AC784F17AD466B36C9B1859CBEAE" "size" "17A54ED7CB83CB45F5C535541E84577E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "50C5D5B9680372065D6672EE16D15D58" "size" "D353EDC55BFF58FFDC01F9C6E059B080" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "8161C5D7E6BE45F29A6F567C8F15F84C" "size" "5A6ED9FAB9D206A5389B4EF8DEC88621" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "0572BF7FE25D60D2D1F16905262E96BB" "size" "F908B4893B5C271566201CEDA7783338" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "8F9DB772D1B3E76CE04A560A716D1D40" "size" "A404017A2E9479C0202719B88EC4EF7D" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "27211B89104D60ABADEF9D9C438A7584" "size" "86F1F49B0AA837B5518AEBD30CCF1BD2" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419666" { "config" { "language" "spanish" "oslist" "macos" } "manifests" { "public" { "gid" "314330023803655538" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "3090B944DF46D9A9CF5CA30583D3A74D" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "9BF7F465783F3840107F3B7C130ED591" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "06E25476E9AC602BD8A44561A5AB4F1A" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "107E822755B7EE76A5E4624619E34EED" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "3E71E64F33C49075632D7F8A311ACC8F" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "2C4E3A4F41281C099B9D129B05FAD3FD" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "5FAE65A34F6735A2A73263AB39A8D87A" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "9A712B5AFD1CD71B1EC721FDEEE9C363" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "A62FCDD12C29F59A17B71A4ABBC6BA1E" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "44EB09EB81F2C553CF5FF5F5EB6F9294" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "FE99062E8891D390CAA6683557BBE1F1" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "BB086EE641490804865F0F95399905F3" "size" "A936F6BA3B1481FB4908DA31BA922574" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "52469D4C22A93137C7EC408B2D59F462" "size" "9B133F53FA32B795E101B397AC5AAC19" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "140313E92EAED334B41B1C64D54883F9" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "855FA8BD48710BDB99639D53507F3CE8" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "3B710B9992252D68A8DA0159002E5911" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "FA2E1729F6264D93C4653780E7A0B68F" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "19195984C849483DAB49542FF78DCBEC" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "E2CDBAC214142BF200C7656FDA36B895" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "60860BA6F535A994C3D8DA941BDB5929" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "6A66BBFB38F4726277560EF8950A01DF" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "A90EF31241B5A06DFCEE8127BD0488FA" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "3E9C64ACF1B07BE9DF29D6058C6F60D2" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "24C1DDAED40AE52160817D3D5F588442" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "CF518EBADCB8E404A183CBE8F17F2683" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "31A8F57560E792D5E536EA5115953C78" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "D04DC92442055DE3A4CDC4BD8A235484" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "D00EDD8F33956B499EC664A51D38F0AC" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "07412D1B92B38832CA01AAC4025B7927" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "5D980905FEEFE4E3FDB50AE0B29A95B9" "size" "158690BC057E3EFF950346013654EDA4" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "D4733E794801B03CE99853D5BDD5CAEC" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "A9F44E85C9B869F8B2CDF9DB842F9C74" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419667" { "config" { "language" "schinese" "oslist" "macos" } "manifests" { "public" { "gid" "63003823326025800" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "40303ED49E2168BD193AABBEE5E55D27" "size" "CA299E4EC033576052C695546042BD9B" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "7536C5A96B349314AC969F3E0779077D" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "84DD7D7C21D1FF8D2DD6B5989A61EECC" "size" "0A34A1CB40E48FB5742F66ABE1E35785" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "26C6956EFF7ACF394D0B37A79E705D25" "size" "94B294A4023A37030FC1D08E85186799" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "33F0C22D50F4DBAA955CA619EEDDB37A" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "511F42F6B5EC5083903EE5438A0E21D3" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "FF70AF68440C5196A646DC7950CEE189" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F68E9D3AC9CC9253E6CCF33C5D55362B" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "CBC4A80549D9369FB252A9049002B88D" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "E205521AA75A9DA40EB8652AFB2CB448" "size" "34CA51463A9C84DBCC330EF376E43F2D" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "2E98A441390A69076C38C80F9944951B" "size" "15AEEF64505A39B5CE7473F9BAF182AB" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "2C23D105D48BD5967F78AEEEB6EBD0B4" "size" "A936F6BA3B1481FB4908DA31BA922574" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "A5E17EB9ACCCA6215B7A2CA5545ECFFD" "size" "9B133F53FA32B795E101B397AC5AAC19" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "D185956EE4A26F88788AC68CB56668BB" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "D5B5A328F63285E046F02B93803C00EC" "size" "F535E0D5DFA0E8C008C451BC0839F1E8" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "677FD5FD702CB96773D4DB976311F48C" "size" "44CCBF25F2A2CFDEEA86739A44197C60" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "98D4C5857A0932332C93B38967E46051" "size" "3438173299FB0516D4BE6897AA74BC9A" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "5B8E676E811368956982ED28E173FE22" "size" "352EA5F5D066A0183C5FC399D1D175E1" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "3EB6DA1BBB55695D098444850D8CCAEA" "size" "A0F39DA8398CBFDF7A1334797FADFC00" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "4082974F7BAAEB263FBB813409F89795" "size" "B22D7D1A94777DF39206C63242336B6C" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "5FD8B223DB2B90D80006D75A83F2A0A2" "size" "018F14D19158CFE5F306296D4BEC1CB0" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "12490F465993F782B840822D4194C849" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "F713CEC2685B4D1E40DE8111C650E287" "size" "1B00B9AFF5B33C7BF4078A83410205DE" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "40E82E83DEA887EBC68CBA2BADAD8545" "size" "EBE07D799E0586AE7AB0D110EF33C45A" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "579BE38662C107042A2128B61346C876" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "3AD2B88A804AC02D956EC5434936BFFD" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "0D762B245FA99E0245D10BD2CE1960BC" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "D04642D5D46697CA856859BC769EAFD6" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "2C42A25317302C89607194C6CAA4708F" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "summer2020_loca" { "gid" "FE965BD60F2A1182C725AACF74F4D8A6" "size" "158690BC057E3EFF950346013654EDA4" "download" "92242E3DEA07C637EE9629BC6B808D9C" } "temp" { "gid" "80932CFBC5854529CD0294F15990F798" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "1F2570DA2A7697276AD8A3EC6CE1B3E4" "size" "256E4819FE043D7BB6D48C2678F8591A" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419650" { "config" { "oslist" "windows" "language" "italian" } "manifests" { "public" { "gid" "1636935256415881269" "size" "14446375" "download" "12441392" } } "encryptedmanifests" { "baseline" { "gid" "508F19BB0991770F713688925F260BFE" "size" "DB52F1247359192E0C917175033BE76C" "download" "DD8249064CDEE1CBC6B2875FD5A5C6F4" } "ch_main" { "gid" "D27CD03DA9AD698E44153A16710E95EB" "size" "E0FCF8A3AD8FF78EE5F75B967B46F2E8" "download" "7FD4C49E8A3779E0E01A1352CE915D64" } "ch_rc" { "gid" "CE63969EF1DA8AC27C3938E28D331E73" "size" "DB85062C6D6EA113FED5C91750325BFD" "download" "923D30A3D9218B9730567C1DBCBA9A37" } "compat" { "gid" "846579A8436E750CB6EEB333DC51CEBA" "size" "F7A6BA53FD90A7E2189D71B7E62C7679" "download" "8B752879FA63F1F70FFCD30BECDD7B55" } "dlss" { "gid" "86C290157841F6D2378BAE4E710BB60B" "size" "B8C1E4CCE555C5BC342BE9BEEFCED586" "download" "F96F11BDF96DD6DAF23F302D8DBB6530" } "mac_test3" { "gid" "341E5456CCAE50D1F10EB534384F3319" "size" "FC09210A2D75F4AFC0F4C951BBD62A8A" "download" "611C9501E73F6BD5E24D9491F50D8D18" } "playtesting" { "gid" "9857AD92566E6BF196B240182D45A291" "size" "816C2ACC886C2D91F450EFF206728B1E" "download" "284029AAB01B220E08A9BBF382261386" } "qaprio" { "gid" "725A0CD06EFB2472F08D62E4F4B672DD" "size" "A51136C862944AC48054EBF2D16A0D62" "download" "56D768B9D3FED9F788AC929E9A3B8003" } "release" { "gid" "93F2198DDDCB2CEF5C4B1E4F50A2838F" "size" "46A30012F33840BD4B616D19E8974872" "download" "525EE7A97E75B0AF16C6475D7AA56536" } "release_hf1" { "gid" "69EDABB28E4D1FE6AB227786663B5BF2" "size" "4EF419019C04C7DDB76173AEEE118874" "download" "DF627C5D38F15512B7D23161E2203662" } "release_hf2" { "gid" "B4AE48F0318D5C2F886E3EA970E9A271" "size" "6F0539BA9FDE656EAF85F968DE492215" "download" "1462BA8FCD6EC225F8FA3E804328AD42" } "release_hf2.1" { "gid" "D454E89999B8E375E6F62BAF3B2337F1" "size" "EB92F7A5A9D319BB4CCCAA231B05D3FA" "download" "DB107B88350753EFB258B913AA89CC49" } "release_hf3" { "gid" "F486400F052A6BAA074669FA802EAC48" "size" "D8D0FB00039DC451701DE3088F5B2F53" "download" "3E64306B1E21240DD86E65DE84284E74" } "release_hf4" { "gid" "3CD35D27FD57C37B1C5789675822EF89" "size" "8154A321DE7DCD3B0FC5CAC87A015D0E" "download" "A17549D1CC244D720C74FA55A2F986B5" } "release_patch1" { "gid" "B7AFE453517137731A6DAC0AD2DB32E5" "size" "76EB54F9C626E1CA17F443BBBCD21DA6" "download" "E27782DCC1A2B0240CCEE612811D7E97" } "release_patch2" { "gid" "89170FD088A14B0D88D1F3B14EFEE271" "size" "0C8389D33710DF47D5604101AD66967B" "download" "6D9CE6ED317EE6E2874D7426C11CD63A" } "release_patch3" { "gid" "154E9D6E733BC77348C7AA9AFA01018E" "size" "414B746C088D859F99B2C6ADA3663991" "download" "6565F583C7840E5ADD665B22A991AC3C" } "release_patch3_hf1" { "gid" "DD5755EA1D45E902A029768BDAED7544" "size" "3D46D752EF8D8FFD894014F4F9834CC3" "download" "17211610DC8876A41542BAFCDF2C0504" } "release_patch3_hf2" { "gid" "20D17F0690187B230EEACE869FD3A01C" "size" "78AFC9CD68609D0D67F1AC6CF9D6457A" "download" "35635A0F3384186350F5096FDD56C0C8" } "release_patch3_hf3" { "gid" "FFC55E9B140F8482CFE55A12016D93CD" "size" "6B23FD5A93AC751FFAAD1A6A036A8906" "download" "D79C49C65522319D07C179E554287CE3" } "release_patch4" { "gid" "9D8399E2E42FD2DBF769EE82395595F7" "size" "76DA83E770BFB70EBEA6441E8031CB87" "download" "C62AA431046D837BC8AB9BEF64166654" } "summer2020_loca" { "gid" "C838672590F369F92E8BA6EAB7DA6FAF" "size" "331CF59327B98A3A1D9C64FED16D3248" "download" "46F4E5DEFA37DABD9CC6866B9A4DA898" } "temp" { "gid" "9F6DAA534F2586E5D95AD38EAF1B62DF" "size" "A942235B47100CF3B7AB055727A4A9C2" "download" "5DC5C36B2112FE5F71AD3AF354C6A202" } "testbranch" { "gid" "CF78E9A3F0BB883FEAC87950FB77421F" "size" "8BE680ED985F154AF24898327DE11C8E" "download" "F739A2C0E5D2D2C32D59D928096F5438" } } } "1419651" { "config" { "oslist" "windows" "osarch" "64" "language" "turkish" } "manifests" { "public" { "gid" "258288498317492183" "size" "12801513" "download" "11079472" } } "encryptedmanifests" { "agerating" { "gid" "F4C54AEBA336DCFD684908DD9AF14507" "size" "8FBC6F1A11ED0C0C2AEFC8E1E1FBC411" "download" "16A55898264F1DD785AA6AE7843FCE14" } "baseline" { "gid" "C4AF7AA4E5A37A50DEAEE3D754045CB3" "size" "C6BBDA7CDD03670590E404307BA5769E" "download" "4D9E3FB996CA71216B8F0C58449DA49D" } "ch_main" { "gid" "AD4108AF3F45A1FEB2187454AC10896D" "size" "9F5B63BBAB38F157B20DA19EC242A6D0" "download" "FE2EA40BE7C9FF279E2244BDCD1BC012" } "ch_rc" { "gid" "A337EF3B6BA7FA0EC7AC1D5D67E46CAD" "size" "33D330D1B0D480FD5E56AF244868BEAF" "download" "49F9E678EFD7DCBB7112EAEB91D8A8AD" } "compat" { "gid" "F12EC40E99A3C451C9787A861BC92F97" "size" "DABB5819796CDF95241AEEF09C62CE69" "download" "0F8507869BA241EBD112F280A9191C2E" } "dlss" { "gid" "148571538C3DDA112722D360A75EFD18" "size" "BFF4F745724C0E6EB317257DED9C0C05" "download" "86C9A181EF44C43667CED3C604E4CCC5" } "mac_test1" { "gid" "D6FDE3FBCC8D8B4AE08ECF65C2B15A50" "size" "8979E8EEFF7A307BB3D9D47DCB3A863B" "download" "B9478A3003EDC4CE38450B19A54CB688" } "mac_test2" { "gid" "3AC0BA9D28C0DF747F5956453FB8C5A5" "size" "451EBF982E7546235185C1B4B392F6E7" "download" "3E7D6E55A1F670269695A2A7D04C41EC" } "mac_test3" { "gid" "485029673CFE6EEAC531090D17CD317C" "size" "836EE3B256B51F5851E73438D47BDC2D" "download" "828CA4E869C15DF9CA111161D715E435" } "playtesting" { "gid" "39E3B36D2F643C68C174743217DE3D7A" "size" "6326C18F3672327CCF087937CD1C9890" "download" "0324665F021318CE0EC78DAE57476140" } "pt_bcn" { "gid" "2061F7337DD5EA5A91D64EA6824A24F2" "size" "FE5BE3D351FA725075A66735D0FC8819" "download" "27CEE998B339762E37AC4E496039C950" } "pt_dub" { "gid" "0695A4D0E87A11735440BFBFFC885D91" "size" "B99E200D3540778AA74CEFD249229CCA" "download" "068BDA272BD5E8270D77545C183701A8" } "pt_gf" { "gid" "70F9FF37FB52564241C03EABF19987BE" "size" "9005EA7FD31BC6CF1F62267B1A3E82DA" "download" "F126EBACDF23032E5E4C2AE776B4BB28" } "pt_gnt" { "gid" "4B4F91FBB2CA9114B7CAA2C99366DEAC" "size" "6366889DDF6A8B32354437928DAF0D12" "download" "69993829AA10FA36E6947F425E12BEFD" } "pt_kl" { "gid" "E48B0F4EB6132D23AAA2018864049DB0" "size" "CCF28A5CFCAE8531C09188FF73A1592D" "download" "725830F1FD37D313F8970C92181024CC" } "pt_qbc" { "gid" "100F5B02A600A98C77C4AB2EC2EEA781" "size" "6D5008FB48E1515E7AF1036C7FD217B1" "download" "3CBCCDE6DB134D6EF67E49C6463147FC" } "qaprio" { "gid" "04ED0573417344230AB67DBE1AA90F07" "size" "296A89C272BFEB44D76C3DD3ED1527A7" "download" "D2F4410847072D0A5359E06CF7194297" } "release" { "gid" "30C796477911796B0FB09935DE125EE2" "size" "3B36FB1B77559B23F96C95F8676E970F" "download" "A96C0F17649D01DE83601D66DDAD10E6" } "release_hf1" { "gid" "2F2B4A7676DB089BB3B65439C7D7CF04" "size" "6572D75E50C687D2159BFDFDC1D137EA" "download" "210EBA6625AC218CE18EB4C8203F5B33" } "release_hf2" { "gid" "9F44511B4E2B344B79FCDEA99AB3806B" "size" "190FFAACA4390B926B7CAECC4747B798" "download" "B2BC8906108A8A23AA8F5036D9B914A8" } "release_hf2.1" { "gid" "EDBEC9D03EBDC989CC91A285253E6CBC" "size" "84899201C261944867AFE8CF8D494FED" "download" "DEF5167A0B5B854B200DDEE022F3E988" } "release_hf3" { "gid" "74E78F403DCC46A8F98C70D7D2764A52" "size" "0E25D22B9F081F05A6C7D46FD772DED6" "download" "9C57CC32F21C92A311B6F70BC97F02DE" } "release_hf4" { "gid" "ACBA5CA4C62ACB1D0603991812BD8EB0" "size" "B3EF412EDE04B08871A3E4F4BCD8A6F6" "download" "415E794A9A2FD394D98D55C93C26DDFB" } "release_patch1" { "gid" "848DE87F9512D9AEBEC58E506AB83DF8" "size" "53659AEBE5757AFFD81EE94D41B463AE" "download" "A69B0CC2BC41949608A0C431D86ABC03" } "release_patch2" { "gid" "0925ACC16927136EF658A593785002BA" "size" "F5B436E7753136F8B55863871971716C" "download" "3A49EBD5B0E58B9DFE76C9CDBA9CCA8D" } "release_patch3" { "gid" "70C25DACA06824A05C00C00311784078" "size" "11BD922C682A5149D03960EEC25B6C8A" "download" "E293FEAC13CF78EFA8C8C7DBDBA2B9A1" } "release_patch3_hf1" { "gid" "BA9738E1E06F672274000A0DE40C92C3" "size" "E33C03DBD6E19AE22CA8DDA6190F5542" "download" "6A0685E491594388ACEC68FBD4CBC5E4" } "release_patch3_hf2" { "gid" "DD2FC5424FE948DD58C86F6DFA5C3D23" "size" "C26481311FBC932CFD19AFC22773BB3D" "download" "BE63E6765C5E8D07B3FA6CE053818D5A" } "release_patch3_hf3" { "gid" "E9CB344067F44D490DF73EAB0F8FDFEE" "size" "E8BCAB8DFCF8808D804FC53FFB0FB445" "download" "D1A5579939C5779AC889B13E1618F58D" } "release_patch4" { "gid" "82FC3CD3A3DD5BE81F64DFA01262722C" "size" "68602EE09003D7C9DA7DD16197ED5B8E" "download" "BDFC15941396AE9DF9DF62C8FF91E4B9" } "summer2020_loca" { "gid" "9610938A4A6AD0918E2EA8C511E1930B" "size" "532D70D88D7DFE90BBAC6E2D416F8671" "download" "D62A81085736B05100F4F9A6EE172B7D" } "temp" { "gid" "0939B1439341187C9BAC3B5C2895BAB4" "size" "36BB2A996D89CD427E15B8676AE92CD6" "download" "15576BA256C39226CA55D716DEA60055" } "testbranch" { "gid" "0CF7183DE3B16C690269612025BD0375" "size" "DC426966D7EE8B2C644A2826EF616ADB" "download" "D95B952E5F114C7886B9328A22350760" } } } "1419652" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "1546445398978025522" "size" "193179230" "download" "56474960" } } "encryptedmanifests" { "agerating" { "gid" "99A0335D5123820DCB8DDE21D4DE24B8" "size" "1CD3E979A174C54313DF98FAB8E1E4EE" "download" "3EFFF7051FA642F4DBCE450C62D921E0" } "baseline" { "gid" "ED83FB5DF9D5984D4E9374F52771CCA2" "size" "A21C2A16C214198AAB32E69D42E46021" "download" "6540451619FBC68D7B130B2691FD19AA" } "ch_main" { "gid" "2452EFBC66757FB0451DCED314F90B10" "size" "63D4A8B07EC3E5D7DEBEA78C779F52D5" "download" "E8C72204BBCD35B2D83F5D6AB7120445" } "ch_rc" { "gid" "6F3C27F42D4DAAA6515B9E8DEC3AF332" "size" "8D805F80F9244A9EB0D70569F280C757" "download" "5D078CC5C72540B54C1B3D484293FD7A" } "compat" { "gid" "8C53915C0AE2FF91AE13B633E7AF2A65" "size" "21CD472305B06FF6575A1FAD7D4C61E2" "download" "B8C4F8805620BBB952AC7556BCE7072D" } "dlss" { "gid" "AB68A9E4493CECA7EE149EB0A0DDC31C" "size" "40136BF3171CC4941BF4A563A730DC84" "download" "E1EBF1E0607CC01356870359616F0041" } "mac_test1" { "gid" "8C82B9635819D4AC9ECDB0C64847830B" "size" "F7A856F2688927AC05CE448E29006206" "download" "D3619A36E000BF89CC80A2A4DC36F3EB" } "mac_test2" { "gid" "D5FD5E43B3F44525577F3E0FB6520177" "size" "5A18212AC18942167EFFDED1B3272426" "download" "22A34814870C98FB6A27C7364B2351CD" } "mac_test3" { "gid" "D27B523FE0CE82BACD4FB80767D3A2EC" "size" "B4BAEE865727B360483A92C487E3EAE3" "download" "84DADA68E2161C39B0CD9026F059BE66" } "playtesting" { "gid" "4AA3FCA9D28F29C4CFAD882D76766B5C" "size" "D1EC992595F693500D5B19949AE359AC" "download" "9D0641DF4493A851CFFF32EA67D2AB74" } "pt_bcn" { "gid" "ECB5286A4E4B6E35B8195DB213297173" "size" "8D02C5133CFA61E1D8417BD16AFB7A5A" "download" "F9F28AD7DB1320BC17C062ED2F5B5C43" } "pt_dub" { "gid" "0471DDA622FB1DD93D6CE7DA0CFE7879" "size" "6A50FB48A937C2B82FBA1816B1D878AA" "download" "AF63C9E0F9563D16F4CEB5F73DBC2428" } "pt_gf" { "gid" "D71635820C917B9913E38DA6B4BA3554" "size" "A965DCCD2E6B0D8FE1361B712F147F9E" "download" "E9D5E8E02465ECDAD7767898DE59191B" } "pt_gnt" { "gid" "0F6E808F009E9908D1197B1BCA76A833" "size" "C90640B3E58FA1CE88350368E4820815" "download" "A15900E9CD0392CEE173222C512007A4" } "pt_kl" { "gid" "AEE88B17C3A32519C81CE9E5C5918CF9" "size" "0C2E7029C41F744A67E3E7BC962BC75D" "download" "63F68A7E6427E6D256FC2322500C0419" } "pt_qbc" { "gid" "4F5628F0CE62799048DF6BA836CA640C" "size" "9E302454C0F04D5B1ABF2A0BD34BBC14" "download" "616230813146D1447B71875360218D11" } "qaprio" { "gid" "514AE2D403F76B603D28A5D45CB937BC" "size" "77FB81F305B050F3BF9975EEA47765B8" "download" "D64CC7DC5CFEF8F139706EA52516F64A" } "release" { "gid" "0855F8987D1DDCA7FD30BC9CCA45E4CE" "size" "36FDD01326EE53D5967CBDB14CFE19C2" "download" "748B4AE37BA29DFF491A4DEAABA2BF53" } "release_hf1" { "gid" "61AB5EB03AF63841DE0361CA058CA0FD" "size" "EA83438D086132624B2FA07D552F7866" "download" "79E26D627C91254FE03949081F15D1C6" } "release_hf2" { "gid" "3812612F4C6B6B8CB84332ACAA8F5E07" "size" "1433D8105971FD85D895C65E3DB6DA9C" "download" "F4032A77F36BFBD12D1314D11423378F" } "release_hf2.1" { "gid" "C586729C6C3BD55CB88D72761AF11080" "size" "794B7A4F4739BD5437E61BFD56FD0638" "download" "984BE99EE201C8FADE82F19AF2E2E394" } "release_hf3" { "gid" "024B91654C4C1245100CA6B2710FA7A8" "size" "4A96DFA8D5FDAEFCFF1B3BEFC66C4068" "download" "7B54D8EB4D204B34ACE94B7019EDAEC9" } "release_hf4" { "gid" "F4F1C1AE475CB7548DBB561240BA3688" "size" "779B914ECACC84DA5701643CDC48D8DF" "download" "C442DD0C2BC5F386E64992C61B5106A3" } "release_patch1" { "gid" "F827FBE9F819AFBF3C1E17D3478C3B46" "size" "FD2A3C99CD81FD3B61B3BA2134C5E7B0" "download" "62AA82B0A7DD30BEFC912E987C68E841" } "release_patch2" { "gid" "91F64283C41DC22CB0DAB6958AE8B27A" "size" "CEB03FC2F3AE6D3302EC31727358254D" "download" "961293F65EF05EFDC80F400B2DFEC523" } "release_patch3" { "gid" "7462C4697E1CBC5D577D24D54C65E0AF" "size" "518E921AFEB115C52D45BEA258E26599" "download" "CDF540BAFC5FD4233FDCC61DB441E405" } "release_patch3_hf1" { "gid" "9DF2F7AD2A5E52919A2BDDC703C1A1D3" "size" "7E9C3EFE678B2FAA43691194B2628D70" "download" "3B5A348126AE6EABA013C3BF28EA132C" } "release_patch3_hf2" { "gid" "6F970C1E281D4421E1531D576B681A45" "size" "9DAE798E2D9A5AB3E366DA9ABD31C0C9" "download" "B7671F8670F8E385233FF0AF95828494" } "release_patch3_hf3" { "gid" "9B2FF860139A89887FBE71B6F9C21DD6" "size" "090ACE9E51EBB7A2E6BAD2D213ED09F9" "download" "AD5E69088FACCF714A9442A70419856D" } "release_patch4" { "gid" "5510AB8032872C7B77060F616BFC6D64" "size" "A6D7D3F7EC8F55F7C58119363E8A8F28" "download" "20331E39A0C8280601841015CC3EEE2B" } "summer2020_loca" { "gid" "79A72E7CB00F5E39C6539F796661796A" "size" "23DA23D4DAC8D5CAE8735440CB65B551" "download" "7F736E8C9B1CC8D3D7C757048DCD08A7" } "temp" { "gid" "CFCD72A544517C5FF18956F5E7BC292B" "size" "F42C37A3EAFA253F7AC1B463AE90BA85" "download" "218C9970A5E3A531B14EAFF3F60D4143" } "testbranch" { "gid" "BF7F3F20FD1ACE1472562B4C24D3B237" "size" "1215BAE454FC9357F373661A4A28D014" "download" "870F46CF62A9E830219D4C188CBD15E5" } } } "1419653" { "config" { "oslist" "windows" } "manifests" { "public" { "gid" "2295385710444616309" "size" "289429375" "download" "103503280" } } "encryptedmanifests" { "agerating" { "gid" "D36C8253720E3EB64E1A9DA44A845B2E" "size" "19530FCB0000A15A880673807EBE0BD3" "download" "C4CA4E66259DDD16A99EC3015171C908" } "baseline" { "gid" "FB52C9B3D3928F405194ADCB381443C6" "size" "619C38A33F0815623F62DC4DC38F78AA" "download" "D0C17CA671A987939FBBDAD51783CE3C" } "ch_main" { "gid" "7CC53D4921ACDF936CFE0FED416E5C98" "size" "C0F129C6C4F77AB18AB0E28CCBAC3F5A" "download" "FDA6766459BCCB22C5BAF0B189BFEAE7" } "ch_rc" { "gid" "D33F3DF236385B6B12149AE243ED79E0" "size" "35CA92A796AD341C7D82784AC69AF5E7" "download" "9922084AFE9C30E3FF6A1FE131450C00" } "compat" { "gid" "C67A628047A470C6F47A9509ED9C9FFE" "size" "386B3E5F0DAAD0E5A447D094DD89F9BF" "download" "E8C8B87BF54FC2A965D7996E1F79AD95" } "dlss" { "gid" "1EBEF7179C4D87FFC170F166C9E5AD08" "size" "789F09C2A1CE052ED4272281826A682C" "download" "248FC0B5C20AC7610D2597BF75CB59BE" } "mac_test1" { "gid" "D66ED679F45256423B0DC43968A70EC1" "size" "3872D877D8630BFFCD553F66FC087807" "download" "EFD3E5F07A2F3B7CB05CBBC6E4FE6361" } "mac_test2" { "gid" "906E075C852F28136FFAB572BCC6906D" "size" "09BFC354B21D7272B9864DA768AF0014" "download" "637E37D8A8FC12717CABB64D96450975" } "mac_test3" { "gid" "72B9BFF1D9B67407B662B9C373F0BA82" "size" "3816CADEB26DA627E28B23B8B0F400AC" "download" "524D7644F750FB3280529FC9BB66C589" } "playtesting" { "gid" "947E97E3BAD423F587C156D090A4F710" "size" "7DD21E78ABBEC1D734AEA94C254BC7F2" "download" "6FA76E20CB928D7E67EFE20922E748B5" } "pt_bcn" { "gid" "C985579A9A2268221E7B0B4D006908E6" "size" "CFE7CBE2E637EC445FE817E063BCA26A" "download" "85145FEC6BE40C53D297CDA476250B73" } "pt_dub" { "gid" "C117D5555194226644C007ED63DFF583" "size" "2A8BDB59CA0CEDEC4872A91515E26F2E" "download" "8C7F8C9DB00A9DA5EF5A52EF06DC0112" } "pt_gf" { "gid" "59880E02D33CB3C5D4F880F0A9373B85" "size" "2AC4C2AEC480278C9604332B4F664913" "download" "649C69E36C498E9A496E18C69CAA50C3" } "pt_gnt" { "gid" "6247FE020DA037FA21492B5910F6F733" "size" "BDF1DC2806FF5F71F655C05DD4B892CA" "download" "20A3A27D17F16079CD82AA2C797BC641" } "pt_kl" { "gid" "E8D2F6245A1036D418A1CEF63EEA4FEB" "size" "B4078E864ADA485C4365E7EAD1A74A35" "download" "68C08E0605D5FA216D5BB9F973F9350F" } "pt_qbc" { "gid" "0F8C0F6A9CD721FD961D174217B6C056" "size" "284FCC4E8F54FB3A31FFADFF515CC570" "download" "172519EB4E50706CC7DDEE035FB33B38" } "qaprio" { "gid" "7FDE95D4CFE69B334DEB927F26B7CE05" "size" "9E1E6081CEB87C9E5816686C204EAAC9" "download" "AB6946A6FF08FAE87D94E5F463438519" } "release" { "gid" "F18DC777E65B4DE383884B7AAE4D96B9" "size" "E976AD8608D14856D52DC68C0F9124D9" "download" "54E7D879E32E83F9AE91487EAAF3F80B" } "release_hf1" { "gid" "954C0EE7A1277DAEB8E244C0C6985E96" "size" "30F5CEAC85039A9F96AB2D68D0399B10" "download" "EC55214FD299A20C25E97100B5AB43C3" } "release_hf2" { "gid" "14DA3351071C8673F0B3FCF45FC319A6" "size" "8CF444D2617907747B0CBE8BDE6AABA8" "download" "66F31227B130A5CA1E72D240CA9DC88C" } "release_hf2.1" { "gid" "C230E33B5A8173A3A537C1778C35E766" "size" "95502C15EBFCBEB2090C91EB17D02B80" "download" "EA283903245CA3F108ABB9BE5691ED20" } "release_hf3" { "gid" "C6B62FED046376687BC5DAD4946EB6EA" "size" "1A8BE299AF732F74424B2CCF3388C931" "download" "2DCA71213EF615DAEDADD5D2E2F1918E" } "release_hf4" { "gid" "19D26AEF4EB016BF9DBF3C72FE6489DA" "size" "F2C2FC04DA558FECF6E4E0A4CA6F3F4D" "download" "8FC308DF9AFA9B758F7EFFCDFD96B6A6" } "release_patch1" { "gid" "054A384B32F6D6E2F920DB00E0F87CF2" "size" "5AF7A14AC8D90E48909033DDA25F6902" "download" "1BBC3D8BCC3B6CDA22F90E838FA25F9E" } "release_patch2" { "gid" "D749F2354535813DDB63650CB753E195" "size" "CB87D2F2814653816FBFF49EBE652851" "download" "0549A78712AC7AE8938DA4885317280A" } "release_patch3" { "gid" "DB8409630E22DC8ECD0A061B4C80E79D" "size" "604790F88D9C5094E5DE01C60C530344" "download" "79446F98AB68A682CB0FB826A6CACE2F" } "release_patch3_hf1" { "gid" "1E4D468EB5F540FCE648924CA55C134E" "size" "2098F358A0632B107ECB06C11BD40BD5" "download" "252A1520042A1EA02ACE84EF13C2F17F" } "release_patch3_hf2" { "gid" "88E59645B7BD6261EE9D58840D3B647A" "size" "A082ED20924AE2A8EE91326622556969" "download" "EE823FC44515191A7160412375728997" } "release_patch3_hf3" { "gid" "85D0A9A9CC4E44B375CBD7073EF3C81C" "size" "F8D02EE8A757501AF1B645031A1E41E0" "download" "BFDB5FFC1DC27FC141E5A061D75F6EE2" } "release_patch4" { "gid" "BE3EDAC57BC6013EBE6A0942F32FCB5F" "size" "7EC61C38CA08EDDE192DD6844899A324" "download" "E3F30C456AB11EA98230291B11D327F5" } "summer2020_loca" { "gid" "220D139C78B82EC376786ED7C728D884" "size" "B66195855973FDC4396C470D4F567E78" "download" "FB60944A6C7C7F4ED02024989F7C7B33" } "temp" { "gid" "4DE7AB71FE113DC0F2731792D22FA2FA" "size" "33F1714124265D84F17BFEB119ED06F7" "download" "7ADDCF5D45FA6F86578323CA8A76645A" } "testbranch" { "gid" "B6A016620635C61C0F382DA0E53EB049" "size" "2C78D0415DA6CF9057FBA6D05A141A26" "download" "4E1BDAF1871F04AF5ED6708FE9CF595E" } } } "1419654" { } "1419655" { "config" { "oslist" "windows" } } "1419656" { } "1419657" { "config" { "language" "turkish" "oslist" "macos" } "manifests" { "public" { "gid" "4548607990756240099" "size" "573" "download" "304" } } "encryptedmanifests" { "agerating" { "gid" "23AE7F42FB1F0481289B73E0A444FD1F" "size" "956310251BD8F86CD14F5B1FDA2176B1" "download" "DD0D49CD8399B55DCD2F02C8A5E601D0" } "ch_main" { "gid" "14526FEB214939C98064DEFDF32CE125" "size" "CC8A7E0745BE33FFD23C5552498935FD" "download" "7E5059F84C48747478CF38EB9A3D45E8" } "ch_rc" { "gid" "D4A8F3CC8C9D6FEF16A8AABCFFFFE2E5" "size" "F512995CC77621F8930AC3EE39D53495" "download" "D716BAE385BEED3B227198F3EFBF5529" } "compat" { "gid" "9F215FE30668C2BDCB2055AB622DBA33" "size" "2133A2FF3D1D0F46025AF53488EE5399" "download" "CB1190F819EBD1D32C358EFDF908ED9C" } "dlss" { "gid" "1669276F26BE81D1A79F26595FD3F4F4" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "34749D931203B73C9162CCC9E9E4EE5F" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "71B0458EC25F17128A4396476D5359B9" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "4A2483CF497DB70C2A26B49257FE3A90" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "A7BB73F008285BA4872050853BA7902A" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "pt_bcn" { "gid" "F915B887CBE0828FAA3AC4CA8AAAE4FF" "size" "3662DB18DCB6ED5FA08CB9249CA9B0C2" "download" "795211E3F56F83A65327F9012BFC9178" } "pt_dub" { "gid" "F62B13FD120F78D022FC30082D7C6116" "size" "87F7BEF78BD29B0F591DF32B7A489842" "download" "1893F1231416D9CD1A3EC337EEEFF728" } "pt_gf" { "gid" "7EC202B1F7313AF360E94319E0263EDE" "size" "5D031AEE8075CDA598E002896185D996" "download" "823F40850F40A5C17E7B2BF4527A4CEF" } "pt_gnt" { "gid" "3531C0432B689322DE4402A69C2BD2A9" "size" "F8846A7E7FF7D38033F58EC820ADC4DE" "download" "DD962211176B65B8E9532F6312ED22BD" } "pt_kl" { "gid" "A3AC26BE4FF1BD6DC453431EB8C12D99" "size" "DCEB8449BB7C70B8822CE665C19503E8" "download" "247709ADE4CED14A0F5C305505B31C96" } "pt_qbc" { "gid" "5FB92FA46FE857C66C095C6F794A3729" "size" "F876BFD6E2AC5D21F308F86F1ABD8459" "download" "F415F0AC40AF4569E9383E22DF229010" } "qaprio" { "gid" "BFA33F20093E051E887D41C8E55C2C83" "size" "0B8C375780B22BC4AED41957FD0D225E" "download" "8CF82C0E4871E15BAE75D0338E01279A" } "release" { "gid" "371CFD457542654FF438A5ED02E5FD76" "size" "18803C7ED2F60F9099A1F0A845D8FA78" "download" "A80E99E4A39BA5C2271734952B57EEEF" } "release_hf1" { "gid" "4796BA336B743342528FE10F697F1405" "size" "A802D1053E20EEA74D73EE4B16392286" "download" "878DC27112B77329564404DCF2E0250E" } "release_hf2" { "gid" "718D746ACEEB5659549BC20156EBF66D" "size" "8F29B29B2ADE8664DDF52A344A65D885" "download" "79E806C8907AADCF14855319D3910C94" } "release_hf2.1" { "gid" "58A1D5B8E146EA4A3F45B046ED9ADA1E" "size" "6453935201A73437548FE003204603C5" "download" "6E183AB0DF001E5DEA15DE2FEC9B71F9" } "release_hf3" { "gid" "A9B4D0D684ACE64741481919638C75D2" "size" "9DAB359428C850D5F3C3B11059705B5E" "download" "DA863DADB2975AC0049C624CBFD7CF5C" } "release_hf4" { "gid" "0F8E44C163AA43546527373BBE795F18" "size" "191AE0A0DAF7215F3522828FC1F72A2B" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch1" { "gid" "EC8DB686E41D76719000B173CD7B01B2" "size" "70205BECC334EF0A4752F38FE8851920" "download" "E288B6FE38833E1D94C3660872FD03CF" } "release_patch2" { "gid" "6049B7901477D9D87365CCA00DDDE9A3" "size" "35D75A7977623AB42AC6981579A56514" "download" "490B029397D1B39CE2284869D788C56B" } "release_patch3" { "gid" "A126C6231495CA699B5AD50A89AE8021" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "745F81BE33BBCBE868999011046478BD" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "20AF8A2B1E04FEEB4AE98A4DC4699C08" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "BF2F65C9D2FAC07E60C04E961689E98C" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "41E1C8FABB07D449E5387BF51CC5315F" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } "temp" { "gid" "EEA7B925881ACDF6AEEA061AF16A97D6" "size" "11A16AB01E7DD4AAB4BB017BD0DAFDFB" "download" "9C58E3859594678A6EBBD5D5251DEDE2" } "testbranch" { "gid" "89BC64D9F2B6430C9DC2058256057474" "size" "DF79B95C54C910D2E663D6779EC92D55" "download" "D1A86BAFDF28573819F32AFC8FBDC7E9" } } } "1419658" { "config" { "oslist" "windows" "language" "brazilian" } "manifests" { "public" { "gid" "7695453371579602141" "size" "13302600" "download" "11481328" } } "encryptedmanifests" { "agerating" { "gid" "604EA01FE818FEF8D94A2561385EB09F" "size" "4C639970689E036238CAD7E35645EDEE" "download" "79853CD8EF6FD898257B692401A881BB" } "baseline" { "gid" "570125CB43C2DD9F6F35AC1D66BBB7AB" "size" "00D59BC16E572F1D0710997D20DB6574" "download" "C814E0F0F85E31395C2388980151252B" } "ch_main" { "gid" "0EE6B6B502B2557B3832C88D11FEB1C2" "size" "220E9A8C2A279E9CE7E46985814275E0" "download" "CC6DFA70F9FE1ABE152AD9D1BCA113B3" } "ch_rc" { "gid" "5F3E3EBF6058D5DF5F2CCA85A47A5990" "size" "8236D1C93297FE43D6C94DA297FE6D78" "download" "9D955AFC4AB0BC7CDFBC7292A8572527" } "compat" { "gid" "877D181CC8562918F40EF365D8A9204E" "size" "06B3B3356C33A900A0648A9EC75801FC" "download" "9CD5C287451A60AE41232E9BCC22D9AD" } "dlss" { "gid" "4EE5D1CE308B4003D29730724DBA3D60" "size" "1FE4C4C1F1281029D5E7608F84458141" "download" "CE88E22DC00FBB2D8671576C74B3BD4E" } "mac_test1" { "gid" "4D3FBE2DCEDED9F2064877F571CE186C" "size" "D0CF63CA894FE8048B4445CF6213073B" "download" "9D22C38C787C59F4EC3329909FA21889" } "mac_test2" { "gid" "96D4102068801714B92AA685189FD237" "size" "8E6408219AF3FAA54B7766ED8BCD469F" "download" "D2F9246C81FB113A6A425F1EBF04B01B" } "mac_test3" { "gid" "60F8418E6DA7D5375A787CA03A1C7C8B" "size" "33A33ECABE0E02771A8EE5AC3A5BB27F" "download" "54B0B62FCB336C018CA2864B2F63A1EF" } "playtesting" { "gid" "12EDFDB2FAEB0A018C016A9F48CD48CD" "size" "78E46C276CF37AD294B5FF40A4EA88BC" "download" "E5A219EBC17F8088DDC191ACC45CC572" } "pt_bcn" { "gid" "FC007FA160047C2BE94AEF0C9660CB1A" "size" "5355550A831974721CC32187984DC874" "download" "ACA97F2316158BC3E5EBAEB16FA819D9" } "pt_dub" { "gid" "ED789FA07A4B849A06A37ABB704F825D" "size" "2882C22F0B5E0E3A7F3BBBAEE5275B91" "download" "DE5462DB56E3A5792F847B00E1FED49D" } "pt_gf" { "gid" "45F1A9846A8A59C588452A01EEFA080D" "size" "EA76841411EB5188951D0243C5B3760C" "download" "075B2C9A4B7ECF11F3238140AA4C5EC4" } "pt_gnt" { "gid" "9F340D70F30304945CC719379F6130AC" "size" "613C96EA9EB3F2398662115F2E3B8D87" "download" "0E8D36EB852F4A485E17E55437B1232B" } "pt_kl" { "gid" "68A1C0BDB9B88ED39CC0F3DF97072D47" "size" "E8E4057243187B19CFA0142D78A41573" "download" "D70CD0005D2EF52AC5ED62A932726AEC" } "pt_qbc" { "gid" "DC6DCE7A025259B419881C66D5E31F20" "size" "5711BDF57BE858F836B0262AC3441D91" "download" "361466391D8D2E97E2E303C008F83699" } "qaprio" { "gid" "F20F75E4D79C5AFB016CCDC357019B7D" "size" "E4EF85759891150724163AE8F26A0026" "download" "33C1848E0FFD40C408E2DCF67778DC4B" } "release" { "gid" "449D2EE8CD1B7CF1773B2961570286F2" "size" "29B20F3CF3BA8C9E13258C7B0C639BF8" "download" "6DD0EA0CBE113A89B50A360F86A1F0F9" } "release_hf1" { "gid" "477B2702F015601B5DA1671669D892BF" "size" "8AD27324D777D20051A51791582E8221" "download" "20A3B4E0B327DEA70510703C31DE4A54" } "release_hf2" { "gid" "C51576D0B33894017CD18E099DE2DEA6" "size" "94987B301AFB5EFF6133FBE10EBA3926" "download" "AC8094294605E4ECCA17F3BF977543FA" } "release_hf2.1" { "gid" "75D5F1617DF0295B7AA08F0072E53A39" "size" "BAEDB67B44F92BFD5EFC01A9EC1E2D6E" "download" "86BB92B5BEF846C768B6948F4EC531E9" } "release_hf3" { "gid" "62C4F4887F1141EDEA357CBD1F9DFFD2" "size" "8F4BD8153B450E004084B7895C765D56" "download" "994A9A804623103B19E88FE8A1F16BBB" } "release_hf4" { "gid" "82EA6C10517F8681645B13F3119338FE" "size" "C5F436E14E7DCC0CA92017E7EB18D57D" "download" "B47040DA489B358D7A28B49A67299EE2" } "release_patch1" { "gid" "2D9E11AA3DB375C8373473E27092C073" "size" "19B06EB3C4CF67A81C56747B2C479609" "download" "C99E13F5D1AF00785CA31367547E1335" } "release_patch2" { "gid" "B464660E847B08CBD8ADB7B4DAF71463" "size" "A95EDB0B273DA07A0B82A1357ABD122A" "download" "D2B9AD4BBBA86CCE3A827568F40EE8BA" } "release_patch3" { "gid" "E5F49755B59024DB0A059F961C067245" "size" "9636E43CEB83B71F2599E784F7E0CB86" "download" "0832C603BAB7C1C3A4D71A3A64BAA427" } "release_patch3_hf1" { "gid" "23B2FAE96474F58B44AB5D3185BEEDC1" "size" "ECDF15D3C028355ED8B399FEED772CCA" "download" "F086D62E53FDB7ECCB349B93086E8E1B" } "release_patch3_hf2" { "gid" "F7DF216215B6C64BCC077519465E3531" "size" "07A4FB3B40B125EA1279293D6FD8606A" "download" "F17AF0DD5BA580D94B15C66BE439E81F" } "release_patch3_hf3" { "gid" "3BA5FE891CFA59A17724FC49B671BEE3" "size" "6CBD4C19A61CFE111F0CAED51B315330" "download" "7CA96F760157FB087714A7D2D3E5ADA4" } "release_patch4" { "gid" "DAA7DAD51447AA3D79473023B1597D8D" "size" "62EC08E4999BD193E8CE4FE2B2F2AA97" "download" "CA36EC9D0F2C68E9F3200F6F610E2995" } "summer2020_loca" { "gid" "F75CAF317CB848BF6A3127C44443BF8B" "size" "456ECC3DD656A5B8AB9D66ABAF4092DF" "download" "3E644273D4387CCC94708D27DFC00BD2" } "temp" { "gid" "DB8541B9F8A5DA8F9DBDCD29F2C95A6E" "size" "FC797F4D6B2BC5634E9942293F9A45BB" "download" "28928080134698080D453F722F854DD3" } "testbranch" { "gid" "A32D410F45209C89EB0358F224E6A646" "size" "514A2886CF1A7267393B93BE145801FC" "download" "6956168037619CC17100A60B7854A7DE" } } } "1419668" { "config" { "oslist" "windows" "osarch" "64" } "manifests" { } "encryptedmanifests" { "summer2020_loca" { "gid" "C76E491677B73322F58AEB91FF495BE9" "size" "BE3F48A9CC6F83A706EDACBC540D2536" "download" "A57DC43D18C3A62A53EF7424483E02BB" } } } "1419669" { "config" { "oslist" "windows" "osarch" "64" } "manifests" { } "encryptedmanifests" { "summer2020_loca" { "gid" "6D6F100C3A330D51947AEEE45E234A5C" "size" "CEB639FD8BBB1C4BBBEC680732C39A3E" "download" "B84ECDBC54967A7C0506769C9962CA16" } } } "2330350" { "config" { "oslist" "windows" "language" "ukrainian" } "manifests" { "public" { "gid" "3949282231580766817" "size" "15300662" "download" "13290560" } } "encryptedmanifests" { "baseline" { "gid" "4D22321F017F44D60D901DEBB310C9AF" "size" "32421880E3D020BDBC6E9764B0F82719" "download" "75058C6AF0B137344FC9DB473187760F" } "ch_main" { "gid" "9AE128E263E271309BADED30625BAF7B" "size" "A8E48E7423191F543F18BAB55E9D2C20" "download" "35BB8464AC26096EE9378DFE22005FE2" } "ch_rc" { "gid" "F72D6061AFEA821F6295CE9C3C58F4D8" "size" "9B08C0E1508B040A640C51A652A58D5C" "download" "3F6B7896DA4F841846C7BE33805ED6C3" } "compat" { "gid" "71083480395107734872FBB5CA31024D" "size" "175D6B49EE36362678E3947C31792839" "download" "7CDFC8C52AD47501D15E9ADE20F8128D" } "dlss" { "gid" "2AA4852D54B521751BFF1FF0149CB3FC" "size" "B5931A65D5300C41A258528529402146" "download" "0920E1A183A5C364BC74B26F7C1463C9" } "mac_test3" { "gid" "ABC26D7BD1CAE06E3BFC39BF34288A60" "size" "7CDAC13E62F855A9E4FCAB7EE78FF4BE" "download" "B7736A1D6E17439B2F8B5EB4D07AF2BB" } "playtesting" { "gid" "23B64D58D6F6BF73EDA39AE28A8257AE" "size" "38E3F84FADF760F3ECA64A66A70D60B4" "download" "CD29631C56EB5F4A1FCF771A185EAB78" } "qaprio" { "gid" "B57331849E8CDF9F5BD3AE114B19C756" "size" "1BF0D7A22C2B3A61CF3FAA8AB2CBA9E1" "download" "16AE352455DF11D1B52EC5B73F4E160E" } "release" { "gid" "90BB95C3CA1E33724166B9837F647318" "size" "026EAA68B3ED947EA1BE4DBE4E044637" "download" "D78D2331349420A8EB5E517BC56F1E78" } "release_hf1" { "gid" "DF2C289018202BE7CC2C4173B2E68E84" "size" "6D9F49030285CA51B0A66C449475AEEE" "download" "847DBD78B8D8E46168866A7E6900AD25" } "release_hf2" { "gid" "4C15D4C0D90E7312C806998651A49A68" "size" "83ED0C6B662810066EA990D54E2FB229" "download" "A8AA7F57716F46CBC776199D9F4A5029" } "release_hf2.1" { "gid" "43A95ED7FCC8F920E800AB45CDA280CC" "size" "EA2C354E7E356545401A20A677555DE3" "download" "58FA48C4CB8171DBB487199402422F88" } "release_hf3" { "gid" "9C0DF96915C7E881BA83C7042A82FBF6" "size" "B4080462F74B9AC8E0C5063543984DB8" "download" "5C05E50A4D0E43CF2DCB5CF9A19662EB" } "release_hf4" { "gid" "EFE3ADC036CBF59048C8CAA89F20A78B" "size" "800E8E2A65F212C2F25D6211B295B72D" "download" "A7F7DE2EB503A96EE6B659DBE5409C5D" } "release_patch1" { "gid" "47EC7F02F48820F2B70E6B82C68FD3F8" "size" "49D201D09D6EABD2799C059FC41ED375" "download" "5088AA4A65CA5AC05D154BCF8DC0A7DE" } "release_patch2" { "gid" "408B0D2EE8F60D5085B40D1CFFED7D89" "size" "7CE5693DA40DF9559CD396AC4F6902D3" "download" "00C31D9750C09F0F1A96003478FC4B68" } "release_patch3" { "gid" "25C0B580273AAA91D6C7858E64E7D92B" "size" "9C05F1C0EFB5FE26E0F497E57E59E956" "download" "6399E2C840045628B8C857D039DEA38E" } "release_patch3_hf1" { "gid" "1C542C5ABED4B6E0000E2680652C3550" "size" "E0FDFB3E01056D9F05B4F04DC5674AD6" "download" "25C1372F34BC9F021DDD5D2A2827382A" } "release_patch3_hf2" { "gid" "71D54CC21FDC59F5D602A9AA7A8B359B" "size" "CA46ECEEBBAF0B32F87F62BB28F0B7EB" "download" "86CBA22C677FACE661B6EBAF1BE80250" } "release_patch3_hf3" { "gid" "9FBCF2AC7B96BE6B7B0C3DF75673A7DE" "size" "439825E2168009FC7F1EED847A04AF85" "download" "9B601665A8BB47D0CCCB824B63F27D10" } "release_patch4" { "gid" "B08F51F19813AD6E67208549A899696B" "size" "A468090077BCEC05E72514FB0D12877C" "download" "AD749E5A6CF702A3F5AB24BAD8D144D2" } "summer2020_loca" { "gid" "F8AF68CDAA2B4E154F7A86E72A5BFFBD" "size" "5EF25810120590CB6F924BC4CB5E46B2" "download" "CC4E74560CD5739F2B9FC85E94CDA655" } "temp" { "gid" "CF7AC47687761227671783CA7DEE0F93" "size" "E849AD93F33FC9CFF2A8D197E2F1E73C" "download" "CDA578BB73AFD27AEA99825FA7C89A0E" } "testbranch" { "gid" "DEAD50C0E811AD0A6A8ABB57BA8D2900" "size" "D2572CCDF95B9D7CD735DB495DCA934F" "download" "3C09BB7F2D7965A5B33A8D6DFE70DCB6" } } } "2330351" { "config" { "oslist" "windows" "language" "latam" } "manifests" { "public" { "gid" "5778065934353567005" "size" "13503914" "download" "11623968" } } "encryptedmanifests" { "baseline" { "gid" "65D77C417E933A1C4E7ACCFB6D439A30" "size" "73B6A894B0335414DFC3A3C6A36DEED4" "download" "16E142FFE4E6C68580574628F68A6B8F" } "ch_main" { "gid" "2ED239D6C646207B3AA1E382F27B8D36" "size" "B2BF5791FC22DAC1A9CCBBC8BB428996" "download" "B44B88EB7E11C22006F6DBE53835E9A4" } "ch_rc" { "gid" "2C6B38713FAA810CA0B384A45B27403C" "size" "1AC7925E6926030C365CF2AD6CC0E24F" "download" "34B18D56B784880CEC81FC92360624E7" } "compat" { "gid" "99461657C30390C076E1024C18D210DD" "size" "5F0EFFD15B153F77E18D2F7BFABEEF93" "download" "06BB7C7874F67F6400B6DDE13587C948" } "dlss" { "gid" "92273093DB2655F6E176645D410125A6" "size" "8A548C5EF2D36914CA11EA674BFB7818" "download" "6DC58AF20F292A50400741783725924D" } "mac_test3" { "gid" "272AABED83F996DC4E177AE40E12E2CF" "size" "204238652E753D9557ABE13691A9A4D5" "download" "8F8FF29F12AEFC17565601DF38BD35A5" } "playtesting" { "gid" "3D15FC95B67D4F7DF7607BA73F768A00" "size" "D3027D8222CD8E598030D7ABBD02CBA1" "download" "83A4653A6653C68C57605D13720B8783" } "qaprio" { "gid" "36C7418C86AE4610DCB94492B3B0FBF1" "size" "84E01D33B7E272CF9BCBFE9E597FACB7" "download" "87E2FD2FC9FA60912F560F848536F38A" } "release" { "gid" "F03D636EE6A8541A45699093DBC6B596" "size" "DBC4E1A1D186999839BCC5123B62961E" "download" "0D325F9C3E00D8AF1AFE321975622E84" } "release_hf1" { "gid" "817BB38B716CD5F22589BED8BE2F3559" "size" "D5889D491D3408E284D9C1BE1853FEA1" "download" "9CB524D5301C3B19BD06B4B0718C70BC" } "release_hf2" { "gid" "49C8033662352FE7258AF41722BB6520" "size" "9C37CBD5E935E78D187B406673BD4CE3" "download" "1A07AF060A4795609004AAA6C9D3EF20" } "release_hf2.1" { "gid" "9AC8E45745D2E8C32FBEDF00DFB785A5" "size" "88531FFBC727126CD080289BA67DA2A7" "download" "7A5426C628BCEBEC0103930C559F7F2E" } "release_hf3" { "gid" "B0B43BF738B97906976EB7C57708870C" "size" "FAAB4D896EA617E8CA89D0754AAA709C" "download" "451312F1360AF83B226CE52BED6130A8" } "release_hf4" { "gid" "25AA4A4E8C19457CB4A971B8B183734E" "size" "DC7D0462ADC4E328466B961EE512D4DA" "download" "A7E1C750BE532218B27C91B55738A314" } "release_patch1" { "gid" "EF049F88AE1881F11B09088E4AD3950E" "size" "61359DCC20823402DAC73FEE2BDAC6B2" "download" "44E1B4794EC9A8F09FC6880C219511CC" } "release_patch2" { "gid" "EECBD562443ACD76B9C96A9D2AFB6FA3" "size" "B03C9781A21B5C16662D21C340995164" "download" "8B7BD2D2A0D9EAA5150592994BB69140" } "release_patch3" { "gid" "EC54C5B798B0CEBC893199A346D5EC81" "size" "00637772140280C5988E824F3E442FF6" "download" "6B50224805C1A503B1684570B95DFF5C" } "release_patch3_hf1" { "gid" "CF02D35D6AD5D8F3469614327D498730" "size" "B13BFA6065F67769420F67EC8E0431A8" "download" "C377314D2055BF94400053CC38996D71" } "release_patch3_hf2" { "gid" "A67B6C553A6A9CE39C7504229F6068E0" "size" "FCF05A1BA05F428AFAB8B656B0532B00" "download" "AA8C8F60114A53B752372F5F85954FEC" } "release_patch3_hf3" { "gid" "2A521DA2E39175822BFCF979D210DBFF" "size" "CBFD5D0513B178F0264BEB36CD9A9C1A" "download" "61A15C0BA57B58EF9EED0876FD427466" } "release_patch4" { "gid" "3D7D6F4BDC60BC3D47D14EBC99DE515F" "size" "A28A373F5AFE8A032D93260C13C41723" "download" "98B1A4E783147D35C54FFC037A232613" } "summer2020_loca" { "gid" "60AC427A885FF2CAE45B35EC27F9D49B" "size" "ACC4BAC865AB46A00B708E6A78BE274A" "download" "1F1A830F56E092F3976DFDBF3320F90E" } "temp" { "gid" "69794B2EFFDE039887952C15D6D8072A" "size" "92912759C4613D864D7FF23C272A8020" "download" "C1BDADD14B51F0C83E1CC71B5BD9B9C0" } "testbranch" { "gid" "2FACB861EB71F3070EA888BD4A2BA17C" "size" "CD84AB486A384B86764EDFDD3383AB8A" "download" "1CBAE254FD59A8D420D838FAC6F1926F" } } } "2378500" { "dlcappid" "2378500" "manifests" { "public" { "gid" "6453229909780803137" "size" "3700167797" "download" "2728905872" } } "encryptedmanifests" { "dlss" { "gid" "87A137B3897EF154F1396E2EE820CE72" "size" "3CB742D54B038C28DC5C48A51FF606FC" "download" "55C89ABA7E6E3349FFAB18ACD4B10BD4" } "mac_test3" { "gid" "2B0E69C7B2D09826928978178FB4E7A8" "size" "DF31735635ADB0718583E02DDA65B4C4" "download" "A4EA4BD36EA5979E2B0896062C36DF41" } "playtesting" { "gid" "50714D3D2A607DCB5D36EF6C8B14A306" "size" "E3B84FCDE2F6877265925C570062FB05" "download" "B0495D5A137409979474E598F1809847" } "qaprio" { "gid" "54E9BD1A9DA361F079A9F4FCCD9EBD21" "size" "B534D5DA084E54E34E1EA04712A758C4" "download" "542624D4053FF6C44FA8DAA941DB80F4" } "release" { "gid" "C5C8E641EF24E3A9EA35AB65556A42F8" "size" "B345A5544B97B16ED6838B9EFB4B7D93" "download" "22120C49CB480137980C1CDC85279094" } "release_hf1" { "gid" "A06DB7ABCFC4D19941A1373096CC8F93" "size" "2D9A7ADA84E315BB60FA1501A51D7412" "download" "83D06DD7D6A2EA62CC5A53ABC56ABB4B" } "release_hf2" { "gid" "2D02F6A8AF9762F6EB09BD7A819DA252" "size" "349B0EB62AC3EC1FEF1CB65A65443BFC" "download" "16EEAFB808D0536AA2E2F7E0D1DBC9D8" } "release_hf2.1" { "gid" "C39E28A750A327B7D426D8811DF20C69" "size" "58396F6374EE17416A45BD8DA0235C3B" "download" "84267211CAB9852CD80E5DAE34145240" } "release_hf3" { "gid" "BD82723FB32214274632B60D17A3F65E" "size" "56CE851FFEBF69401F5A979829DC64E0" "download" "DF3090D7FE56E9DFC238CBB6E3738E0E" } "release_hf4" { "gid" "F470D4A7B7ED096B754F9A0DD6C86427" "size" "9C5CDC3191B21B76F96D12987C7132D0" "download" "CD6C0469C7C97F7CF4D04704F70F9192" } "release_patch1" { "gid" "1A1D4C2BA7A87D65DE743BEDA05FC45A" "size" "B7C25623F0D9F4840F5F255C6F87813B" "download" "57956B679D8AC521D58088D7E8B554B3" } "release_patch2" { "gid" "C7CFB6EBBDF065582A39FD56FCDA82F3" "size" "C9056FE3F0EE1065C8C107E4DAC09E09" "download" "FBB07AB65D531A01C31E3B5B93D71E1C" } "release_patch3" { "gid" "C10E07DFAAB735164FFFADF8D0CDBD2C" "size" "4175E1CABDF8B5FE56E9308606B045B7" "download" "DB83BFD36A2C58D85FDCCECF39D87DC0" } "release_patch3_hf1" { "gid" "51342F40C4808D3255E2A006822960F9" "size" "7A54A4BCC2EBD672E45E2E100B9B609C" "download" "1BF92992EE189F671BE9B491189E117E" } "release_patch3_hf2" { "gid" "1B3CE0403B7C7D05A25CAC39C432E20C" "size" "F5984EC337626490B1E50705AA62691A" "download" "411068111F5EA257BBFA426F78D4B9F4" } "release_patch3_hf3" { "gid" "CEB63925894D3374A443C750ECAD3459" "size" "03ED88FF69F7FAA5ED7A549E727FEA94" "download" "9B47A9E50FAEB4DCA4DDB0E1965F166B" } "release_patch4" { "gid" "8F172D7015ADA1B2C776CC89458DE0EE" "size" "1BB6163E80C8655C2FE6750007DF6F41" "download" "3C759F075254A02D382025B5D97CB8B5" } "temp" { "gid" "5CAB45AAE8B692EC720F32DCABBCE1BB" "size" "5034EB29EAF9917F8F15F58A0964BC8E" "download" "D488ECBB4C3EC678F955C160F91A3871" } "testbranch" { "gid" "926DF387253E6792AF659231DAD354E0" "size" "B8FDFC5ACD37DA90D7AB68C42E7B8EC1" "download" "624F8770CF442B97EC88E5F0D3311E6E" } } } "2330352" { "config" { "language" "tchinese" "oslist" "macos" } "manifests" { "public" { "gid" "3405764980446251715" "size" "584" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "43A942D3B115692DDFC8662B9D5EBB95" "size" "DD593DA64FABE7E7B7B28FD71927E787" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "47EDFB7F6B5F7F09D4F2734AED537E51" "size" "0434C0B012991659E2C7D179D557CB0B" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "7A9B8121E3D577B8AD518B374EE545D7" "size" "EA09B011401A5FCA4D276A737DEED9DE" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "88925C8735E480843FABF956A55D7B33" "size" "79566BC6C4055B8EB2A3469481EBA273" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "4DF2EF8F8C598EF262C0FD525C687B68" "size" "9796A96321846A972C62EE478F17EEC6" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "A541B2EFF2FB3F14CE6DED6E0D92F87E" "size" "2BB33062840E1FCB75B98892F065BFE9" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "F4154FCC5492495E6CA6DE70B29B1B3B" "size" "C73744280CCD6196C9907B989B56D241" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "B3C3AC56ED75ACBADD0C39A46C4A94BC" "size" "498A34A9F1876A3A3F051A4436C19828" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "641EA00F485D28B0A73A15B40B53B805" "size" "CB4A7D020A056BF1134EB31761716B0A" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "DDFF0DAC14836457B5363619FA5E3085" "size" "8ECAEE36BC2EE151730D3C2950106551" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "32436EA039B34560A93FC5BACB7F76F4" "size" "38BB11C98B0A6824F3E32758ABA30AC6" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } } } "2330353" { "config" { "language" "italian" "oslist" "macos" } "manifests" { "public" { "gid" "612529264506102109" "size" "573" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "EAF832E344053B7A771A67C63126722E" "size" "0967A9C240CDCB362C67CC0833B8C8F1" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "9AEC2DFE98F1F3AEB842656E8025B0E8" "size" "85D2B3E9EB706CE9F19127C7635E71F2" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "06BF83A0ADA11D15C67BCBB5D5665F59" "size" "A0924A4761D08A90D28989C1AFB0D2E6" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "E08DAB9661886F213065EFE90081971E" "size" "9FE1C5078B39589C9F4819B8788B3EDF" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "1E7A1CB88C3C1EBC274BFAF80FD3AD7E" "size" "B759307D84B7897BC692881BC2ED47A5" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "ED593C27FEF537CF43F3359C81585DD3" "size" "903F44D65C60A69DF92846BF554618AF" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "00647EB5827DA451142EBAFDF54297D9" "size" "A100A429768AE5889EE5D4206BB8819B" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "1DF242A65215AF2870BF43D382FBF382" "size" "88ACF5E485F40D446C85F77074A9C2DC" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "605E15700F64E27D507DBC91D9FC2918" "size" "E4AA93E87438BF8F57E2759B3C911A00" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "5691BCFCD037A0D2A79E0BF440093E9B" "size" "B32A1E4CDA78886C4F9C69A91FBA7866" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "0E7BE22777435B67CF617E53D7C9C305" "size" "D1313758BD97A0B17A034E208FD8874C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } } } "2330354" { "config" { "language" "ukrainian" "oslist" "macos" } "manifests" { "public" { "gid" "3278754178123362114" "size" "576" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "353372EF35A6CCE4B754B9A25046A84E" "size" "BA6CE53CB3FADB7F06EB7AE8679C4F20" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "50D72C1C455177600ED13AE2FB72744D" "size" "00B40370728DAB5300FB6406CC1FD6D1" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "6BC3EB69BBD7DA82ED8702BCE3EEC818" "size" "4E744E5349EA32AD04869BE5476828E4" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "F0FAFD66B1BA706DF7C3254921B60A06" "size" "DACAEFCF7F37A72880534C4166C6B008" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "475E610DB16F9EF282EB60F4B3495F60" "size" "78F624831A24AAFB92909648974964F3" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "988106F7D61AFBB5ADE13E00D04F500E" "size" "7C83951C2A8A0CCC4DAC0343262D88F2" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "463478CA71616E673934E071933750FC" "size" "26DCDC8E412813A1C463E1B00F7A85F8" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "58A5D798CCFC694278D37D32AF0EE6A1" "size" "D4EF871E41D228845505F01CE6DAA88F" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "CC4E13759A6FFC693CBD477C6A26910A" "size" "9C9654CF35C5BA4444F2C518D80F812E" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "5023B5DC4EE7D488084D14FAA7575930" "size" "8A15EE7B0411C82B0F01EC16B75F7EC7" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "DCB54A2ACB25B9F422E551B550CAFF95" "size" "A7CE2F6BB156849DA28E10C16A506190" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } } } "2330355" { "config" { "language" "latam" "oslist" "macos" } "manifests" { "public" { "gid" "5952972128173214295" "size" "579" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "FBD9BF8CDCF94283AFA7C11F920DC91A" "size" "B57ECE03D072AB1EDE0DCBF0536A2634" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "7EBE4D2001D70646CDEF17DDF77BE169" "size" "8C86CC7B070C9BC0D4A6C947C71C61C3" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "15DA0E0FF8102EC5B9E46E3BBF42AFB4" "size" "DA3C31261D777E9AC8058E18D298594A" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "924EFDAA99CC51ABD66DEB96B428B781" "size" "C7190C787E4CC5CA0C0E62F080C9F648" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "3156B1E47F7964A4DB6A3CB7283E3421" "size" "B6122CD740169CD1C31B862A7BACFA21" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "0F7DCC5427EA5D2994C91D486C614CD1" "size" "388BE6A2A90A9E2F58B8213CAA964FCC" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "235B6CF8EAFBB0DA87C1C6F5C841775E" "size" "2324A8537D82CD4C803AA16FCA886DEB" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "0E4DC6E3FB3DF7E56719D9469720FBE8" "size" "36C7A82E4076B29A17895CD342DB33AF" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "97478717B8D6DF1A4EDFD80644A48088" "size" "E22CA768001B4CB5ACFEAA4FF2C50D64" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "0B02BE753EA9037C0EE6D7DCC199058C" "size" "30AC78707BE88EE214F2914EEF38C5E0" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "C5DC9BB3DBFE801138DE005087405D25" "size" "9BBD053F777F5FDE628BFDF449AF0ACC" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } } } "2330356" { "config" { "language" "brazilian" "oslist" "macos" } "manifests" { "public" { "gid" "868191943506106262" "size" "586" "download" "304" } } "encryptedmanifests" { "dlss" { "gid" "83E9635302FB42FCAB53F1791A04A50F" "size" "68D78803D8101C26977382A06C4DB980" "download" "EA3A2FF835D64A5CF745046A2753C793" } "mac_test1" { "gid" "1130C15D88B3AA5238100DF7DD793648" "size" "CC55BAA70FB889750F7C7F099D3EF84D" "download" "7B7DD211D9330BC5D1552BA8897CC7F4" } "mac_test2" { "gid" "FE0BC80E63B80EBBD98A6E0664737E50" "size" "ED517E9DC67F0E5DCF81CAF67A6E6F07" "download" "D94A95A939FC20127FC9558D8A1AC92E" } "mac_test3" { "gid" "2817BCB3FFA670F52E6D3CB7466115B7" "size" "413FDDE11B79B93BBC13198A67EECE7C" "download" "EC07B3390094DB55F3DD77368F8BC893" } "playtesting" { "gid" "662C12FD524480BBBEE68ADABBC86842" "size" "D3DE0359B1EF892722F547B661C7B73B" "download" "B4C52BD9572A9A4E38E2342F09C5B17C" } "release_hf4" { "gid" "4E259FFF1BD0514439BDC48E7A8F149D" "size" "29F8E69A6619BA2064CFF81EBAAFBFCD" "download" "C90719564F8F10D5D043284C3E299DFE" } "release_patch3" { "gid" "50DCC14EC26DF0C239130FA2EE4811E3" "size" "8E7007EB5D774E85D3735F2B0BD2C982" "download" "75A01F466DB337584CA09F42B3A0AF36" } "release_patch3_hf1" { "gid" "4EC3B8F10B45A7A34930E7EC0BBCFCF8" "size" "1097BADDAECDDFBA27AD290E2C64DF37" "download" "0D71993427E6FE8DC8F7BC1C35FBA444" } "release_patch3_hf2" { "gid" "B481AC543CE4665A075186AAC3EA7697" "size" "F4D95C8213C1C92995B7378E38524718" "download" "7B9B9C986CEEF4A9F2BB3FFD4D306A68" } "release_patch3_hf3" { "gid" "243B0945D74A7BCFC382F6F944DFDEF3" "size" "72894E3FE0378E592939EF0B55620EB1" "download" "2AC4651DAA9ABB9E39F799F664A0C995" } "release_patch4" { "gid" "3003921443F6C2F9B2810CE3D85A6773" "size" "3B74549F586583FE0AA5F49DCC36956C" "download" "1F2E70C18B85D5DDCEAF1CE0CE737792" } } } "branches" { "public" { "buildid" "12374738" "timeupdated" "1696597346" } "agerating" { "buildid" "11198161" "pwdrequired" "1" "timeupdated" "1683718411" } "baseline" { "buildid" "11833416" "pwdrequired" "1" "timeupdated" "1690898615" } "ch_main" { "buildid" "12547634" "pwdrequired" "1" "timeupdated" "1698361398" } "ch_rc" { "buildid" "11840599" "pwdrequired" "1" "timeupdated" "1690912133" } "compat" { "buildid" "12020270" "pwdrequired" "1" "timeupdated" "1692862933" } "dlss" { "buildid" "12374021" "pwdrequired" "1" "timeupdated" "1696592727" } "mac_test1" { "buildid" "12547618" "pwdrequired" "1" "timeupdated" "1698361268" } "mac_test2" { "buildid" "12547622" "pwdrequired" "1" "timeupdated" "1698361289" } "mac_test3" { "buildid" "12552091" "pwdrequired" "1" "timeupdated" "1698401407" } "playtesting" { "buildid" "12477316" "pwdrequired" "1" "timeupdated" "1697675067" } "pt_bcn" { "buildid" "11614042" "pwdrequired" "1" "timeupdated" "1688387001" } "pt_dub" { "buildid" "11447416" "pwdrequired" "1" "timeupdated" "1686560824" } "pt_gf" { "buildid" "11672619" "pwdrequired" "1" "timeupdated" "1689063636" } "pt_gnt" { "buildid" "11672623" "pwdrequired" "1" "timeupdated" "1689063674" } "pt_kl" { "buildid" "11769478" "pwdrequired" "1" "timeupdated" "1690152919" } "pt_qbc" { "buildid" "11623906" "pwdrequired" "1" "timeupdated" "1688486751" } "qaprio" { "buildid" "12124688" "pwdrequired" "1" "timeupdated" "1694019935" } "release" { "buildid" "11899229" "pwdrequired" "1" "timeupdated" "1691559564" } "release_hf1" { "buildid" "11899245" "pwdrequired" "1" "timeupdated" "1691559660" } "release_hf2" { "buildid" "11894264" "pwdrequired" "1" "timeupdated" "1691558914" } "release_hf2.1" { "buildid" "11905964" "pwdrequired" "1" "timeupdated" "1691616669" } "release_hf3" { "buildid" "11921151" "pwdrequired" "1" "timeupdated" "1691757091" } "release_hf4" { "buildid" "12506557" "pwdrequired" "1" "timeupdated" "1698018261" } "release_patch1" { "buildid" "12035892" "pwdrequired" "1" "timeupdated" "1692997248" } "release_patch2" { "buildid" "12072128" "pwdrequired" "1" "timeupdated" "1693426893" } "release_patch3" { "buildid" "12255176" "pwdrequired" "1" "timeupdated" "1695375336" } "release_patch3_hf1" { "buildid" "12285396" "pwdrequired" "1" "timeupdated" "1695728971" } "release_patch3_hf2" { "buildid" "12335280" "pwdrequired" "1" "timeupdated" "1696255238" } "release_patch3_hf3" { "buildid" "12362465" "pwdrequired" "1" "timeupdated" "1696497528" } "release_patch4" { "buildid" "12547969" "pwdrequired" "1" "timeupdated" "1698364609" } "summer2020_loca" { "buildid" "12509327" "pwdrequired" "1" "timeupdated" "1698053556" } "temp" { "buildid" "12534813" "pwdrequired" "1" "timeupdated" "1698258992" } "testbranch" { "buildid" "11958164" "pwdrequired" "1" "timeupdated" "1692263157" } } } "ufs" { "quota" "2000000000" "maxnumfiles" "1000" } "localization" { "richpresence" { "english" { "tokens" { "#inmenu" "%game_state%" "#inlobby" "%game_state% - %state_details%" "#onmap" "%game_state%: %state_details%" "#ingmhost" "Hosting: %game_state% %state_details%" "#ingmclient" "Playing with Game Master: %game_state% %state_details%" "#ingmpreparing" "Preparing an Adventure %state_details%" } } } } } ================================================ FILE: FreePackages.Tests/TestData/package_with_timed_activation.txt ================================================ "20737" { "packageid" "20737" "billingtype" "12" "licensetype" "1" "status" "0" "extended" { "deactivated_demo" "1" "dontgrantifappidowned" "11140" "expirytime" "1592345200" "freeweekend" "1" "starttime" "1592325000" } "appids" { "0" "7290" } "depotids" { "0" "7291" } "appitems" { } } ================================================ FILE: FreePackages.Tests/TestData/playtest_with_hidden_parent.txt ================================================ "appinfo" { "appid" "2423370" "common" { "name" "Inu (Prototype) Playtest" "type" "Beta" "parent" "2423350" "oslist" "windows" "osarch" "" "osextended" "" "icon" "f3ee1d7e8aadc421d123617bd3c94800007d2a6e" "clienttga" "f7c83818ba159ddbed594cbf04caca0d4b9cb8d6" "clienticon" "51303d8fcc2279bd63c9172e516181297a77fcf3" "releasestate" "released" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "CenterCenter" "width_pct" "16.243194192377487" "height_pct" "52.43055555555554" } } "store_asset_mtime" "1684322449" "associations" { } "primary_genre" "0" "category" { } "steam_release_date" "1683587793" "community_visible_stats" "1" "community_hub_visible" "1" "gameid" "2423370" "exfgls" "1" } "config" { "installdir" "Inu (Prototype) Playtest" "launch" { "0" { "executable" "GYMULATOR.exe" "type" "default" "config" { "oslist" "windows" } } } } "depots" { "228989" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "2423371" { "manifests" { "public" { "gid" "7129052227263328365" "size" "451192463" "download" "302603504" } } } "2423372" { "config" { "oslist" "windows" "osarch" "64" } } "branches" { "public" { "buildid" "12512996" "timeupdated" "1698079901" } } } } ================================================ FILE: FreePackages.Tests/TestData/playtest_with_hidden_parent_parent.txt ================================================ "appinfo" { "appid" "2423350" "public_only" "1" } ================================================ FILE: FreePackages.Tests/TestData/playtest_with_no_categories.txt ================================================ "appinfo" { "appid" "2385860" "common" { "name" "TEKKEN 8 Playtest" "type" "Beta" "parent" "1778820" "oslist" "windows" "osarch" "64" "osextended" "" "clienticon" "3ffacb2d80bbe1d77f006ce9244db1fc75ee7759" "clienttga" "6daaaf1942d064765301ce7a10ec5efe8947a4af" "icon" "9b40fccb40192f448b86225c54a2572f0ffb1937" "releasestate" "released" "eulas" { "0" { "id" "2385860_eula_0" "name" "TEKKEN 8 Playtest EULA" "url" "https://store.steampowered.com//eula/2385860_eula_0" "version" "2" } } "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "CenterCenter" "width_pct" "43.837763147239684" "height_pct" "49.305555555555515" } } "store_asset_mtime" "1697420529" "associations" { } "primary_genre" "0" "category" { } "steam_release_date" "1685517669" "community_hub_visible" "1" "gameid" "2385860" "exfgls" "1" "review_score" "8" "review_percentage" "83" } "extended" { "betaforappid" "1778820" } "config" { "installdir" "TEKKEN 8 Playtest" "launch" { "0" { "executable" "Polaris.exe" "config" { "oslist" "windows" "osarch" "64" } } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "1912244110" { "controller_type" "controller_mobile_touch" "enabled_branches" "default,d-deb,d-deb2,d-rel,d-rel2,d-tmp,d-tmp2,q-deb,q-deb2,q-rel,q-rel2" "use_action_block" "false" } } "steamdecktouchscreen" "1" "steamcontrollertemplateindex" "4" } "depots" { "228989" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "2385861" { "manifests" { "public" { "gid" "1680546738561089678" "size" "0" "download" "0" } } "encryptedmanifests" { "d-deb" { "gid" "5293C4D86158F43ACA47B50189EFFF9C" "size" "F948573243882F92BD32A0E128CA1A6F" "download" "557D6C458BEA643D98313F0E584F4B49" } "d-deb2" { "gid" "BA396F2870DC051A2D79B9DDEBD2B6E9" "size" "F93B5403122D6A679415B90493EB1F14" "download" "242D5D5DCCB5C92710DDD989DDBD52F9" } "d-rel" { "gid" "431AA2B7387EE52C41AE55DCAE722B32" "size" "F4B8EBB9A5E184A4F5DF0F63134749C5" "download" "4D794B84CD869F67CE6596204205C771" } "d-rel2" { "gid" "67D6FDDB5CC3F49FCE63CB447AE60177" "size" "0C699001D38ACA240495DE3A91112F73" "download" "533A2D3C694E11F2075F20662EC94C82" } "d-tmp" { "gid" "311D0161B6B893D165ADE86225DB9595" "size" "4AB05FAE65F18F39D07B5892A1F449CD" "download" "1EE0403B71DC28A817FF65DFC245DB88" } "d-tmp2" { "gid" "E2B253E892F6ACF4A8DBCB28707737C4" "size" "36B5C25450C53923B61B5A6A3AE88D8D" "download" "B09C69AB89F9994CA3684AFAAA230526" } "q-deb" { "gid" "5C67AC41EDC2F2030F93805C57A801A3" "size" "C67CFC4F80CE5298AA92413953BE7DB5" "download" "3EC8D548D43B01C1E2643BD4CEAF0725" } "q-deb2" { "gid" "DE35183929D5A591D42988730D628C22" "size" "8FBB751F27B996049ACA3EDCE5BC3AA1" "download" "CA4D38216A24AFB92F11833E0CED80EA" } "q-rel" { "gid" "25E0D4E208AAD44D26B9EA7952B584BF" "size" "7501F0A976D0E9736F258390A13131F0" "download" "8C3AC9ECA77870F959E458B46EBA160F" } "q-rel2" { "gid" "DEF6338F75DD7B592388E9582BDA18DE" "size" "D5BC9CE0C6F3DA93691A7D29CA5AA399" "download" "D7E86224C8050A8F88414CC63EEA2CC7" } } } "2385862" { "manifests" { "public" { "gid" "5161036145281376009" "size" "1568748443" "download" "276270208" } } "encryptedmanifests" { "d-deb" { "gid" "D7BCA3A023EF35476BC6B5C6593A1CD4" "size" "D96E7CA6EB6A66005902173242BB80AB" "download" "23E85FFDAC527932D603081A6B9881D7" } "d-deb2" { "gid" "49866A75B97ECFE8DC36CFD53E1D2A84" "size" "D692A49582DBA9B3DDFAACB788B83DB5" "download" "A02F2F1E69676DEA19E77A871DB77EF1" } "d-rel" { "gid" "C60D02A74D691BCA20A58B0CFABB304D" "size" "07CB1EC9513259331E440CC8E8D74E33" "download" "43FDF2079A28D532208872A3ABCE66BC" } "d-rel2" { "gid" "15A89B5EA132A99CE145AFD26AED5EAE" "size" "926623AD5279B43E6B16305AAF0410B7" "download" "C1846ECCBCCC0AF96C47C8B1C159A8B4" } "d-tmp" { "gid" "645CD7EDC3379653951829827A01DC05" "size" "A8DB5D6F29B22E463AC4DEC219F22009" "download" "D0030CD253B6E4470BC858FFEC833B4C" } "d-tmp2" { "gid" "92BEFB029A0C68AC927F43976269B14D" "size" "86E5ADDC9C3ACBD34677940218D76C60" "download" "FDE35A23FA2B3E18CD36820CB0AD8E24" } "q-deb" { "gid" "6D93487F6CBD65C2CEA3C74CEE3BE042" "size" "41B92314EF5E32F9B8FD5B3C8C65E6E4" "download" "8C2584A6BA3424C8128E7DEAF72D7D23" } "q-deb2" { "gid" "CE7F7432CB033A98D976A1B7FA8CF2C0" "size" "963C778E729AC908975DB8E12A3F9701" "download" "54C13AC2E87F12833A836B1C5726DE3D" } "q-rel" { "gid" "1F82248D4B1B83602701DCDF3F7866FC" "size" "59DD8099EB74A4D264D2C38FE4119A26" "download" "27CBA276E043B31F18C47CA041695563" } "q-rel2" { "gid" "161ADA023A1F81A805C7862390343225" "size" "2B74D8C53C272444A72B514F20AF7FF1" "download" "B4EBD9EF16FE7D83590A4E7C6253EC92" } } } "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,polish,arabic,brazilian,latam" "branches" { "public" { "buildid" "12518005" "timeupdated" "1698127874" } "d-deb" { "buildid" "11650316" "pwdrequired" "1" "timeupdated" "1688741273" } "d-deb2" { "buildid" "12316042" "pwdrequired" "1" "timeupdated" "1695984149" } "d-rel" { "buildid" "11649576" "pwdrequired" "1" "timeupdated" "1688735330" } "d-rel2" { "buildid" "12316646" "pwdrequired" "1" "timeupdated" "1695988492" } "d-tmp" { "buildid" "11943631" "pwdrequired" "1" "timeupdated" "1694001899" } "d-tmp2" { "buildid" "12277324" "pwdrequired" "1" "timeupdated" "1695666113" } "q-deb" { "buildid" "12298904" "pwdrequired" "1" "timeupdated" "1695882499" } "q-deb2" { "buildid" "12316042" "pwdrequired" "1" "timeupdated" "1695992932" } "q-rel" { "buildid" "12299459" "pwdrequired" "1" "timeupdated" "1695882443" } "q-rel2" { "buildid" "12316646" "pwdrequired" "1" "timeupdated" "1695992899" } } } } ================================================ FILE: FreePackages.Tests/TestData/playtest_with_no_categories_parent.txt ================================================ "appinfo" { "appid" "1778820" "public_only" "1" "common" { "name" "TEKKEN 8" "type" "Game" "icon" "379f0bd7dcf0b6b20bd9041ddfaba05fdaa77a6e" "clienticon" "3ffacb2d80bbe1d77f006ce9244db1fc75ee7759" "clienttga" "6daaaf1942d064765301ce7a10ec5efe8947a4af" "oslist" "windows" "osarch" "64" "osextended" "" "releasestate" "prerelease" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "polish" "1" "arabic" "1" "brazilian" "1" "latam" "1" } "name_localized" { "japanese" "鉄拳8" "tchinese" "鐵拳8" "schinese" "铁拳8" "koreana" "철권 8" } "eulas" { "0" { "id" "1778820_eula_0" "name" "TEKKEN 8 EULA" "url" "https://store.steampowered.com//eula/1778820_eula_0" "version" "2" } } "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "50" "height_pct" "50" } } "store_asset_mtime" "1697157045" "associations" { "0" { "type" "developer" "name" "Bandai Namco Studios Inc." } "1" { "type" "publisher" "name" "Bandai Namco Entertainment" } "2" { "type" "franchise" "name" "TEKKEN" } } "primary_genre" "1" "genres" { "0" "1" } "category" { "category_2" "1" "category_1" "1" "category_33" "1" "category_49" "1" "category_36" "1" "category_37" "1" "category_24" "1" "category_44" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "french" { "supported" "true" "subtitles" "true" } "italian" { "supported" "true" "subtitles" "true" } "german" { "supported" "true" "subtitles" "true" } "spanish" { "supported" "true" "subtitles" "true" } "arabic" { "supported" "true" "subtitles" "true" } "japanese" { "supported" "true" "subtitles" "true" } "koreana" { "supported" "true" "subtitles" "true" } "brazilian" { "supported" "true" "subtitles" "true" } "schinese" { "supported" "true" "subtitles" "true" } "tchinese" { "supported" "true" "subtitles" "true" } "polish" { "supported" "true" "subtitles" "true" } "russian" { "supported" "true" "subtitles" "true" } "thai" { "supported" "true" "subtitles" "true" } "latam" { "supported" "true" "subtitles" "true" } } "community_hub_visible" "1" "gameid" "1778820" "exfgls" "1" "store_tags" { "0" "19" "1" "1743" "2" "6506" "3" "3859" "4" "5055" "5" "7368" "6" "1773" "7" "1775" "8" "4182" "9" "597" "10" "3878" "11" "1756" "12" "4026" "13" "4085" "14" "12095" "15" "1742" "16" "4747" } } } ================================================ FILE: FreePackages.Tests/TestData/playtest_with_no_languages.txt ================================================ "appinfo" { "appid" "2385860" "common" { "name" "TEKKEN 8 Playtest" "type" "Beta" "parent" "1778820" "oslist" "windows" "osarch" "64" "osextended" "" "clienticon" "3ffacb2d80bbe1d77f006ce9244db1fc75ee7759" "clienttga" "6daaaf1942d064765301ce7a10ec5efe8947a4af" "icon" "9b40fccb40192f448b86225c54a2572f0ffb1937" "releasestate" "released" "eulas" { "0" { "id" "2385860_eula_0" "name" "TEKKEN 8 Playtest EULA" "url" "https://store.steampowered.com//eula/2385860_eula_0" "version" "2" } } "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "CenterCenter" "width_pct" "43.837763147239684" "height_pct" "49.305555555555515" } } "store_asset_mtime" "1697420529" "associations" { } "primary_genre" "0" "category" { } "steam_release_date" "1685517669" "community_hub_visible" "1" "gameid" "2385860" "exfgls" "1" "review_score" "8" "review_percentage" "83" } "extended" { "betaforappid" "1778820" } "config" { "installdir" "TEKKEN 8 Playtest" "launch" { "0" { "executable" "Polaris.exe" "config" { "oslist" "windows" "osarch" "64" } } } "steamcontrollertouchtemplateindex" "1" "steamcontrollertouchconfigdetails" { "1912244110" { "controller_type" "controller_mobile_touch" "enabled_branches" "default,d-deb,d-deb2,d-rel,d-rel2,d-tmp,d-tmp2,q-deb,q-deb2,q-rel,q-rel2" "use_action_block" "false" } } "steamdecktouchscreen" "1" "steamcontrollertemplateindex" "4" } "depots" { "228989" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "2385861" { "manifests" { "public" { "gid" "1680546738561089678" "size" "0" "download" "0" } } "encryptedmanifests" { "d-deb" { "gid" "5293C4D86158F43ACA47B50189EFFF9C" "size" "F948573243882F92BD32A0E128CA1A6F" "download" "557D6C458BEA643D98313F0E584F4B49" } "d-deb2" { "gid" "BA396F2870DC051A2D79B9DDEBD2B6E9" "size" "F93B5403122D6A679415B90493EB1F14" "download" "242D5D5DCCB5C92710DDD989DDBD52F9" } "d-rel" { "gid" "431AA2B7387EE52C41AE55DCAE722B32" "size" "F4B8EBB9A5E184A4F5DF0F63134749C5" "download" "4D794B84CD869F67CE6596204205C771" } "d-rel2" { "gid" "67D6FDDB5CC3F49FCE63CB447AE60177" "size" "0C699001D38ACA240495DE3A91112F73" "download" "533A2D3C694E11F2075F20662EC94C82" } "d-tmp" { "gid" "311D0161B6B893D165ADE86225DB9595" "size" "4AB05FAE65F18F39D07B5892A1F449CD" "download" "1EE0403B71DC28A817FF65DFC245DB88" } "d-tmp2" { "gid" "E2B253E892F6ACF4A8DBCB28707737C4" "size" "36B5C25450C53923B61B5A6A3AE88D8D" "download" "B09C69AB89F9994CA3684AFAAA230526" } "q-deb" { "gid" "5C67AC41EDC2F2030F93805C57A801A3" "size" "C67CFC4F80CE5298AA92413953BE7DB5" "download" "3EC8D548D43B01C1E2643BD4CEAF0725" } "q-deb2" { "gid" "DE35183929D5A591D42988730D628C22" "size" "8FBB751F27B996049ACA3EDCE5BC3AA1" "download" "CA4D38216A24AFB92F11833E0CED80EA" } "q-rel" { "gid" "25E0D4E208AAD44D26B9EA7952B584BF" "size" "7501F0A976D0E9736F258390A13131F0" "download" "8C3AC9ECA77870F959E458B46EBA160F" } "q-rel2" { "gid" "DEF6338F75DD7B592388E9582BDA18DE" "size" "D5BC9CE0C6F3DA93691A7D29CA5AA399" "download" "D7E86224C8050A8F88414CC63EEA2CC7" } } } "2385862" { "manifests" { "public" { "gid" "5161036145281376009" "size" "1568748443" "download" "276270208" } } "encryptedmanifests" { "d-deb" { "gid" "D7BCA3A023EF35476BC6B5C6593A1CD4" "size" "D96E7CA6EB6A66005902173242BB80AB" "download" "23E85FFDAC527932D603081A6B9881D7" } "d-deb2" { "gid" "49866A75B97ECFE8DC36CFD53E1D2A84" "size" "D692A49582DBA9B3DDFAACB788B83DB5" "download" "A02F2F1E69676DEA19E77A871DB77EF1" } "d-rel" { "gid" "C60D02A74D691BCA20A58B0CFABB304D" "size" "07CB1EC9513259331E440CC8E8D74E33" "download" "43FDF2079A28D532208872A3ABCE66BC" } "d-rel2" { "gid" "15A89B5EA132A99CE145AFD26AED5EAE" "size" "926623AD5279B43E6B16305AAF0410B7" "download" "C1846ECCBCCC0AF96C47C8B1C159A8B4" } "d-tmp" { "gid" "645CD7EDC3379653951829827A01DC05" "size" "A8DB5D6F29B22E463AC4DEC219F22009" "download" "D0030CD253B6E4470BC858FFEC833B4C" } "d-tmp2" { "gid" "92BEFB029A0C68AC927F43976269B14D" "size" "86E5ADDC9C3ACBD34677940218D76C60" "download" "FDE35A23FA2B3E18CD36820CB0AD8E24" } "q-deb" { "gid" "6D93487F6CBD65C2CEA3C74CEE3BE042" "size" "41B92314EF5E32F9B8FD5B3C8C65E6E4" "download" "8C2584A6BA3424C8128E7DEAF72D7D23" } "q-deb2" { "gid" "CE7F7432CB033A98D976A1B7FA8CF2C0" "size" "963C778E729AC908975DB8E12A3F9701" "download" "54C13AC2E87F12833A836B1C5726DE3D" } "q-rel" { "gid" "1F82248D4B1B83602701DCDF3F7866FC" "size" "59DD8099EB74A4D264D2C38FE4119A26" "download" "27CBA276E043B31F18C47CA041695563" } "q-rel2" { "gid" "161ADA023A1F81A805C7862390343225" "size" "2B74D8C53C272444A72B514F20AF7FF1" "download" "B4EBD9EF16FE7D83590A4E7C6253EC92" } } } "baselanguages" "english,german,french,italian,koreana,spanish,schinese,tchinese,russian,thai,japanese,polish,arabic,brazilian,latam" "branches" { "public" { "buildid" "12518005" "timeupdated" "1698127874" } "d-deb" { "buildid" "11650316" "pwdrequired" "1" "timeupdated" "1688741273" } "d-deb2" { "buildid" "12316042" "pwdrequired" "1" "timeupdated" "1695984149" } "d-rel" { "buildid" "11649576" "pwdrequired" "1" "timeupdated" "1688735330" } "d-rel2" { "buildid" "12316646" "pwdrequired" "1" "timeupdated" "1695988492" } "d-tmp" { "buildid" "11943631" "pwdrequired" "1" "timeupdated" "1694001899" } "d-tmp2" { "buildid" "12277324" "pwdrequired" "1" "timeupdated" "1695666113" } "q-deb" { "buildid" "12298904" "pwdrequired" "1" "timeupdated" "1695882499" } "q-deb2" { "buildid" "12316042" "pwdrequired" "1" "timeupdated" "1695992932" } "q-rel" { "buildid" "12299459" "pwdrequired" "1" "timeupdated" "1695882443" } "q-rel2" { "buildid" "12316646" "pwdrequired" "1" "timeupdated" "1695992899" } } } } ================================================ FILE: FreePackages.Tests/TestData/playtest_with_no_languages_parent.txt ================================================ "appinfo" { "appid" "1778820" "public_only" "1" "common" { "name" "TEKKEN 8" "type" "Game" "icon" "379f0bd7dcf0b6b20bd9041ddfaba05fdaa77a6e" "clienticon" "3ffacb2d80bbe1d77f006ce9244db1fc75ee7759" "clienttga" "6daaaf1942d064765301ce7a10ec5efe8947a4af" "oslist" "windows" "osarch" "64" "osextended" "" "releasestate" "prerelease" "languages" { "english" "1" "german" "1" "french" "1" "italian" "1" "koreana" "1" "spanish" "1" "schinese" "1" "tchinese" "1" "russian" "1" "thai" "1" "japanese" "1" "polish" "1" "arabic" "1" "brazilian" "1" "latam" "1" } "name_localized" { "japanese" "鉄拳8" "tchinese" "鐵拳8" "schinese" "铁拳8" "koreana" "철권 8" } "eulas" { "0" { "id" "1778820_eula_0" "name" "TEKKEN 8 EULA" "url" "https://store.steampowered.com//eula/1778820_eula_0" "version" "2" } } "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "50" "height_pct" "50" } } "store_asset_mtime" "1697157045" "associations" { "0" { "type" "developer" "name" "Bandai Namco Studios Inc." } "1" { "type" "publisher" "name" "Bandai Namco Entertainment" } "2" { "type" "franchise" "name" "TEKKEN" } } "primary_genre" "1" "genres" { "0" "1" } "category" { "category_2" "1" "category_1" "1" "category_33" "1" "category_49" "1" "category_36" "1" "category_37" "1" "category_24" "1" "category_44" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" "subtitles" "true" } "french" { "supported" "true" "subtitles" "true" } "italian" { "supported" "true" "subtitles" "true" } "german" { "supported" "true" "subtitles" "true" } "spanish" { "supported" "true" "subtitles" "true" } "arabic" { "supported" "true" "subtitles" "true" } "japanese" { "supported" "true" "subtitles" "true" } "koreana" { "supported" "true" "subtitles" "true" } "brazilian" { "supported" "true" "subtitles" "true" } "schinese" { "supported" "true" "subtitles" "true" } "tchinese" { "supported" "true" "subtitles" "true" } "polish" { "supported" "true" "subtitles" "true" } "russian" { "supported" "true" "subtitles" "true" } "thai" { "supported" "true" "subtitles" "true" } "latam" { "supported" "true" "subtitles" "true" } } "community_hub_visible" "1" "gameid" "1778820" "exfgls" "1" "store_tags" { "0" "19" "1" "1743" "2" "6506" "3" "3859" "4" "5055" "5" "7368" "6" "1773" "7" "1775" "8" "4182" "9" "597" "10" "3878" "11" "1756" "12" "4026" "13" "4085" "14" "12095" "15" "1742" "16" "4747" } } } ================================================ FILE: FreePackages.Tests/TestData/playtest_with_no_waitlist.txt ================================================ "appinfo" { "appid" "2437370" "common" { "name" "No Love Lost Playtest" "type" "Beta" "parent" "1873120" "releasestate" "released" "oslist" "windows" "osarch" "64" "osextended" "" "clienttga" "46bea63ee70112935ebb604fcb71ea2353814a81" "clienticon" "061359ecc7b8fa6ee86f2a7d7bbcde19c8bff1cc" "icon" "421e0401264705791ba386b4a20f67e64a444a8c" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "50" "height_pct" "50" } } "store_asset_mtime" "1696362063" "associations" { } "primary_genre" "0" "category" { } "steam_release_date" "1698422345" "community_hub_visible" "1" "gameid" "2437370" "exfgls" "1" } "extended" { "playtest_type" "1" } "config" { "installdir" "No Love Lost Playtest" "steamcontrollertemplateindex" "4" "steamdecktouchscreen" "1" "launch" { "0" { "executable" "NoLoveLost.exe" "type" "default" "config" { "oslist" "windows" "osarch" "64" } } } } "depots" { "228989" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "228990" { "config" { "oslist" "windows" } "depotfromapp" "228980" "sharedinstall" "1" } "2437371" { "manifests" { "public" { "gid" "3472142450257562712" "size" "21118484092" "download" "7428149584" } } "encryptedmanifests" { "nightly" { "gid" "7BA2C1BEF7C7CC95FC921B4F8C362EF2" "size" "439BA1C73A1B25BB59D2C7D3AECAFD69" "download" "0A21FBF400C9655D1659FD4996E24C74" } "staging_pbe" { "gid" "7533E4AFB48D23B23EBF3D450230568C" "size" "7D608F5F2459F42FC88B0901DAC9CAC0" "download" "1BC6D2C19289F77D9999B561A73C9BEF" } } } "branches" { "public" { "buildid" "12535699" "timeupdated" "1698341167" } "nightly" { "buildid" "12305578" "pwdrequired" "1" "timeupdated" "1695896696" } "staging_pbe" { "buildid" "12535699" "pwdrequired" "1" "timeupdated" "1698266495" } } } } ================================================ FILE: FreePackages.Tests/TestData/playtest_with_no_waitlist_parent.txt ================================================ "appinfo" { "appid" "1873120" "public_only" "1" "common" { "name" "No Love Lost" "type" "Game" "oslist" "windows" "osarch" "64" "osextended" "" "icon" "d27e304e1a6be6f11764180fd6fbf82110ba2d82" "clienttga" "46bea63ee70112935ebb604fcb71ea2353814a81" "clienticon" "fa4218b9d59b8042cb86f013688ee65b8e0b93f5" "releasestate" "prerelease" "controller_support" "full" "small_capsule" { "english" "capsule_231x87.jpg" } "header_image" { "english" "header.jpg" } "library_assets" { "library_capsule" "en" "library_hero" "en" "library_logo" "en" "logo_position" { "pinned_position" "BottomLeft" "width_pct" "50" "height_pct" "50" } } "store_asset_mtime" "1696362029" "associations" { "0" { "type" "developer" "name" "Ratloop Games Canada" } "1" { "type" "publisher" "name" "Ratloop Games Canada" } } "primary_genre" "1" "genres" { "0" "1" "1" "25" "2" "23" "3" "37" } "category" { "category_2" "1" "category_1" "1" "category_49" "1" "category_36" "1" "category_9" "1" "category_38" "1" "category_28" "1" "category_22" "1" } "supported_languages" { "english" { "supported" "true" "full_audio" "true" } "french" { "supported" "true" } } "community_hub_visible" "1" "gameid" "1873120" "exfgls" "1" "store_tags" { "0" "3834" "1" "4106" "2" "1774" "3" "3814" "4" "6730" "5" "1775" "6" "1697" "7" "7481" "8" "5765" "9" "1695" "10" "5125" "11" "5711" "12" "19" "13" "11104" "14" "4747" "15" "3942" "16" "4102" "17" "4252" "18" "3859" "19" "3843" } } } ================================================ FILE: FreePackages.Tests/TestData/userdata_empty.json ================================================ { "rgWishlist":[], "rgOwnedPackages":[], "rgOwnedApps":[], "rgFollowedApps":[], "rgMasterSubApps":[], "rgPackagesInCart":[], "rgAppsInCart":[], "rgRecommendedTags":[], "rgIgnoredApps":{}, "rgIgnoredPackages":[], "rgCurators":{}, "rgCuratorsIgnored":[], "rgCurations":{}, "bShowFilteredUserReviewScores":true, "rgCreatorsFollowed":[], "rgCreatorsIgnored":[], "rgExcludedTags":[], "rgExcludedContentDescriptorIDs":[], "rgAutoGrantApps":[], "rgRecommendedApps":[], "rgPreferredPlatforms":[], "rgPrimaryLanguage":null, "rgSecondaryLanguages":[], "bAllowAppImpressions":true, "nCartLineItemCount":0, "nRemainingCartDiscount":0, "nTotalCartDiscount":0 } ================================================ FILE: FreePackages.Tests/TestData/userdata_with_excluded_content_descriptors.json ================================================ { "rgWishlist":[], "rgOwnedPackages":[], "rgOwnedApps":[], "rgFollowedApps":[], "rgMasterSubApps":[], "rgPackagesInCart":[], "rgAppsInCart":[], "rgRecommendedTags":[], "rgIgnoredApps":{}, "rgIgnoredPackages":[], "rgCurators":{}, "rgCuratorsIgnored":[], "rgCurations":{}, "bShowFilteredUserReviewScores":true, "rgCreatorsFollowed":[], "rgCreatorsIgnored":[], "rgExcludedTags":[], "rgExcludedContentDescriptorIDs":[2], "rgAutoGrantApps":[], "rgRecommendedApps":[], "rgPreferredPlatforms":[], "rgPrimaryLanguage":null, "rgSecondaryLanguages":[], "bAllowAppImpressions":true, "nCartLineItemCount":0, "nRemainingCartDiscount":0, "nTotalCartDiscount":0 } ================================================ FILE: FreePackages.Tests/TestData/userdata_with_excluded_tags.json ================================================ { "rgWishlist":[], "rgOwnedPackages":[], "rgOwnedApps":[], "rgFollowedApps":[], "rgMasterSubApps":[], "rgPackagesInCart":[], "rgAppsInCart":[], "rgRecommendedTags":[], "rgIgnoredApps":{}, "rgIgnoredPackages":[], "rgCurators":{}, "rgCuratorsIgnored":[], "rgCurations":{}, "bShowFilteredUserReviewScores":true, "rgCreatorsFollowed":[], "rgCreatorsIgnored":[], "rgExcludedTags":[{"tagid":113,"name":"Free to Play","timestamp_added":1698275183}], "rgExcludedContentDescriptorIDs":[], "rgAutoGrantApps":[], "rgRecommendedApps":[], "rgPreferredPlatforms":[], "rgPrimaryLanguage":null, "rgSecondaryLanguages":[], "bAllowAppImpressions":true, "nCartLineItemCount":0, "nRemainingCartDiscount":0, "nTotalCartDiscount":0 } ================================================ FILE: FreePackages.Tests/TestData/userdata_with_followed_apps.json ================================================ { "rgWishlist":[], "rgOwnedPackages":[], "rgOwnedApps":[], "rgFollowedApps":[440], "rgMasterSubApps":[], "rgPackagesInCart":[], "rgAppsInCart":[], "rgRecommendedTags":[], "rgIgnoredApps":{}, "rgIgnoredPackages":[], "rgCurators":{}, "rgCuratorsIgnored":[], "rgCurations":{}, "bShowFilteredUserReviewScores":true, "rgCreatorsFollowed":[], "rgCreatorsIgnored":[], "rgExcludedTags":[], "rgExcludedContentDescriptorIDs":[], "rgAutoGrantApps":[], "rgRecommendedApps":[], "rgPreferredPlatforms":[], "rgPrimaryLanguage":null, "rgSecondaryLanguages":[], "bAllowAppImpressions":true, "nCartLineItemCount":0, "nRemainingCartDiscount":0, "nTotalCartDiscount":0 } ================================================ FILE: FreePackages.Tests/TestData/userdata_with_ignored_apps.json ================================================ { "rgWishlist":[], "rgOwnedPackages":[], "rgOwnedApps":[], "rgFollowedApps":[], "rgMasterSubApps":[], "rgPackagesInCart":[], "rgAppsInCart":[], "rgRecommendedTags":[], "rgIgnoredApps":{"440":0, "730":2}, "rgIgnoredPackages":[], "rgCurators":{}, "rgCuratorsIgnored":[], "rgCurations":{}, "bShowFilteredUserReviewScores":true, "rgCreatorsFollowed":[], "rgCreatorsIgnored":[], "rgExcludedTags":[], "rgExcludedContentDescriptorIDs":[], "rgAutoGrantApps":[], "rgRecommendedApps":[], "rgPreferredPlatforms":[], "rgPrimaryLanguage":null, "rgSecondaryLanguages":[], "bAllowAppImpressions":true, "nCartLineItemCount":0, "nRemainingCartDiscount":0, "nTotalCartDiscount":0 } ================================================ FILE: FreePackages.Tests/TestData/userdata_with_wishlist_apps.json ================================================ { "rgWishlist":[440], "rgOwnedPackages":[], "rgOwnedApps":[], "rgFollowedApps":[], "rgMasterSubApps":[], "rgPackagesInCart":[], "rgAppsInCart":[], "rgRecommendedTags":[], "rgIgnoredApps":{}, "rgIgnoredPackages":[], "rgCurators":{}, "rgCuratorsIgnored":[], "rgCurations":{}, "bShowFilteredUserReviewScores":true, "rgCreatorsFollowed":[], "rgCreatorsIgnored":[], "rgExcludedTags":[], "rgExcludedContentDescriptorIDs":[], "rgAutoGrantApps":[], "rgRecommendedApps":[], "rgPreferredPlatforms":[], "rgPrimaryLanguage":null, "rgSecondaryLanguages":[], "bAllowAppImpressions":true, "nCartLineItemCount":0, "nRemainingCartDiscount":0, "nTotalCartDiscount":0 } ================================================ FILE: FreePackages.Tests/TestData/userinfo_empty.json ================================================ { "logged_in":false, "steamid":"", "accountid":0, "account_name":"", "is_support":false, "is_limited":false, "is_partner_member":false, "is_valve_email":false, "country_code":"", "excluded_content_descriptors":[] } ================================================ FILE: FreePackages.Tests/generate_test_data.sh ================================================ #!/bin/bash ASF_SERVER=${1:-"http://localhost"} ASF_PORT=${2:-"1242"} ASF_PASSWORD=${3:-""} URL="$ASF_SERVER:$ASF_PORT/Api/FreePackages/ASF/GetProductInfo" OUTPUT_DIR="TestData" mkdir -p $OUTPUT_DIR function get_app { if [[ $# -lt 2 ]]; then echo "Not enough arguments to get_app" exit 0 fi curl -G $URL \ -d appIDs=$1 \ -d returnFirstRaw=true \ -H "Authentication: $ASF_PASSWORD" \ -o "$OUTPUT_DIR/$2.txt" } function get_sub { if [[ $# -lt 2 ]]; then echo "Not enough arguments to get_sub" exit 0 fi curl -G $URL \ -d packageIDs=$1 \ -d returnFirstRaw=true \ -H "Authentication: $ASF_PASSWORD" \ -o "$OUTPUT_DIR/$2.txt" } # For filter testing get_app 440 "app_with_type" get_app 440 "app_with_tags" get_app 410 "demo_with_fewer_tags_than_parent" get_app 400 "demo_with_fewer_tags_than_parent_parent" get_app 440 "app_with_categories" get_app 2385860 "playtest_with_no_categories" get_app 1778820 "playtest_with_no_categories_parent" get_app 410 "demo_with_fewer_categories_than_parent" get_app 400 "demo_with_fewer_categories_than_parent_parent" get_app 440 "app_with_language_support" get_app 2385860 "playtest_with_no_languages" get_app 1778820 "playtest_with_no_languages_parent" get_app 1316010 "demo_with_fewer_languages_than_parent" get_app 962130 "demo_with_fewer_languages_than_parent_parent" get_app 440 "app_with_review_score" get_app 440 "app_with_content_descriptors" get_app 547490 "demo_with_fewer_content_descriptors_than_parent" get_app 418240 "demo_with_fewer_content_descriptors_than_parent_parent" get_app 2437370 "playtest_with_no_waitlist" get_app 1873120 "playtest_with_no_waitlist_parent" get_sub 81948 "package_with_free_weekend" get_sub 907539 "package_with_single_app" get_app 1086940 "package_with_single_app_app_1" get_sub 44911 "package_which_is_no_cost" get_app 2390760 "demo_which_will_be_removed" get_sub 860092 "package_with_demo_which_will_be_removed" # For app testing get_app 440 "app_which_is_free" get_app 1086940 "app_with_release_state" get_app 440 "app_with_state" get_app 2378500 "app_with_required_app" get_app 1245610 "app_with_restricted_countries" get_app 212200 "app_with_purchase_restricted_countries" get_app 34330 "app_with_dlc" get_app 2423370 "playtest_with_hidden_parent" get_app 2423350 "playtest_with_hidden_parent_parent" get_app 1086940 "app_with_deck_verified" get_app 30 "app_with_deck_playable" get_app 43160 "app_with_deck_unsupported" get_app 1449570 "app_with_deck_unknown" # For package testing get_sub 953346 "package_which_is_free" get_sub 20737 "package_with_deactivated_demo" get_sub 20737 "package_with_timed_activation" get_sub 657460 "package_with_disallowed_app" get_sub 178 "package_with_restricted_countries" get_sub 1890 "package_with_purchase_restricted_countries" ================================================ FILE: FreePackages.sln ================================================  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.28307.136 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FreePackages", "FreePackages\FreePackages.csproj", "{C485E0CB-4D22-4A09-8CBA-83D1300A83DC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ArchiSteamFarm", "ArchiSteamFarm\ArchiSteamFarm\ArchiSteamFarm.csproj", "{CF84911C-2C4C-4195-8AF3-ABBB6D3DE9AA}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreePackages.Tests", "FreePackages.Tests\FreePackages.Tests.csproj", "{5A9E1E50-7E5A-442F-83E0-928998450E73}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {C485E0CB-4D22-4A09-8CBA-83D1300A83DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C485E0CB-4D22-4A09-8CBA-83D1300A83DC}.Debug|Any CPU.Build.0 = Debug|Any CPU {C485E0CB-4D22-4A09-8CBA-83D1300A83DC}.Release|Any CPU.ActiveCfg = Release|Any CPU {C485E0CB-4D22-4A09-8CBA-83D1300A83DC}.Release|Any CPU.Build.0 = Release|Any CPU {CF84911C-2C4C-4195-8AF3-ABBB6D3DE9AA}.Debug|Any CPU.ActiveCfg = Release|Any CPU {CF84911C-2C4C-4195-8AF3-ABBB6D3DE9AA}.Debug|Any CPU.Build.0 = Release|Any CPU {CF84911C-2C4C-4195-8AF3-ABBB6D3DE9AA}.Release|Any CPU.ActiveCfg = Release|Any CPU {CF84911C-2C4C-4195-8AF3-ABBB6D3DE9AA}.Release|Any CPU.Build.0 = Release|Any CPU {5A9E1E50-7E5A-442F-83E0-928998450E73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5A9E1E50-7E5A-442F-83E0-928998450E73}.Debug|Any CPU.Build.0 = Debug|Any CPU {5A9E1E50-7E5A-442F-83E0-928998450E73}.Release|Any CPU.ActiveCfg = Release|Any CPU {5A9E1E50-7E5A-442F-83E0-928998450E73}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {F0A96B42-B9D3-46DB-B976-08836C4F60A2} EndGlobalSection EndGlobal ================================================ FILE: FreePackagesImporter/README.md ================================================ # Free Packages Importer This userscript lets you transfer packages from SteamDB's [free packages tool](https://steamdb.info/freepackages/) to the [Free Packages ASF plugin](https://github.com/Citrinate/FreePackages). ## Installation 1. Install a userscript manager like [Violentmonkey](https://violentmonkey.github.io/) 2. Go [here](https://raw.githubusercontent.com/Citrinate/FreePackages/main/FreePackagesImporter/code.user.js) and click "Install" 3. Make sure that you have: - ArchiSteamFarm with [IPC](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/IPC) enabled (which is the default) - The [Free Packages plugin](https://github.com/Citrinate/FreePackages) (v1.1.0 or newer) - At least one bot with the plugin [enabled](https://github.com/Citrinate/FreePackages#enabling-the-plugin) ## Usage The userscript will add an additional element to SteamDB's [free packages tool](https://steamdb.info/freepackages/) where you can choose to send all of the packages shown on SteamDB to one or all of your ASF bots. ![Interface](https://raw.githubusercontent.com/Citrinate/FreePackages/main/FreePackagesImporter/Screenshots/interface.png) If you use non-default IPC settings, you can click on "Settings" to change how the userscript connects to ASF. Here you can also control whether or not the packages sent to the plugin will be [filtered](https://github.com/Citrinate/FreePackages#enabling-package-filters). If not filtered, the plugin will attempt to activate all packages sent to it. ![Settings](https://raw.githubusercontent.com/Citrinate/FreePackages/main/FreePackagesImporter/Screenshots/settings.png) ================================================ FILE: FreePackagesImporter/code.user.js ================================================ // ==UserScript== // @name Free Packages Importer // @namespace https://github.com/Citrinate // @author Citrinate // @description Transfer packages from SteamDB's free packages tool to the ASF Free Packages plugin // @version 1.0.5 // @match *://steamdb.info/freepackages/* // @connect localhost // @connect 127.0.0.1 // @connect * // @grant GM_xmlhttpRequest // @grant GM_getValue // @grant GM_setValue // @grant GM_registerMenuCommand // @homepageURL https://github.com/Citrinate/FreePackages // @supportURL https://github.com/Citrinate/FreePackages/issues // @downloadURL https://raw.githubusercontent.com/Citrinate/FreePackages/main/FreePackagesImporter/code.user.js // @updateURL https://raw.githubusercontent.com/Citrinate/FreePackages/main/FreePackagesImporter/code.user.js // ==/UserScript== (async function() { "use strict"; //#region Settings const SETTING_ASF_SERVER = "SETTING_ASF_SERVER"; const SETTING_ASF_PORT = "SETTING_ASF_PORT"; const SETTING_ASF_PASSWORD = "SETTING_ASF_PASSWORD"; const SETTING_USE_FILTER = "SETTING_USE_FILTER"; var defaultSettings = { SETTING_ASF_SERVER: "http://localhost", SETTING_ASF_PORT: "1242", SETTING_ASF_PASSWORD: "", SETTING_USE_FILTER: true, }; function GetSetting(name) { return GM_getValue(name, defaultSettings[name]); } function SetSetting(name, value) { GM_setValue(name, value); } GM_registerMenuCommand("Set ASF IPC Password", () => { const password = prompt("Enter ASF IPC Password", GetSetting(SETTING_ASF_PASSWORD)); if (password !== null) { SetSetting(SETTING_ASF_PASSWORD, password); window.location.reload(); } }); //#endregion BuildInterface(); ShowMessage("Loading..."); // Get displayed packages var freePackages = null; { const packageRegex = new RegExp("sub\/([0-9]+)\/"); function UpdatePackages() { let newFreePackages = []; let packages = document.querySelectorAll(".package"); for (let i = 0; i < packages.length; i++) { let packageElement = packages[i]; if (!packageElement.checkVisibility()) { continue; } let matches = packageElement.innerHTML.match(packageRegex); if (matches) { newFreePackages.push(parseInt(matches[1])); } } freePackages = newFreePackages; UpdateInterface(); } var observer = new MutationObserver(() => { const showMoreButton = document.querySelector('#freepackages a[href="#"]:last-child'); if (showMoreButton?.checkVisibility() && showMoreButton?.innerText.toLowerCase().includes("view all")) { showMoreButton.click(); } UpdatePackages(); }); observer.observe(document.getElementById("freepackages"), { childList: true, attributes: true }); UpdatePackages(); } // Get bot list var bots = null; await SendASF("Bot", "", "GET", "ASF").then((newBots) => { bots = newBots; UpdateInterface(); }).catch((error) => { if (typeof error != "string") { console.log(error); error = `Failed to connect to ASF. Please click on "Settings" and verify your server and port.`; } Finish(); ShowMessage(error); }); function Finish() { observer.disconnect(); } async function AddPackages() { Finish(); ShowMessage("Adding packages..."); let bot = document.getElementById("js-freepackages-bot-select").value; let data = { "PackageIDs": freePackages, "UseFilter": GetSetting(SETTING_USE_FILTER) } await SendASF("FreePackages", "QueueLicenses", "POST", bot, data).then(() => { ShowMessage("Packages added!"); }).catch((error) => { console.log(error); ShowMessage("Failed to add packages."); }); } async function SendASF(operation, path, http_method, target_bot, data = {}) { let payload = JSON.stringify(data); if (http_method == "HEAD" || http_method == "GET") { payload = null; } return new Promise((resolve, reject) => { GM_xmlhttpRequest({ url: `${GetSetting(SETTING_ASF_SERVER)}:${GetSetting(SETTING_ASF_PORT)}/Api/${operation}/${target_bot}/${path}`, method: http_method, data: payload, responseType: "json", headers: { "Accept": "application/json", "Content-Type": "application/json", "Authentication": GetSetting(SETTING_ASF_PASSWORD) }, onload: function(response) { var success = response?.response?.Success ?? false; var message = response?.response?.Message ?? null; var result = response?.response?.Result ?? null; if (result?.StatusCode == 401) { reject(`Missing or incorrect IPC password. Please click on "Settings" and verify your IPC password.`); } if (!success) { reject(message ?? response); } resolve(result ?? response); }, onerror: reject, ontimeout: reject, }); }); } //#region UI function BuildInterface() { document.getElementById("freepackages").insertAdjacentHTML("afterend", `
Add using Free Packages Plugin
`); // Add packages document.getElementById("js-freepackages-add-button").addEventListener("click", function() { AddPackages(); }); // Open settings document.getElementById("js-freepackages-settings-button").addEventListener("click", function() { document.getElementById("js-freepackages-settings").style.display = "flex"; }); // Close settings document.getElementById("js-freepackages-settings-cancel").addEventListener("click", function() { document.getElementById("js-freepackages-settings").style.display = "none"; document.getElementById("js-freepackages-settings-asf-server").value = GetSetting(SETTING_ASF_SERVER); document.getElementById("js-freepackages-settings-asf-port").value = GetSetting(SETTING_ASF_PORT); document.getElementById("js-freepackages-settings-filter").checked = GetSetting(SETTING_USE_FILTER); }); // Save settings document.getElementById("js-freepackages-settings-save").addEventListener("click", function() { let asfServer = document.getElementById("js-freepackages-settings-asf-server").value; let asfPort = document.getElementById("js-freepackages-settings-asf-port").value; let useFilter = document.getElementById("js-freepackages-settings-filter").checked; SetSetting(SETTING_ASF_SERVER, asfServer); SetSetting(SETTING_ASF_PORT, asfPort); SetSetting(SETTING_USE_FILTER, useFilter); location.reload(); }); } function ShowMessage(message) { let messageElement = document.getElementById("js-freepackages-message"); messageElement.innerText = message; document.getElementById("js-freepackages-console").style.display = "none"; messageElement.style.display = "block"; } function UpdateInterface() { if (freePackages == null || bots == null) { return; } if (freePackages.length == 0) { ShowMessage("There are no packages to add."); return; } document.getElementById("js-freepackages-count").innerText = freePackages.length; let pluginEnabled = false; let select = document.getElementById("js-freepackages-bot-select"); select.innerHTML = ``; for (const i in bots) { let bot = bots[i]; let opt = document.createElement("option"); opt.value = bot.BotName; opt.innerHTML = bot.BotName; if (!(bot.BotConfig.EnableFreePackages ?? false)) { opt.innerHTML += " (Plugin not enabled)"; opt.setAttribute("disabled", ""); } else { pluginEnabled = true; } select.appendChild(opt); } document.getElementById("js-freepackages-message").style.display = "none"; document.getElementById("js-freepackages-console").style.display = "flex"; if (!pluginEnabled) { Finish(); ShowMessage("No bots have the Free Packages plugin enabled."); } } //#endregion }) (); ================================================ FILE: LICENSE ================================================ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: README.md ================================================ # Free Packages Plugin for ArchiSteamFarm [![Check out my other ArchiSteamFarm plugins](https://img.shields.io/badge/Check%20out%20my%20other%20ArchiSteamFarm%20plugins-blue?logo=github)](https://github.com/stars/Citrinate/lists/archisteamfarm-plugins) [![Help with translations](https://img.shields.io/badge/Help%20with%20translations-purple?logo=crowdin)](/FreePackages/Localization/) ![GitHub all releases](https://img.shields.io/github/downloads/Citrinate/FreePackages/total?logo=github&label=Downloads) ## Introduction This plugin finds free packages on Steam and adds them to your account. This plugin works by listening for [changes](https://steamdb.info/faq/#changenumber) to Steam's [PICS](https://steamdb.info/faq/#pics). The plugin can discover new packages as they're released, but is limited due to PICS not showing all old changes. As a result, the plugin can only discover packages that have changed recently, usually in the last ~12 hours. To ensure that some of the more popular free packages aren't missed, the plugin also monitors certain free games subreddits (using [ASFinfo](https://github.com/C4illin/ASFinfo)). ## Installation - Download the .zip file of the [latest release](https://github.com/Citrinate/FreePackages/releases/latest) - Locate the `plugins` folder inside your ASF folder. Create a new folder here (e.g., `FreePackages`) and unpack the downloaded .zip file to that folder. - (Re)start ASF. You should see a message indicating that the plugin loaded successfully. > [!NOTE] > This plugin is only tested to work with ASF-generic. It may or may not work with other ASF variants. Nonetheless, feel free to report any issues you may encounter on other variants. ## Quick Start Guide All configuration is added to your existing `BotName.json` files found in the `config` folder inside your ASF folder. Add the following lines to `BotName.json` to enable package redemption for that specific bot: ```json "EnableFreePackages": true, "PauseFreePackagesWhilePlaying": true, ``` By default, the plugin will redeem everything except for demos and playtests. Filters may be used to add custom restrictions. If you don't want all free packages, here's a generally useful filter you can add to `BotName.json` to tell the plugin to only redeem: - Limited-time only free games, and games that increase the games counter on your profile (`+1`) - Games with trading cards - Free DLC for your already owned games ```json "FreePackagesFilters": [{ "NoCostOnly": true, },{ "Categories": [29], },{ "Types": ["DLC"], "IgnoredTypes": ["Game", "Application"], }], ``` If you'd like to redeem absolutely everything, adding this filter to `BotName.json` tells the plugin to include demos and playtests (note: only 1 bot can be configured to join playtests): ```json "FreePackagesFilters": [{ "IgnoredTypes": [], "PlaytestMode": 3, }], ``` After you're done editing your config files, (re)start ASF and use the `!qsa` command to see what the plugin is doing for your bots. Read on for detailed usage information. ## Usage ### Enabling the plugin You can enable the plugin per individual bot by adding `EnableFreePackages` to that bot's config file: ```json "EnableFreePackages": true, ``` --- ### Pausing package activations while playing a game Under certain conditions, activating a free package while playing a game on Steam can cause the game to temporarily freeze. You can prevent the plugin from activating packages while you're in-game by adding `PauseFreePackagesWhilePlaying` to your individual bot's config file. It's recommended you use this for any account you play games on: ```json "PauseFreePackagesWhilePlaying": true, ``` > [!NOTE] > This applies when your account is playing a game outside of ASF, and does not apply when ASF is idling a game. Your library being locked through Family Sharing will also prevent package activation. You likely don't want to enable this if you run idle games 24/7, or your library is otherwise almost always in use, or you only rarely run ASF. --- ### Changing the package limit A maximum of 30 packages can be activated per 1.5 hours. By default, this plugin will use at most 25 of those activations and will resume where it left off if it's ever interrupted. You can control this limit by adding `FreePackagesLimit` to your individual bot's config files of `uint` type: ```json "FreePackagesLimit": 25, ``` > [!NOTE] > The default is intentionally made lower than the actual limit to allow for you the ability to manually redeem packages without having to fight with the plugin. --- ### Enabling package filters By default, the plugin will attempt to activate all free non-demo and non-playtest packages. You can control what kinds of packages are activated by adding `FreePackagesFilters` to your individual bot's config files with the following structure: ```json "FreePackagesFilters": [{ "Types": [], "Tags": [], "Categories": [], "Languages": [], "Systems": [], "MinReviewScore": 0, "MaxDaysOld": 0, "IgnoredContentDescriptors": [], "IgnoredTypes": ["Demo"], "IgnoredTags": [], "IgnoredCategories": [], "IgnoredAppIDs": [], "RequireAllTags": false, "RequireAllCategories": false, "ImportStoreFilters": false, "WishlistOnly": false, "IgnoreFreeWeekends": false, "NoCostOnly": false, "PlaytestMode": 0, }], ``` All filter options are explained below: --- #### Types `HashSet` type with default value of `[]`. Packages must contain an app with one of the `TypeNames` specified here or they will not be added to your account. You can leave this empty to allow for all types. The available `TypeNames` for filtering are: `"Game"`, `"Application"`, `"Tool"`, `"Demo"`, `"DLC"`, `"Music"`, `"Video"` --- #### Tags `HashSet` type with default value of `[]`. Packages must contain an app with at least one of these `TagIDs` or they will not be added to your account. You can leave this empty to allow for all tags. A list of tags can be found [here](https://steamdb.info/tags/). The `TagID` will be at the end of the URL. For example, the `TagID` for the [Indie](https://steamdb.info/tag/492/) tag is 492. > [!NOTE] > The "Profile Features Limited" tag presented by SteamDB is not a real tag that Steam uses. This plugin does not detect whether or not an app has limited profile features. --- #### Categories `HashSet` type with default value of `[]`. Packages must contain an app with at least one of these `CategoryIDs` or they will not be added to your account. You can leave this empty to allow for all categories.
List of Category IDs Category ID | Description --- | --- 1 | Multi-player 2 | Single-player 6 | Mods (require HL2) 7 | Mods (require HL1) 8 | Valve Anti-Cheat enabled 9 | Co-op 10 | Game demo 12 | HDR available 13 | Captions available 14 | Commentary available 15 | Stats 16 | Includes Source SDK 17 | Includes level editor 18 | Partial Controller Support 19 | Mods 20 | MMO 21 | Downloadable Content 22 | Steam Achievements 23 | Steam Cloud 24 | Shared/Split Screen 25 | Steam Leaderboards 27 | Cross-Platform Multiplayer 28 | Full controller support 29 | Steam Trading Cards 30 | Steam Workshop 32 | Steam Turn Notifications 33 | Native Steam Controller 35 | In-App Purchases 36 | Online PvP 37 | Shared/Split Screen PvP 38 | Online Co-op 39 | Shared/Split Screen Co-op 40 | SteamVR Collectibles 41 | Remote Play on Phone 42 | Remote Play on Tablet 43 | Remote Play on TV 44 | Remote Play Together 45 | Cloud Gaming 46 | Cloud Gaming (NVIDIA) 47 | LAN PvP 48 | LAN Co-op 49 | PvP 50 | Additional High-Quality Audio 51 | Steam China Workshop 52 | Tracked Controller Support 53 | VR Supported 54 | VR Only 55 | PS4 Controller Support 56 | PS4 Controller BT Support 57 | PS5 Controller BT Support 58 | PS5 Controller BT Support 59 | Steam Input API Supported 60 | Controller Preferred
--- #### Languages `HashSet` type with default value of `[]`. Packages must contain an app with support for at least one of these `LanguageIDs` or they will not be added to your account. You can leave this empty to allow for all languages.
List of Language IDs Language ID | Language --- | --- `"afrikaans"` | Afrikaans `"albanian"` | Albanian `"amharic"` | Amharic `"arabic"` | Arabic `"armenian"` | Armenian `"assamese"` | Assamese `"azerbaijani"` | Azerbaijani `"bangla"` | Bangla `"basque"` | Basque `"belarusian"` | Belarusian `"bosnian"` | Bosnian `"bulgarian"` | Bulgarian `"catalan"` | Catalan `"cherokee"` | Cherokee `"croatian"` | Croatian `"czech"` | Czech `"danish"` | Danish `"dari"` | Dari `"dutch"` | Dutch `"english"` | English `"estonian"` | Estonian `"filipino"` | Filipino `"finnish"` | Finnish `"french"` | French `"galician"` | Galician `"georgian"` | Georgian `"german"` | German `"greek"` | Greek `"gujarati"` | Gujarati `"hausa"` | Hausa `"hebrew"` | Hebrew `"hindi"` | Hindi `"hungarian"` | Hungarian `"icelandic"` | Icelandic `"igbo"` | Igbo `"irish"` | Irish `"italian"` | Italian `"japanese"` | Japanese `"kannada"` | Kannada `"kazakh"` | Kazakh `"khmer"` | Khmer `"kinyarwanda"` | Kinyarwanda `"konkani"` | Konkani `"koreana"` | Korean `"kyrgyz"` | Kyrgyz `"kiche"` | K'iche' `"latvian"` | Latvian `"lithuanian"` | Lithuanian `"luxembourgish"` | Luxembourgish `"macedonian"` | Macedonian `"malay"` | Malay `"malayalam"` | Malayalam `"maltese"` | Maltese `"maori"` | Maori `"marathi"` | Marathi `"mongolian"` | Mongolian `"nepali"` | Nepali `"norwegian"` | Norwegian `"odia"` | Odia `"persian"` | Persian `"polish"` | Polish `"portuguese"` | Portuguese - Portugal `"gurmukhi"` | Punjabi (Gurmukhi) `"shahmukhi"` | Punjabi (Shahmukhi) `"quechua"` | Quechua `"romanian"` | Romanian `"russian"` | Russian `"scots"` | Scots `"serbian"` | Serbian `"schinese"` | Simplified Chinese `"sindhi"` | Sindhi `"sinhala"` | Sinhala `"slovak"` | Slovak `"slovenian"` | Slovenian `"sorani"` | Sorani `"sotho"` | Sotho `"latam"` | Spanish - Latin America `"spanish"` | Spanish - Spain `"swahili"` | Swahili `"swedish"` | Swedish `"tajik"` | Tajik `"tamil"` | Tamil `"tatar"` | Tatar `"telugu"` | Telugu `"thai"` | Thai `"tigrinya"` | Tigrinya `"tchinese"` | Traditional Chinese `"tswana"` | Tswana `"turkish"` | Turkish `"turkmen"` | Turkmen `"ukrainian"` | Ukrainian `"urdu"` | Urdu `"uyghur"` | Uyghur `"uzbek"` | Uzbek `"valencian"` | Valencian `"vietnamese"` | Vietnamese `"welsh"` | Welsh `"wolof"` | Wolof `"xhosa"` | Xhosa `"yoruba"` | Yoruba `"zulu"` | Zulu
--- #### Systems `HashSet` type with default value of `[]`. Packages must contain an app with support for one of the `SystemNames` specified here or they will not be added to your account. You can leave this empty to allow for all systems. The available `SystemNames` for filtering are: `"Windows"`, `"MacOS"`, `"Linux"`, `"DeckVerified"`, `"DeckPlayable"`, `"DeckUnsupported"`, `"DeckUnknown"` --- #### MinReviewScore `uint` type with default value of `0`. Packages must contain an app with a `ReviewScore` greater than or equal to this or they will not be added to your account. You can leave this at `0` to allow for all values. A `ReviewScore` may range from 1 to 9 and is not the same as the percentage of positive reviews; it includes reviews in all languages, and its value may differ slightly from what you see on the Steam storefront. Refer to the list below for more information. This filter is not applied to demos or playtests as they can't normally be reviewed.
List of Review Scores Review Score | Description | # of Reviews | % of Positive Reviews --- | --- | --- | --- 1 | Overwhelmingly Negative | 500+ | 0%-19% 2 | Very Negative | 50-499 | 0%-19% 3 | Negative | 1-49 | 0%-19% 4 | Mostly Negative | - | 20%-39% 5 | Mixed | - | 40%-69% 6 | Mostly Positive | - | 70%-79% 7 | Positive | 1-49 | 80%-100% 8 | Very Positive | 50-499 | 80%-100% 8 | Very Positive | 500+ | 80%-94% 9 | Overwhelmingly Positive | 500+ | 95%-100%
--- #### MaxDaysOld `uint` type with default value of `0`. Packages must contain an app which was released on Steam within the last `MaxDaysOld` days or they will not be added to your account. You can leave this at `0` to not filter by release date. --- #### IgnoredContentDescriptors `HashSet` type with default value of `[]`. Packages containing apps with any of the `ContentDescriptorIDs` specified here will not be added to your account. Detailed information about content descriptors can be found [here](https://store.steampowered.com/account/preferences/) under "Mature Content Filtering".
List of Content Descriptor IDs Descriptor ID | Description --- | --- 1 | Some Nudity or Sexual Content 2 | Frequent Violence or Gore 3 | Adult Only Sexual Content 4 | Frequent Nudity or Sexual Content 5 | General Mature Content
--- #### IgnoredTypes `HashSet` type with default value of `["Demo"]`. Packages containing apps with any of the `TypeNames` specified here will not be added to your account. Refer to [Types](#types) for more information about `TypeNames`. > [!NOTE] > Demos are filtered out by default. This is because Steam has at times removed all uninstalled demos from accounts. If you'd like the plugin to activate demos, you can do so by setting `IgnoredTypes` to `[]`, or some other value that doesn't include `"Demo"`. --- #### IgnoredTags `HashSet` type with default value of `[]`. Packages containing apps with any of these `TagIDs` will not be added to your account. Refer to [Tags](#tags) for more information about `TagIDs`. --- #### IgnoredCategories `HashSet` type with default value of `[]`. Packages containing apps with any of these `CategoryIDs` will not be added to your account. Refer to [Categories](#categories) for more information about `CategoryIDs`. --- #### IgnoredAppIDs `HashSet` type with default value of `[]`. Packages containing apps with any of these `AppIDs` will not be added to your account. --- #### RequireAllTags `bool` type with default value of `false`. If set to `true`, packages must contain an app with **all** of the `TagIDs` specified in the [Tags](#tags) filter or they will not be added to your account. --- #### RequireAllCategories `bool` type with default value of `false`. If set to `true`, packages must contain an app with **all** of the `CategoryIDs` specified in the [Categories](#categories) filter or they will not be added to your account. --- #### ImportStoreFilters `bool` type with default value of `false`. If set to `true`, the filter will also use the ignored games, ignored tags, and ignored content descriptor settings you use on the Steam storefront. --- #### WishlistOnly `bool` type with default value of `false`. If set to `true`, packages must contain an app your account has wishlisted or followed on the Steam storefront or they will not be added to your account. --- #### IgnoreFreeWeekends `bool` type with default value of `false`. Free weekend packages will be ignored if set to `true`. --- #### NoCostOnly `bool` type with default value of `false`. If set to `true`, only "No Cost" packages will be added to your account. "No Cost" packages tend to be those which are free for only a limited time, and can also sometimes give a +1 to your owned games count. --- #### PlaytestMode `uint` type with default value of `0`. Some or all playtests will be ignored based on the provided value.
List of Playtest Modes Playtest Modes | Description --- | --- 0 | Ignore all playtests 1 | Include only unlimited playtests 2 | Include only limited playtests 3 | Include all playtests
> [!NOTE] > Only one of your bots may use the `PlaytestMode` filter option. As some playtests have a limited number of slots, this is an artificial restriction I've put in place to limit how many slots a single person can occupy. > [!NOTE] > If you use `PauseFreePackagesWhilePlaying`, be aware that when it comes to limited playtests, the plugin cannot control when the playtest package is added to your account. When or if this happens is decided by the game's developer, and so it's possible that a package will be added to your account while you're playing a game. --- ### Using multiple package filters You can define as many filters as you'd like, and packages that pass any one of your filters will be added to your account. For example, with the four filters below we can allow for any of: - Free games with Steam Trading Cards, but without nudity - Free games or playtests which have English or French language support, and Puzzle or Programming tags - Free DLC for games you own - Games which are free for a limited time only ```json "FreePackagesFilters": [{ "Types": ["Game"], "Categories": [29], "IgnoredContentDescriptors": [3, 4], },{ "Types": ["Game"], "Tags": [1664, 5432], "Languages": ["english", "french"], "PlaytestMode": 3, },{ "Types": ["DLC"], "IgnoredTypes": ["Game", "Application"], },{ "NoCostOnly": true, }], ``` --- ### Importing packages While the plugin can be used passively, you can also manually import free packages from [SteamDB](https://steamdb.info/freepackages/) using [the importer userscript](/FreePackagesImporter/), or through the commands and [IPC interface](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/IPC) endpoints below. --- ### Activation Commands Command | Access | Description --- | --- | --- `queuestatus [Bots]`|`Master`|Prints the status of the given bot's packages queue `queuelicense [Bots] `|`Master`|Adds given `licenses`, explained [here](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Commands#licenses), to the given bot's packages queue. Playtests cannot be added to the package queue using this command `queuelicense^ [Bots] `|`Master`|Adds given `licenses`, explained [here](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Commands#licenses), to the given bot's packages queue using that bot's package filters `clearqueue [Bots]`|`Master`|Removes everything from the given bot's packages queue ### Removal Commands Command | Access | Description --- | --- | --- `removefreepackages [Bot]`|`Master`|Removes any free packages from the given bot's account that are unwanted by the bot's [package filters](#enabling-package-filters), and that have a "Remove" button on the [licenses page](https://store.steampowered.com/account/licenses/). This won't remove any packages that used to be free, but currently aren't. After this command is used, you'll be presented with a list of packages to review, edit, and then confirm the removal of `removefreepackages^ [Bot]`|`Master`|Like `removefreepackages`, but will also exclude for removal anything that has been played by the given bot `removeallfreepackages [Bot]`|`Master`|Removes all packages from the given bot's account that have a "Remove" button on the [licenses page](https://store.steampowered.com/account/licenses/). After this command is used, you'll be presented with a list of packages to review, edit, and then confirm the removal of `removeallfreepackages^ [Bot]`|`Master`|Like `removeallfreepackages`, but will exclude for removal anything that has been played by the given bot `cancelremove [Bots]`|`Master`|Cancels any package removals `confirmremove [Bots]`|`Master`|Begins the process of removing unwanted free packages `dontremove [Bots] `|`Master`|Removes given `licenses` (explained [here](https://github.com/JustArchiNET/ArchiSteamFarm/wiki/Commands#licenses)) from the list of packages about to be removed ### Other Commands Command | Access | Description --- | --- | --- `freepackages`|`Master`|Prints version of plugin. --- #### Command Aliases Command | Alias | --- | --- | `queuestatus`|`qstatus` `queuestatus asf`|`qsa` `queuelicense`|`queuelicence`, `qlicense`, `qlicence` `queuelicense^`|`queuelicence^`, `qlicense^`, `qlicence^` --- ### IPC Interface API | Method | Parameters | Description --- | --- | --- | --- `/Api/FreePackages/{botNames}/GetChangesSince/{changeNumber}`|`GET`| |Request changes for apps and packages since a given change number [^1] `/Api/FreePackages/{botName}/GetOwnedApps`|`GET`|`showDetails`|Retrieves all apps owned by the given bot `/Api/FreePackages/{botName}/GetOwnedPackages`|`GET`| |Retrieves all packages owned by the given bot `/Api/FreePackages/{botNames}/GetProductInfo`|`GET`|`appIDs`, `packageIDs`|Request product information for a list of apps or packages [^1] `/Api/FreePackages/{botNames}/QueueLicenses`|`POST`|`appIDs`, `packageIDs`, `useFilter`|Adds the given appIDs and packageIDs to the given bot's package queue `/Api/FreePackages/{botName}/RequestFreeAppLicense`|`POST`|`appIDs`|Request a free license for given appIDs `/Api/FreePackages/{botName}/RequestFreeSubLicense`|`POST`|`subID`|Request a free license for given subID [^1]: Responses are not dependent on the account used to make these requests. You may provide multiple `botNames`, and the first available bot will be used to make the request. ================================================ FILE: SECURITY.md ================================================ # Security Policy ## Supported Versions Only the latest version is supported. ## Reporting a Vulnerability Please report security vulnerabilities using GitHub’s Security tab for this repository. ================================================ FILE: build.bat ================================================ @echo off rem getting current dir name by Tamara Wijsman, https://superuser.com/questions/160702 for %%I in (.) do set CurrDirName=%%~nxI rem download submodule if not exist ArchiSteamFarm\ArchiSteamFarm (git submodule update --init) if [%1]==[] goto noarg rem update submodule to required tag, if specified... git submodule foreach "git fetch origin; git checkout %1;" goto continue :noarg rem ...otherwise update submodule to latest tag git submodule foreach "git fetch origin; git checkout $(git rev-list --tags --max-count=1);" :continue rem print what version we are building for git submodule foreach "git describe --tags;" rem wipe out old build if exist out rmdir /Q /S out rem release generic version dotnet publish FreePackages -c "Release" -f "net10.0" -o "out/generic" "/p:LinkDuringPublish=false" mkdir .\out\%CurrDirName% copy .\out\generic\%CurrDirName%.dll .\out\%CurrDirName% rem comment section below (downto :zip label) if you don't want to include documentation if not exist README.md (goto zip) where /q pandoc.exe if ERRORLEVEL 1 ( copy README.md .\out\%CurrDirName% goto zip ) else ( pandoc --metadata title="%CurrDirName%" --standalone --columns 2000 -f markdown -t html --embed-resources --standalone -c .\github-pandoc.css -o .\out\%CurrDirName%\README.html README.md ) :zip 7z a -tzip -mx7 .\out\%CurrDirName%.zip .\out\%CurrDirName% rmdir /Q /S out\%CurrDirName% ================================================ FILE: build.sh ================================================ #!/bin/bash ## https://github.com/Ryzhehvost/asf_plugin_creator ################################################################################ PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$HOME/bin export PATH ################################################################################ _PROGN_=`basename $0` _INSTDIR_=`dirname $0` [[ $_INSTDIR_ = . ]] && _INSTDIR_=`pwd` ################################################################################ ## getting current directory name from '$_INSTDIR_' variable plugin_name=$(echo $_INSTDIR_ | sed 's|.*/||') # download submodule if [[ ! -d ArchiSteamFarm/ArchiSteamFarm ]]; then git submodule update --init fi if [[ $# -gt 1 ]]; then echo "Too many arguments. Exiting." exit 1 elif [[ $# -eq 1 ]]; then ## update submodule to required tag as specified in '$1' git submodule foreach "git fetch origin; git checkout $1;" else ## otherwise update submodule to latest tag git submodule foreach "git fetch origin; git checkout $(git rev-list --tags --max-count=1);" fi ## print what version we are building for git submodule foreach "git describe --tags;" if [[ -d ./out ]]; then rm -rf ./out fi ## release generic version dotnet restore sync dotnet publish FreePackages -c "Release" -f net10.0 -o "out/generic" "/p:LinkDuringPublish=false" mkdir ./out/$plugin_name cp ./out/generic/$plugin_name.dll ./out/$plugin_name ( cd ./out/generic ; cp --parents ./*/$plugin_name.resources.dll ../../out/$plugin_name || : ) if [[ -f "README.md" ]]; then if ! command -v pandoc &> /dev/null; then cp README.md ./out/$plugin_name else pandoc --metadata title="$plugin_name" --standalone --columns 2000 -f markdown -t html --embed-resources --standalone -c ./github-pandoc.css -o ./out/$plugin_name/README.html README.md fi fi 7z a -tzip -mx7 ./out/$plugin_name.zip ./out/$plugin_name rm -rf out/$plugin_name ================================================ FILE: crowdin.yml ================================================ files: - source: /FreePackages/Localization/Strings.resx translation: /FreePackages/Localization/Strings.%locale%.resx ================================================ FILE: github-pandoc.css ================================================ /*! normalize.css v2.1.3 | MIT License | git.io/normalize */ /* ========================================================================== HTML5 display definitions ========================================================================== */ /** * Correct `block` display not defined in IE 8/9. */ article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; } /** * Correct `inline-block` display not defined in IE 8/9. */ audio, canvas, video { display: inline-block; } /** * Prevent modern browsers from displaying `audio` without controls. * Remove excess height in iOS 5 devices. */ audio:not([controls]) { display: none; height: 0; } /** * Address `[hidden]` styling not present in IE 8/9. * Hide the `template` element in IE, Safari, and Firefox < 22. */ [hidden], template { display: none; } /* ========================================================================== Base ========================================================================== */ /** * 1. Set default font family to sans-serif. * 2. Prevent iOS text size adjust after orientation change, without disabling * user zoom. */ html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } /** * Remove default margin. */ body { margin: 0; } /* ========================================================================== Links ========================================================================== */ /** * Remove the gray background color from active links in IE 10. */ a { background: transparent; } /** * Address `outline` inconsistency between Chrome and other browsers. */ a:focus { outline: thin dotted; } /** * Improve readability when focused and also mouse hovered in all browsers. */ a:active, a:hover { outline: 0; } /* ========================================================================== Typography ========================================================================== */ /** * Address variable `h1` font-size and margin within `section` and `article` * contexts in Firefox 4+, Safari 5, and Chrome. */ h1 { font-size: 2em; margin: 0.67em 0; } /** * Address styling not present in IE 8/9, Safari 5, and Chrome. */ abbr[title] { border-bottom: 1px dotted; } /** * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */ b, strong { font-weight: bold; } /** * Address styling not present in Safari 5 and Chrome. */ dfn { font-style: italic; } /** * Address differences between Firefox and other browsers. */ hr { -moz-box-sizing: content-box; box-sizing: content-box; height: 0; } /** * Address styling not present in IE 8/9. */ mark { background: #ff0; color: #000; } /** * Correct font family set oddly in Safari 5 and Chrome. */ code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; } /** * Improve readability of pre-formatted text in all browsers. */ pre { white-space: pre-wrap; } /** * Set consistent quote types. */ q { quotes: "\201C" "\201D" "\2018" "\2019"; } /** * Address inconsistent and variable font size in all browsers. */ small { font-size: 80%; } /** * Prevent `sub` and `sup` affecting `line-height` in all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } /* ========================================================================== Embedded content ========================================================================== */ /** * Remove border when inside `a` element in IE 8/9. */ img { border: 0; } /** * Correct overflow displayed oddly in IE 9. */ svg:not(:root) { overflow: hidden; } /* ========================================================================== Figures ========================================================================== */ /** * Address margin not present in IE 8/9 and Safari 5. */ figure { margin: 0; } /* ========================================================================== Forms ========================================================================== */ /** * Define consistent border, margin, and padding. */ fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } /** * 1. Correct `color` not being inherited in IE 8/9. * 2. Remove padding so people aren't caught out if they zero out fieldsets. */ legend { border: 0; /* 1 */ padding: 0; /* 2 */ } /** * 1. Correct font family not being inherited in all browsers. * 2. Correct font size not being inherited in all browsers. * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. */ button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ } /** * Address Firefox 4+ setting `line-height` on `input` using `!important` in * the UA stylesheet. */ button, input { line-height: normal; } /** * Address inconsistent `text-transform` inheritance for `button` and `select`. * All other form control elements do not inherit `text-transform` values. * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. * Correct `select` style inheritance in Firefox 4+ and Opera. */ button, select { text-transform: none; } /** * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` * and `video` controls. * 2. Correct inability to style clickable `input` types in iOS. * 3. Improve usability and consistency of cursor style between image-type * `input` and others. */ button, html input[type="button"], /* 1 */ input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } /** * Re-set default cursor for disabled elements. */ button[disabled], html input[disabled] { cursor: default; } /** * 1. Address box sizing set to `content-box` in IE 8/9/10. * 2. Remove excess padding in IE 8/9/10. */ input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /** * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome * (include `-moz` to future-proof). */ input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; } /** * Remove inner padding and search cancel button in Safari 5 and Chrome * on OS X. */ input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /** * Remove inner padding and border in Firefox 4+. */ button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } /** * 1. Remove default vertical scrollbar in IE 8/9. * 2. Improve readability and alignment in all browsers. */ textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ } /* ========================================================================== Tables ========================================================================== */ /** * Remove most spacing between table cells. */ table { border-collapse: collapse; border-spacing: 0; } .go-top { position: fixed; bottom: 2em; right: 2em; text-decoration: none; background-color: #E0E0E0; font-size: 12px; padding: 1em; display: inline; } /* Github css */ html,body{ margin: auto; padding-right: 1em; padding-left: 1em; color:black;}*:not('#mkdbuttons'){margin:0;padding:0}body{font:13.34px helvetica,arial,freesans,clean,sans-serif;-webkit-font-smoothing:subpixel-antialiased;line-height:1.4;padding:3px;background:#fff;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px}p{margin:1em 0}a{color:#4183c4;text-decoration:none}body{background-color:#fff;padding:30px;margin:15px;font-size:14px;line-height:1.6}body>*:first-child{margin-top:0!important}body>*:last-child{margin-bottom:0!important}@media screen{body{box-shadow:0 0 0 1px #cacaca,0 0 0 4px #eee}}h1,h2,h3,h4,h5,h6{margin:20px 0 10px;padding:0;font-weight:bold;-webkit-font-smoothing:subpixel-antialiased;cursor:text}h1{font-size:28px;color:#000}h2{font-size:24px;border-bottom:1px solid #ccc;color:#000}h3{font-size:18px;color:#333}h4{font-size:16px;color:#333}h5{font-size:14px;color:#333}h6{color:#777;font-size:14px}p,blockquote,table,pre{margin:15px 0}ul{padding-left:30px}ol{padding-left:30px}ol li ul:first-of-type{margin-top:0}hr{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;border:0 none;color:#ccc;height:4px;padding:0}body>h2:first-child{margin-top:0;padding-top:0}body>h1:first-child{margin-top:0;padding-top:0}body>h1:first-child+h2{margin-top:0;padding-top:0}body>h3:first-child,body>h4:first-child,body>h5:first-child,body>h6:first-child{margin-top:0;padding-top:0}a:first-child h1,a:first-child h2,a:first-child h3,a:first-child h4,a:first-child h5,a:first-child h6{margin-top:0;padding-top:0}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p,ul li>:first-child,ol li>:first-child{margin-top:0}dl{padding:0}dl dt{font-size:14px;font-weight:bold;font-style:italic;padding:0;margin:15px 0 5px}dl dt:first-child{padding:0}dl dt>:first-child{margin-top:0}dl dt>:last-child{margin-bottom:0}dl dd{margin:0 0 15px;padding:0 15px}dl dd>:first-child{margin-top:0}dl dd>:last-child{margin-bottom:0}blockquote{border-left:4px solid #DDD;padding:0 15px;color:#777}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}table{border-collapse:collapse;border-spacing:0;font-size:100%;font:inherit}table th{font-weight:bold;border:1px solid #ccc;padding:6px 13px}table td{border:1px solid #ccc;padding:6px 13px}table tr{border-top:1px solid #ccc;background-color:#fff}table tr:nth-child(2n){background-color:#f8f8f8}img{max-width:100%}code,tt{margin:0 2px;padding:0 5px;white-space:nowrap;border:1px solid #eaeaea;background-color:#f8f8f8;border-radius:3px;font-family:Consolas,'Liberation Mono',Courier,monospace;font-size:12px;color:#333}pre>code{margin:0;padding:0;white-space:pre;border:0;background:transparent}.highlight pre{background-color:#f8f8f8;border:1px solid #ccc;font-size:13px;line-height:19px;overflow:auto;padding:6px 10px;border-radius:3px}pre{background-color:#f8f8f8;border:1px solid #ccc;font-size:13px;line-height:19px;overflow:auto;padding:6px 10px;border-radius:3px}pre code,pre tt{background-color:transparent;border:0}.poetry pre{font-family:Georgia,Garamond,serif!important;font-style:italic;font-size:110%!important;line-height:1.6em;display:block;margin-left:1em}.poetry pre code{font-family:Georgia,Garamond,serif!important;word-break:break-all;word-break:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto;white-space:pre-wrap}sup,sub,a.footnote{font-size:1.4ex;height:0;line-height:1;vertical-align:super;position:relative}sub{vertical-align:sub;top:-1px}@media print{body{background:#fff}img,pre,blockquote,table,figure{page-break-inside:avoid}body{background:#fff;border:0}code{background-color:#fff;color:#333!important;padding:0 .2em;border:1px solid #dedede}pre{background:#fff}pre code{background-color:white!important;overflow:visible}}@media screen{body.inverted{color:#eee!important;border-color:#555;box-shadow:none}.inverted body,.inverted hr .inverted p,.inverted td,.inverted li,.inverted h1,.inverted h2,.inverted h3,.inverted h4,.inverted h5,.inverted h6,.inverted th,.inverted .math,.inverted caption,.inverted dd,.inverted dt,.inverted blockquote{color:#eee!important;border-color:#555;box-shadow:none}.inverted td,.inverted th{background:#333}.inverted h2{border-color:#555}.inverted hr{border-color:#777;border-width:1px!important}::selection{background:rgba(157,193,200,0.5)}h1::selection{background-color:rgba(45,156,208,0.3)}h2::selection{background-color:rgba(90,182,224,0.3)}h3::selection,h4::selection,h5::selection,h6::selection,li::selection,ol::selection{background-color:rgba(133,201,232,0.3)}code::selection{background-color:rgba(0,0,0,0.7);color:#eee}code span::selection{background-color:rgba(0,0,0,0.7)!important;color:#eee!important}a::selection{background-color:rgba(255,230,102,0.2)}.inverted a::selection{background-color:rgba(255,230,102,0.6)}td::selection,th::selection,caption::selection{background-color:rgba(180,237,95,0.5)}.inverted{background:#0b2531;background:#252a2a}.inverted body{background:#252a2a}.inverted a{color:#acd1d5}}.highlight .c{color:#998;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k,.highlight .o{font-weight:bold}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:bold}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-weight:bold;font-style:italic}.highlight .gd{color:#000;background-color:#fdd}.highlight .gd .x{color:#000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000;background-color:#dfd}.highlight .gi .x{color:#000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#800080;font-weight:bold}.highlight .gt{color:#a00}.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr{font-weight:bold}.highlight .kt{color:#458;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:#008080}.highlight .nb{color:#0086b3}.highlight .nc{color:#458;font-weight:bold}.highlight .no{color:#008080}.highlight .ni{color:#800080}.highlight .ne,.highlight .nf{color:#900;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:#000080}.highlight .nv{color:#008080}.highlight .ow{font-weight:bold}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#099}.highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc,.highlight .vg,.highlight .vi{color:#008080}.highlight .il{color:#099}.highlight .gc{color:#999;background-color:#eaf2f5}.type-csharp .highlight .k,.type-csharp .highlight .kt{color:#00F}.type-csharp .highlight .nf{color:#000;font-weight:normal}.type-csharp .highlight .nc{color:#2b91af}.type-csharp .highlight .nn{color:#000}.type-csharp .highlight .s,.type-csharp .highlight .sc{color:#a31515}