[
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report.md",
    "content": "---\r\nname: Bug report\r\nabout: Create a bug report to help us improve\r\ntitle: ''\r\nlabels: Bug\r\nassignees: ''\r\n\r\n---\r\n\r\n## Describe the bug\r\n\r\nA clear and concise description of what the bug is.\r\n\r\n## To reproduce\r\n\r\nSteps to reproduce the behavior:\r\n\r\n1. Go to '...'\r\n2. Click on '....'\r\n3. Scroll down to '....'\r\n4. See error\r\n\r\n## Expected behavior\r\n\r\nA clear and concise description of what you expected to happen.\r\n\r\n## Screenshots\r\n\r\nIf applicable, add screenshots to help explain your problem.\r\n\r\n## Your setup (please complete the following information)\r\n\r\n- Unity Version [e.g. 2021.3.3f1]\r\n- Visual Profiler Version [e.g. v2.1.0]\r\n\r\n## Target platform (please complete the following information)\r\n\r\n- HoloLens 2\r\n- Standalone PC\r\n- etc.\r\n\r\n## Additional context\r\n\r\nAdd any other context about the problem here.\r\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/documentation-issue.md",
    "content": "---\r\nname: Documentation Issue\r\nabout: 'Something in our doc is missing or incorrect '\r\ntitle: ''\r\nlabels: Documentation\r\nassignees: ''\r\n\r\n---\r\n\r\n## Describe the issue\r\nA clear and concise what the issue\r\n\r\n## Feature area\r\nWhat's incorrect? What's missing?\r\n\r\n## Existing doc link\r\nIf this is about something in an existing document, please provide link\r\n\r\n## Additional context\r\nAdd any other context about the problem here.\r\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-request.md",
    "content": "---\r\nname: Feature Request\r\nabout: Suggest an idea for the Visual Profiler\r\ntitle: ''\r\nlabels: Feature Request\r\nassignees: ''\r\n\r\n---\r\n\r\n## Describe the problem\r\n\r\nA clear and concise description of what the problem is. Ex. I'm always frustrated when [...]\r\n\r\n## Describe the solution you'd like\r\n\r\nA clear and concise description of what you want to happen.\r\n\r\n## Describe alternatives you've considered\r\n\r\nA clear and concise description of any alternative solutions or features you've considered.\r\n\r\n## Additional context\r\n\r\nAdd any other context or screenshots about the feature request here.\r\n"
  },
  {
    "path": ".github/issue_template.md",
    "content": "## Overview\r\n\r\n## Expected behavior\r\n\r\n## Actual behavior\r\n\r\n## Steps to reproduce\r\n_(Links to sample github project preferred)_\r\n\r\n## Unity editor version\r\n\r\n## Visual Profiler release version\r\n"
  },
  {
    "path": ".github/pull_request_template.md",
    "content": "## Overview\r\n\r\n\r\n## Changes\r\n- Fixes: # .\r\n\r\n\r\n## Verification\r\n> This optional section is a place where you can detail the specific type of verification\r\n> you want from reviewers. For example, if you want reviewers to checkout the PR locally\r\n> and validate the functionality of specific scenarios, provide instructions\r\n> on the specific scenarios and what you want verified.\r\n>\r\n> If there are specific areas of concern or question feel free to highlight them here so\r\n> that reviewers can watch out for those issues.\r\n>\r\n> As a reviewer, it is possible to check out this change locally by using the following\r\n> commands (substituting {PR_ID} with the ID of this pull request):\r\n>\r\n> git fetch origin pull/{PR_ID}/head:name_of_local_branch\r\n>\r\n> git checkout name_of_local_branch\r\n"
  },
  {
    "path": ".gitignore",
    "content": "# Visual Studio cache directory\n.vs/\n"
  },
  {
    "path": "LICENSE",
    "content": "    MIT License\n\n    Copyright (c) Microsoft Corporation.\n\n    Permission is hereby granted, free of charge, to any person obtaining a copy\n    of this software and associated documentation files (the \"Software\"), to deal\n    in the Software without restriction, including without limitation the rights\n    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n    copies of the Software, and to permit persons to whom the Software is\n    furnished to do so, subject to the following conditions:\n\n    The above copyright notice and this permission notice shall be included in all\n    copies or substantial portions of the Software.\n\n    THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n    SOFTWARE\n"
  },
  {
    "path": "README.md",
    "content": "# Visual Profiler\n\nThe Visual Profiler provides a drop in solution for viewing your mixed reality Unity application's frame rate, scene complexity, and memory usage across a variety of platforms.\n\n![Visual Profiler Screenshot](README/Images/ProfilerScreenshot.png)\n\nMissed frames are displayed over time to visually find problem areas. Scene complexity is reported in the form of batches, draw calls, and rendered vertex counts (or triangle counts). Memory is reported as current, peak and max usage in a bar graph.\n\n> [!NOTE]\n> To ensure the profiler is minimally intrusive it does not create any GameObjects, perform any per frame managed allocations, and renders in a single draw call.\n\nThe Visual Profiler has been verified to work on the following platforms:\n\n- Microsoft HoloLens & HoloLens 2\n- Microsoft Immersive headsets (IHMD)\n- OpenXR platforms\n- Steam VR (HTC Vive / Oculus Rift)\n- Meta Quest & Quest 2\n- Windows PCs\n- WebGL\n\n## Installation\n\nThe Visual Profiler is normally ingested as a Unity [package](https://docs.unity3d.com/Manual/Packages.html). To import the Visual Profiler package into your Unity project follow the below steps:\n\n> [!NOTE]\n> The Visual Profiler package requires Unity 2021.3 and above.\n\n1. Open your Unity project and select `Window > Package Manager` from the file menu bar\n\n2. Click the `'+'` icon within the Package Manager and select `\"Add package from git URL...\"`\n\n    ![Package Manager Add](README/Images/PackageManagerAdd.png)\n\t\n3. Paste *https://github.com/microsoft/VisualProfiler-Unity.git?path=/com.microsoft.mixedreality.visualprofiler#v3.4.0* into the text field and click `\"Add\"`\n\n    ![Package Manager Paste](README/Images/PackageManagerPaste.png)\n\n4. The Visual Profiler will now be installed within your Unity project as an immutable package within the project's `Packages` folder named `Microsoft Mixed Reality Visual Profiler`.\n\n5. Finally, add the VisualProfiler component to any GameObject in the Unity scene you wish to profile. The profiler is initially active and visible (toggle-able via the IsVisible property), but can be toggled via the enabled/disable voice command keywords (on Windows/UWP platforms only).\n\nIt is advised you use a specific release of the Visual Profiler package to ensure your project is locked to a stable release. Release version 3.4.0 is suggested in step three above. You can also pull another version, specific branch, or git commit hash by altering the URL as demonstrated below:\n\n| Syntax           | URL example                                                                                                                                               |\n|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Specific version | *https://github.com/microsoft/VisualProfiler-Unity.git?path=/com.microsoft.mixedreality.visualprofiler#vX.Y.Z*                                   |\n| Specific branch  | *https://github.com/microsoft/VisualProfiler-Unity.git?path=/com.microsoft.mixedreality.visualprofiler#my_branch*                                |\n| Git commit hash  | *https://github.com/microsoft/VisualProfiler-Unity.git?path=/com.microsoft.mixedreality.visualprofiler#badc0ffee0ddf00ddead10cc8badf00d1badb002* |\n\n## Usage\n\nWhen using the profiler look for \"missed frames\" which appear as orange bars. Missed frames indicate your application is not hitting its target frame rate and may need optimization work. Draw call counts and vertex counts (or triangle counts) are also displayed under the missed frame indicators. These numbers can be indicative of why your app isn't meeting its target frame rate.\n\n![Profiler Guide](README/Images/ProfilerGuide.png)\n\nOne should also keep an eye on the bottom memory bar to insure memory usage isn't rapidly changing or approaching the application's memory limit.\n\n> [!NOTE]\n> The Visual Profiler works in both development and release builds.\n\nThe profiler UI (such as anchoring, scale, follow behavior and UI color) can also be tweaked in the component inspector.\n\n![Profiler Inspector](README/Images/ProfilerInspector.png)\n\nCustom profilers can be added to the bottom of the Visual Profiler by adding to the list of \"Profiler Groups.\" Profiler Groups use Unity's [ProfilerRecorder](https://docs.unity3d.com/ScriptReference/Unity.Profiling.ProfilerRecorder.html) API. For example the below image shows how the \"BehaviorUpdate\", \"LateBehaviourUpdate\", and \"FixedBehaviourUpdate\" markers display a millisecond average over 300 samples with the group label \"Scripting.\"\n\n![Custom Profilers](README/Images/CustomProfilers.png)\n\n## Sample\n\nA sample Unity project can be found in the *VisualProfilerUnityProject* folder. This project contains a simple sample scene that demonstrates the Visual Profiler being used in 3D and 2D (perspective and orthographic cameras) plus example profiler groups for C# behaviors, rendering, and physics.\n\n![Sample](README/Images/Sample.png)\n\n## Feedback\n\nTo file issues or suggestions, please use the [Issues](https://github.com/Microsoft/VisualProfiler/issues) page for this project on GitHub.\n\n## Contributing\n\nThis project welcomes contributions and suggestions. Most contributions require you to agree to a\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\nthe rights to use your contribution. For details, visit https://cla.microsoft.com.\n\nWhen you submit a pull request, a CLA-bot will automatically determine whether you need to provide\na CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions\nprovided by the bot. You will only need to do this once across all repos using our CLA.\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\nFor more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n"
  },
  {
    "path": "SECURITY.md",
    "content": "<!-- BEGIN MICROSOFT SECURITY.MD V0.0.8 BLOCK -->\n\n## Security\n\nMicrosoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).\n\nIf you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below.\n\n## Reporting Security Issues\n\n**Please do not report security vulnerabilities through public GitHub issues.**\n\nInstead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report).\n\nIf you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com).  If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey).\n\nYou should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). \n\nPlease include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:\n\n  * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)\n  * Full paths of source file(s) related to the manifestation of the issue\n  * The location of the affected source code (tag/branch/commit or direct URL)\n  * Any special configuration required to reproduce the issue\n  * Step-by-step instructions to reproduce the issue\n  * Proof-of-concept or exploit code (if possible)\n  * Impact of the issue, including how an attacker might exploit the issue\n\nThis information will help us triage your report more quickly.\n\nIf you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs.\n\n## Preferred Languages\n\nWe prefer all communications to be in English.\n\n## Policy\n\nMicrosoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd).\n\n<!-- END MICROSOFT SECURITY.MD BLOCK -->\n"
  },
  {
    "path": "VisualProfilerUnityProject/.gitignore",
    "content": "# This .gitignore file should be placed at the root of your Unity project directory\n#\n# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore\n#\n/[Ll]ibrary/\n/[Tt]emp/\n/[Oo]bj/\n/[Bb]uild/\n/[Bb]uilds/\n/[Ll]ogs/\n/[Uu]ser[Ss]ettings/\n\n# MemoryCaptures can get excessive in size.\n# They also could contain extremely sensitive data\n/[Mm]emoryCaptures/\n\n# Asset meta data should only be ignored when the corresponding asset is also ignored\n!/[Aa]ssets/**/*.meta\n\n# Uncomment this line if you wish to ignore the asset store tools plugin\n# /[Aa]ssets/AssetStoreTools*\n\n# Autogenerated Jetbrains Rider plugin\n/[Aa]ssets/Plugins/Editor/JetBrains*\n\n# Visual Studio cache directory\n.vs/\n\n# Gradle cache directory\n.gradle/\n\n# Autogenerated VS/MD/Consulo solution and project files\nExportedObj/\n.consulo/\n*.csproj\n*.unityproj\n*.sln\n*.suo\n*.tmp\n*.user\n*.userprefs\n*.pidb\n*.booproj\n*.svd\n*.pdb\n*.mdb\n*.opendb\n*.VC.db\n*.vsconfig\n*.pfx\n\n# Unity3D generated meta files\n*.pidb.meta\n*.pdb.meta\n*.mdb.meta\n*.pfx.meta\n\n# Unity3D generated file on crash reports\nsysinfo.txt\n\n# Builds\n*.apk\n*.aab\n*.unitypackage\n\n# Crashlytics generated file\ncrashlytics-build.properties\n\n# Packed Addressables\n/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*\n\n# Temporary auto-generated Android Assets\n/[Aa]ssets/[Ss]treamingAssets/aa.meta\n/[Aa]ssets/[Ss]treamingAssets/aa/*\n\n# Project specific assets\nAssets/TextMesh Pro*\nAssets/Samples.meta\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Materials/Ball.mat",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 8\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_Name: Ball\n  m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}\n  m_Parent: {fileID: 0}\n  m_ModifiedSerializedProperties: 0\n  m_ValidKeywords: []\n  m_InvalidKeywords: []\n  m_LightmapFlags: 4\n  m_EnableInstancingVariants: 0\n  m_DoubleSidedGI: 0\n  m_CustomRenderQueue: -1\n  stringTagMap:\n    RenderType: Opaque\n  disabledShaderPasses: []\n  m_LockedProperties: \n  m_SavedProperties:\n    serializedVersion: 3\n    m_TexEnvs:\n    - _BaseMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _BumpMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailAlbedoMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailMask:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailNormalMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _EmissionMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _MainTex:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _MetallicGlossMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _OcclusionMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _ParallaxMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _SpecGlossMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - unity_Lightmaps:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - unity_LightmapsInd:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - unity_ShadowMasks:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    m_Ints: []\n    m_Floats:\n    - _AlphaClip: 0\n    - _AlphaToMask: 0\n    - _Blend: 0\n    - _BlendModePreserveSpecular: 1\n    - _BumpScale: 1\n    - _ClearCoatMask: 0\n    - _ClearCoatSmoothness: 0\n    - _Cull: 2\n    - _Cutoff: 0.5\n    - _DetailAlbedoMapScale: 1\n    - _DetailNormalMapScale: 1\n    - _DstBlend: 0\n    - _DstBlendAlpha: 0\n    - _EnvironmentReflections: 1\n    - _GlossMapScale: 1\n    - _Glossiness: 0.5\n    - _GlossyReflections: 1\n    - _Metallic: 0\n    - _Mode: 0\n    - _OcclusionStrength: 1\n    - _Parallax: 0.02\n    - _QueueOffset: 0\n    - _ReceiveShadows: 1\n    - _Smoothness: 0.5\n    - _SmoothnessTextureChannel: 0\n    - _SpecularHighlights: 1\n    - _SrcBlend: 1\n    - _SrcBlendAlpha: 1\n    - _Surface: 0\n    - _UVSec: 0\n    - _WorkflowMode: 1\n    - _ZWrite: 1\n    m_Colors:\n    - _BaseColor: {r: 0, g: 0.3411901, b: 1, a: 1}\n    - _Color: {r: 0, g: 0.3411901, b: 1, a: 1}\n    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}\n    - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}\n  m_BuildTextureStacks: []\n--- !u!114 &5731516510791417871\nMonoBehaviour:\n  m_ObjectHideFlags: 11\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  version: 7\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Materials/Ball.mat.meta",
    "content": "fileFormatVersion: 2\nguid: 54fedbc398772f84d9171eba06250fb2\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 2100000\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Materials/Box.mat",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 8\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_Name: Box\n  m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}\n  m_Parent: {fileID: 0}\n  m_ModifiedSerializedProperties: 0\n  m_ValidKeywords: []\n  m_InvalidKeywords: []\n  m_LightmapFlags: 4\n  m_EnableInstancingVariants: 0\n  m_DoubleSidedGI: 0\n  m_CustomRenderQueue: -1\n  stringTagMap:\n    RenderType: Opaque\n  disabledShaderPasses: []\n  m_LockedProperties: \n  m_SavedProperties:\n    serializedVersion: 3\n    m_TexEnvs:\n    - _BaseMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _BumpMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailAlbedoMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailMask:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailNormalMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _EmissionMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _MainTex:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _MetallicGlossMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _OcclusionMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _ParallaxMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _SpecGlossMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - unity_Lightmaps:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - unity_LightmapsInd:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - unity_ShadowMasks:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    m_Ints: []\n    m_Floats:\n    - _AlphaClip: 0\n    - _AlphaToMask: 0\n    - _Blend: 0\n    - _BlendModePreserveSpecular: 1\n    - _BumpScale: 1\n    - _ClearCoatMask: 0\n    - _ClearCoatSmoothness: 0\n    - _Cull: 2\n    - _Cutoff: 0.5\n    - _DetailAlbedoMapScale: 1\n    - _DetailNormalMapScale: 1\n    - _DstBlend: 0\n    - _DstBlendAlpha: 0\n    - _EnvironmentReflections: 1\n    - _GlossMapScale: 1\n    - _Glossiness: 0.5\n    - _GlossyReflections: 1\n    - _Metallic: 0\n    - _Mode: 0\n    - _OcclusionStrength: 1\n    - _Parallax: 0.02\n    - _QueueOffset: 0\n    - _ReceiveShadows: 1\n    - _Smoothness: 0.5\n    - _SmoothnessTextureChannel: 0\n    - _SpecularHighlights: 1\n    - _SrcBlend: 1\n    - _SrcBlendAlpha: 1\n    - _Surface: 0\n    - _UVSec: 0\n    - _WorkflowMode: 1\n    - _ZWrite: 1\n    m_Colors:\n    - _BaseColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1}\n    - _Color: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1}\n    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}\n    - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}\n  m_BuildTextureStacks: []\n--- !u!114 &5731516510791417871\nMonoBehaviour:\n  m_ObjectHideFlags: 11\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  version: 7\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Materials/Box.mat.meta",
    "content": "fileFormatVersion: 2\nguid: 1cc2328ab871a0f438d6832a0ba4ed6c\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 2100000\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Materials/Floor.mat",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 8\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_Name: Floor\n  m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}\n  m_Parent: {fileID: 0}\n  m_ModifiedSerializedProperties: 0\n  m_ValidKeywords: []\n  m_InvalidKeywords: []\n  m_LightmapFlags: 4\n  m_EnableInstancingVariants: 0\n  m_DoubleSidedGI: 0\n  m_CustomRenderQueue: -1\n  stringTagMap: {}\n  disabledShaderPasses: []\n  m_LockedProperties: \n  m_SavedProperties:\n    serializedVersion: 3\n    m_TexEnvs:\n    - _BumpMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailAlbedoMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailMask:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _DetailNormalMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _EmissionMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _MainTex:\n        m_Texture: {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0}\n        m_Scale: {x: 2000, y: 2000}\n        m_Offset: {x: 0, y: 0}\n    - _MetallicGlossMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _OcclusionMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    - _ParallaxMap:\n        m_Texture: {fileID: 0}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    m_Ints: []\n    m_Floats:\n    - _BumpScale: 1\n    - _Cutoff: 0.5\n    - _DetailNormalMapScale: 1\n    - _DstBlend: 0\n    - _GlossMapScale: 1\n    - _Glossiness: 0.5\n    - _GlossyReflections: 1\n    - _Metallic: 0\n    - _Mode: 0\n    - _OcclusionStrength: 1\n    - _Parallax: 0.02\n    - _SmoothnessTextureChannel: 0\n    - _SpecularHighlights: 1\n    - _SrcBlend: 1\n    - _UVSec: 0\n    - _ZWrite: 1\n    m_Colors:\n    - _Color: {r: 1, g: 1, b: 1, a: 1}\n    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}\n  m_BuildTextureStacks: []\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Materials/Floor.mat.meta",
    "content": "fileFormatVersion: 2\nguid: b0951a67577251e4f8dd5778f1e02e72\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 2100000\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Materials.meta",
    "content": "fileFormatVersion: 2\nguid: efec6db673a6d344a96a05175c2e93a7\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Prefabs/Ball.prefab",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1 &9104521733164108909\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 7007638100202555976}\n  - component: {fileID: 7920336783303293155}\n  - component: {fileID: 6263691772383922596}\n  - component: {fileID: 4299646355915102626}\n  - component: {fileID: 3936062618501033286}\n  m_Layer: 0\n  m_Name: Ball\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!4 &7007638100202555976\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 9104521733164108909}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 1, z: 0}\n  m_LocalScale: {x: 0.15, y: 0.15, z: 0.15}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!33 &7920336783303293155\nMeshFilter:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 9104521733164108909}\n  m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}\n--- !u!23 &6263691772383922596\nMeshRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 9104521733164108909}\n  m_Enabled: 1\n  m_CastShadows: 1\n  m_ReceiveShadows: 1\n  m_DynamicOccludee: 1\n  m_StaticShadowCaster: 0\n  m_MotionVectors: 1\n  m_LightProbeUsage: 1\n  m_ReflectionProbeUsage: 1\n  m_RayTracingMode: 2\n  m_RayTraceProcedural: 0\n  m_RenderingLayerMask: 1\n  m_RendererPriority: 0\n  m_Materials:\n  - {fileID: 2100000, guid: 54fedbc398772f84d9171eba06250fb2, type: 2}\n  m_StaticBatchInfo:\n    firstSubMesh: 0\n    subMeshCount: 0\n  m_StaticBatchRoot: {fileID: 0}\n  m_ProbeAnchor: {fileID: 0}\n  m_LightProbeVolumeOverride: {fileID: 0}\n  m_ScaleInLightmap: 1\n  m_ReceiveGI: 1\n  m_PreserveUVs: 0\n  m_IgnoreNormalsForChartDetection: 0\n  m_ImportantGI: 0\n  m_StitchLightmapSeams: 1\n  m_SelectedEditorRenderState: 3\n  m_MinimumChartSize: 4\n  m_AutoUVMaxDistance: 0.5\n  m_AutoUVMaxAngle: 89\n  m_LightmapParameters: {fileID: 0}\n  m_SortingLayerID: 0\n  m_SortingLayer: 0\n  m_SortingOrder: 0\n  m_AdditionalVertexStreams: {fileID: 0}\n--- !u!135 &4299646355915102626\nSphereCollider:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 9104521733164108909}\n  m_Material: {fileID: 0}\n  m_IncludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_ExcludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_LayerOverridePriority: 0\n  m_IsTrigger: 0\n  m_ProvidesContacts: 0\n  m_Enabled: 1\n  serializedVersion: 3\n  m_Radius: 0.5\n  m_Center: {x: 0, y: 0, z: 0}\n--- !u!54 &3936062618501033286\nRigidbody:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 9104521733164108909}\n  serializedVersion: 4\n  m_Mass: 1\n  m_Drag: 0\n  m_AngularDrag: 0.05\n  m_CenterOfMass: {x: 0, y: 0, z: 0}\n  m_InertiaTensor: {x: 1, y: 1, z: 1}\n  m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_IncludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_ExcludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_ImplicitCom: 1\n  m_ImplicitTensor: 1\n  m_UseGravity: 1\n  m_IsKinematic: 0\n  m_Interpolate: 0\n  m_Constraints: 0\n  m_CollisionDetection: 0\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Prefabs/Ball.prefab.meta",
    "content": "fileFormatVersion: 2\nguid: 3b471f76c2bfeac49b58ffb4f47b854d\nPrefabImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Prefabs.meta",
    "content": "fileFormatVersion: 2\nguid: 8ee3aa194b42c6247a74bda4af6cfd2c\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Scenes/SampleScene.unity",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_OcclusionBakeSettings:\n    smallestOccluder: 5\n    smallestHole: 0.25\n    backfaceThreshold: 100\n  m_SceneGUID: 00000000000000000000000000000000\n  m_OcclusionCullingData: {fileID: 0}\n--- !u!104 &2\nRenderSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 9\n  m_Fog: 0\n  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}\n  m_FogMode: 3\n  m_FogDensity: 0.01\n  m_LinearFogStart: 0\n  m_LinearFogEnd: 300\n  m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}\n  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}\n  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}\n  m_AmbientIntensity: 1\n  m_AmbientMode: 0\n  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}\n  m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}\n  m_HaloStrength: 0.5\n  m_FlareStrength: 1\n  m_FlareFadeSpeed: 3\n  m_HaloTexture: {fileID: 0}\n  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}\n  m_DefaultReflectionMode: 0\n  m_DefaultReflectionResolution: 128\n  m_ReflectionBounces: 1\n  m_ReflectionIntensity: 1\n  m_CustomReflection: {fileID: 0}\n  m_Sun: {fileID: 705507994}\n  m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}\n  m_UseRadianceAmbientProbe: 0\n--- !u!157 &3\nLightmapSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 12\n  m_GIWorkflowMode: 1\n  m_GISettings:\n    serializedVersion: 2\n    m_BounceScale: 1\n    m_IndirectOutputScale: 1\n    m_AlbedoBoost: 1\n    m_EnvironmentLightingMode: 0\n    m_EnableBakedLightmaps: 1\n    m_EnableRealtimeLightmaps: 0\n  m_LightmapEditorSettings:\n    serializedVersion: 12\n    m_Resolution: 2\n    m_BakeResolution: 40\n    m_AtlasSize: 1024\n    m_AO: 0\n    m_AOMaxDistance: 1\n    m_CompAOExponent: 1\n    m_CompAOExponentDirect: 0\n    m_ExtractAmbientOcclusion: 0\n    m_Padding: 2\n    m_LightmapParameters: {fileID: 0}\n    m_LightmapsBakeMode: 1\n    m_TextureCompression: 1\n    m_FinalGather: 0\n    m_FinalGatherFiltering: 1\n    m_FinalGatherRayCount: 256\n    m_ReflectionCompression: 2\n    m_MixedBakeMode: 2\n    m_BakeBackend: 1\n    m_PVRSampling: 1\n    m_PVRDirectSampleCount: 32\n    m_PVRSampleCount: 500\n    m_PVRBounces: 2\n    m_PVREnvironmentSampleCount: 500\n    m_PVREnvironmentReferencePointCount: 2048\n    m_PVRFilteringMode: 2\n    m_PVRDenoiserTypeDirect: 0\n    m_PVRDenoiserTypeIndirect: 0\n    m_PVRDenoiserTypeAO: 0\n    m_PVRFilterTypeDirect: 0\n    m_PVRFilterTypeIndirect: 0\n    m_PVRFilterTypeAO: 0\n    m_PVREnvironmentMIS: 0\n    m_PVRCulling: 1\n    m_PVRFilteringGaussRadiusDirect: 1\n    m_PVRFilteringGaussRadiusIndirect: 5\n    m_PVRFilteringGaussRadiusAO: 2\n    m_PVRFilteringAtrousPositionSigmaDirect: 0.5\n    m_PVRFilteringAtrousPositionSigmaIndirect: 2\n    m_PVRFilteringAtrousPositionSigmaAO: 1\n    m_ExportTrainingData: 0\n    m_TrainingDataDestination: TrainingData\n    m_LightProbeSampleCountMultiplier: 4\n  m_LightingDataAsset: {fileID: 0}\n  m_LightingSettings: {fileID: 0}\n--- !u!196 &4\nNavMeshSettings:\n  serializedVersion: 2\n  m_ObjectHideFlags: 0\n  m_BuildSettings:\n    serializedVersion: 3\n    agentTypeID: 0\n    agentRadius: 0.5\n    agentHeight: 2\n    agentSlope: 45\n    agentClimb: 0.4\n    ledgeDropHeight: 0\n    maxJumpAcrossDistance: 0\n    minRegionArea: 2\n    manualCellSize: 0\n    cellSize: 0.16666667\n    manualTileSize: 0\n    tileSize: 256\n    buildHeightMesh: 0\n    maxJobWorkers: 0\n    preserveTilesOutsideBounds: 0\n    debug:\n      m_Flags: 0\n  m_NavMeshData: {fileID: 0}\n--- !u!1 &276989803\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 276989807}\n  - component: {fileID: 276989806}\n  - component: {fileID: 276989805}\n  - component: {fileID: 276989804}\n  m_Layer: 0\n  m_Name: Floor\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!64 &276989804\nMeshCollider:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 276989803}\n  m_Material: {fileID: 0}\n  m_IncludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_ExcludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_LayerOverridePriority: 0\n  m_IsTrigger: 0\n  m_ProvidesContacts: 0\n  m_Enabled: 1\n  serializedVersion: 5\n  m_Convex: 0\n  m_CookingOptions: 30\n  m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}\n--- !u!23 &276989805\nMeshRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 276989803}\n  m_Enabled: 1\n  m_CastShadows: 1\n  m_ReceiveShadows: 1\n  m_DynamicOccludee: 1\n  m_StaticShadowCaster: 0\n  m_MotionVectors: 1\n  m_LightProbeUsage: 1\n  m_ReflectionProbeUsage: 1\n  m_RayTracingMode: 2\n  m_RayTraceProcedural: 0\n  m_RenderingLayerMask: 1\n  m_RendererPriority: 0\n  m_Materials:\n  - {fileID: 2100000, guid: b0951a67577251e4f8dd5778f1e02e72, type: 2}\n  m_StaticBatchInfo:\n    firstSubMesh: 0\n    subMeshCount: 0\n  m_StaticBatchRoot: {fileID: 0}\n  m_ProbeAnchor: {fileID: 0}\n  m_LightProbeVolumeOverride: {fileID: 0}\n  m_ScaleInLightmap: 1\n  m_ReceiveGI: 1\n  m_PreserveUVs: 0\n  m_IgnoreNormalsForChartDetection: 0\n  m_ImportantGI: 0\n  m_StitchLightmapSeams: 1\n  m_SelectedEditorRenderState: 3\n  m_MinimumChartSize: 4\n  m_AutoUVMaxDistance: 0.5\n  m_AutoUVMaxAngle: 89\n  m_LightmapParameters: {fileID: 0}\n  m_SortingLayerID: 0\n  m_SortingLayer: 0\n  m_SortingOrder: 0\n  m_AdditionalVertexStreams: {fileID: 0}\n--- !u!33 &276989806\nMeshFilter:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 276989803}\n  m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0}\n--- !u!4 &276989807\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 276989803}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1000, y: 1000, z: 1000}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}\n--- !u!1 &335413767\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 335413768}\n  - component: {fileID: 335413771}\n  - component: {fileID: 335413770}\n  - component: {fileID: 335413769}\n  m_Layer: 0\n  m_Name: Cube (3)\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!4 &335413768\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 335413767}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}\n  m_LocalPosition: {x: -0.95, y: 0.4, z: 0}\n  m_LocalScale: {x: 1.8, y: 0.4, z: 0.1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 751500909}\n  m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}\n--- !u!65 &335413769\nBoxCollider:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 335413767}\n  m_Material: {fileID: 0}\n  m_IncludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_ExcludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_LayerOverridePriority: 0\n  m_IsTrigger: 0\n  m_ProvidesContacts: 0\n  m_Enabled: 1\n  serializedVersion: 3\n  m_Size: {x: 1, y: 1, z: 1}\n  m_Center: {x: 0, y: 0, z: 0}\n--- !u!23 &335413770\nMeshRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 335413767}\n  m_Enabled: 1\n  m_CastShadows: 1\n  m_ReceiveShadows: 1\n  m_DynamicOccludee: 1\n  m_StaticShadowCaster: 0\n  m_MotionVectors: 1\n  m_LightProbeUsage: 1\n  m_ReflectionProbeUsage: 1\n  m_RayTracingMode: 2\n  m_RayTraceProcedural: 0\n  m_RenderingLayerMask: 1\n  m_RendererPriority: 0\n  m_Materials:\n  - {fileID: 2100000, guid: 1cc2328ab871a0f438d6832a0ba4ed6c, type: 2}\n  m_StaticBatchInfo:\n    firstSubMesh: 0\n    subMeshCount: 0\n  m_StaticBatchRoot: {fileID: 0}\n  m_ProbeAnchor: {fileID: 0}\n  m_LightProbeVolumeOverride: {fileID: 0}\n  m_ScaleInLightmap: 1\n  m_ReceiveGI: 1\n  m_PreserveUVs: 0\n  m_IgnoreNormalsForChartDetection: 0\n  m_ImportantGI: 0\n  m_StitchLightmapSeams: 1\n  m_SelectedEditorRenderState: 3\n  m_MinimumChartSize: 4\n  m_AutoUVMaxDistance: 0.5\n  m_AutoUVMaxAngle: 89\n  m_LightmapParameters: {fileID: 0}\n  m_SortingLayerID: 0\n  m_SortingLayer: 0\n  m_SortingOrder: 0\n  m_AdditionalVertexStreams: {fileID: 0}\n--- !u!33 &335413771\nMeshFilter:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 335413767}\n  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}\n--- !u!1 &362975399\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 362975401}\n  - component: {fileID: 362975400}\n  m_Layer: 0\n  m_Name: VisualProfiler3DFollow\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 0\n--- !u!114 &362975400\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 362975399}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: ee9fe1903f7351748999dead411e0a3b, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  isVisible: 1\n  frameSampleRate: 0.3\n  defaultFrameRate: 60\n  missedFramePercentage: 0.9\n  displayedDecimalDigits: 1\n  displayTriangleCount: 0\n  batchesQualityLevelBudget: \n  drawCallsQualityLevelBudget: \n  meshStatsQualityLevelBudget: \n  windowAnchor: 7\n  windowOffset: {x: 0.1, y: 0.1}\n  windowScale: 1\n  windowFollowSpeed: 5\n  snapWindow: 0\n  alignToCamera: 1\n  transformToFollow: {fileID: 1401076528}\n  toggleKeyworlds:\n  - Profiler\n  - Toggle Profiler\n  - Show Profiler\n  - Hide Profiler\n  layer: 0\n  material: {fileID: 2100000, guid: b98f8349d37aef742baaa038e99837c0, type: 2}\n  baseColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}\n  targetFrameRateColor: {r: 0.49803922, g: 0.7294118, b: 0, a: 1}\n  missedFrameRateColor: {r: 0.9490196, g: 0.3137255, b: 0.13333334, a: 1}\n  memoryUsedColor: {r: 0, g: 0.6431373, b: 0.9372549, a: 1}\n  memoryPeakColor: {r: 1, g: 0.7254902, b: 0, a: 1}\n  memoryLimitColor: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1}\n  fontCharacterSize: {x: 16, y: 30}\n  fontScale: {x: 0.00023, y: 0.00028}\n  fontColumns: 32\n  ProfilerDisplayOrder: 0\n  ProfilerGroups:\n  - DisplayName: Behaviour\n    Markers:\n    - StatName: BehaviourUpdate\n      Operation: 0\n    - StatName: LateBehaviourUpdate\n      Operation: 0\n    - StatName: FixedBehaviourUpdate\n      Operation: 0\n    SampleCapacity: 300\n    BudgetPercentage: 1\n  - DisplayName: Render\n    Markers:\n    - StatName: Inl_UniversalRenderTotal\n      Operation: 0\n    SampleCapacity: 300\n    BudgetPercentage: 1\n  - DisplayName: Physics\n    Markers:\n    - StatName: Physics.Processing\n      Operation: 0\n    - StatName: Physics.Simulate\n      Operation: 0\n    - StatName: Physics.FetchResults\n      Operation: 0\n    - StatName: Physics.UpdateBodies\n      Operation: 0\n    SampleCapacity: 300\n    BudgetPercentage: 1\n--- !u!4 &362975401\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 362975399}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &692745578\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 692745579}\n  m_Layer: 0\n  m_Name: BallSpawn\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!4 &692745579\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 692745578}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 2, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &705507993\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 705507995}\n  - component: {fileID: 705507994}\n  - component: {fileID: 705507996}\n  m_Layer: 0\n  m_Name: Directional Light\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!108 &705507994\nLight:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 705507993}\n  m_Enabled: 1\n  serializedVersion: 10\n  m_Type: 1\n  m_Shape: 0\n  m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}\n  m_Intensity: 1\n  m_Range: 10\n  m_SpotAngle: 30\n  m_InnerSpotAngle: 21.80208\n  m_CookieSize: 10\n  m_Shadows:\n    m_Type: 0\n    m_Resolution: -1\n    m_CustomResolution: -1\n    m_Strength: 1\n    m_Bias: 0.05\n    m_NormalBias: 0.4\n    m_NearPlane: 0.2\n    m_CullingMatrixOverride:\n      e00: 1\n      e01: 0\n      e02: 0\n      e03: 0\n      e10: 0\n      e11: 1\n      e12: 0\n      e13: 0\n      e20: 0\n      e21: 0\n      e22: 1\n      e23: 0\n      e30: 0\n      e31: 0\n      e32: 0\n      e33: 1\n    m_UseCullingMatrixOverride: 0\n  m_Cookie: {fileID: 0}\n  m_DrawHalo: 0\n  m_Flare: {fileID: 0}\n  m_RenderMode: 0\n  m_CullingMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_RenderingLayerMask: 1\n  m_Lightmapping: 1\n  m_LightShadowCasterMode: 0\n  m_AreaSize: {x: 1, y: 1}\n  m_BounceIntensity: 1\n  m_ColorTemperature: 6570\n  m_UseColorTemperature: 0\n  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}\n  m_UseBoundingSphereOverride: 0\n  m_UseViewFrustumForShadowCasterCull: 1\n  m_ShadowRadius: 0\n  m_ShadowAngle: 0\n--- !u!4 &705507995\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 705507993}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}\n  m_LocalPosition: {x: 0, y: 3, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}\n--- !u!114 &705507996\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 705507993}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_Version: 3\n  m_UsePipelineSettings: 1\n  m_AdditionalLightsShadowResolutionTier: 2\n  m_LightLayerMask: 1\n  m_RenderingLayers: 1\n  m_CustomShadowLayers: 0\n  m_ShadowLayerMask: 1\n  m_ShadowRenderingLayers: 1\n  m_LightCookieSize: {x: 1, y: 1}\n  m_LightCookieOffset: {x: 0, y: 0}\n  m_SoftShadowQuality: 0\n--- !u!1 &716433996\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 716433997}\n  - component: {fileID: 716434000}\n  - component: {fileID: 716433999}\n  - component: {fileID: 716433998}\n  m_Layer: 0\n  m_Name: Cube (4)\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!4 &716433997\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 716433996}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}\n  m_LocalPosition: {x: 0.95, y: 0.4, z: 0}\n  m_LocalScale: {x: 1.8, y: 0.4, z: 0.1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 751500909}\n  m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}\n--- !u!65 &716433998\nBoxCollider:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 716433996}\n  m_Material: {fileID: 0}\n  m_IncludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_ExcludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_LayerOverridePriority: 0\n  m_IsTrigger: 0\n  m_ProvidesContacts: 0\n  m_Enabled: 1\n  serializedVersion: 3\n  m_Size: {x: 1, y: 1, z: 1}\n  m_Center: {x: 0, y: 0, z: 0}\n--- !u!23 &716433999\nMeshRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 716433996}\n  m_Enabled: 1\n  m_CastShadows: 1\n  m_ReceiveShadows: 1\n  m_DynamicOccludee: 1\n  m_StaticShadowCaster: 0\n  m_MotionVectors: 1\n  m_LightProbeUsage: 1\n  m_ReflectionProbeUsage: 1\n  m_RayTracingMode: 2\n  m_RayTraceProcedural: 0\n  m_RenderingLayerMask: 1\n  m_RendererPriority: 0\n  m_Materials:\n  - {fileID: 2100000, guid: 1cc2328ab871a0f438d6832a0ba4ed6c, type: 2}\n  m_StaticBatchInfo:\n    firstSubMesh: 0\n    subMeshCount: 0\n  m_StaticBatchRoot: {fileID: 0}\n  m_ProbeAnchor: {fileID: 0}\n  m_LightProbeVolumeOverride: {fileID: 0}\n  m_ScaleInLightmap: 1\n  m_ReceiveGI: 1\n  m_PreserveUVs: 0\n  m_IgnoreNormalsForChartDetection: 0\n  m_ImportantGI: 0\n  m_StitchLightmapSeams: 1\n  m_SelectedEditorRenderState: 3\n  m_MinimumChartSize: 4\n  m_AutoUVMaxDistance: 0.5\n  m_AutoUVMaxAngle: 89\n  m_LightmapParameters: {fileID: 0}\n  m_SortingLayerID: 0\n  m_SortingLayer: 0\n  m_SortingOrder: 0\n  m_AdditionalVertexStreams: {fileID: 0}\n--- !u!33 &716434000\nMeshFilter:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 716433996}\n  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}\n--- !u!1 &739103468\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 739103469}\n  - component: {fileID: 739103472}\n  - component: {fileID: 739103471}\n  - component: {fileID: 739103470}\n  m_Layer: 0\n  m_Name: Cube (1)\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!4 &739103469\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 739103468}\n  serializedVersion: 2\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0.4, z: 0.95}\n  m_LocalScale: {x: 2, y: 0.4, z: 0.1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 751500909}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!65 &739103470\nBoxCollider:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 739103468}\n  m_Material: {fileID: 0}\n  m_IncludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_ExcludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_LayerOverridePriority: 0\n  m_IsTrigger: 0\n  m_ProvidesContacts: 0\n  m_Enabled: 1\n  serializedVersion: 3\n  m_Size: {x: 1, y: 1, z: 1}\n  m_Center: {x: 0, y: 0, z: 0}\n--- !u!23 &739103471\nMeshRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 739103468}\n  m_Enabled: 1\n  m_CastShadows: 1\n  m_ReceiveShadows: 1\n  m_DynamicOccludee: 1\n  m_StaticShadowCaster: 0\n  m_MotionVectors: 1\n  m_LightProbeUsage: 1\n  m_ReflectionProbeUsage: 1\n  m_RayTracingMode: 2\n  m_RayTraceProcedural: 0\n  m_RenderingLayerMask: 1\n  m_RendererPriority: 0\n  m_Materials:\n  - {fileID: 2100000, guid: 1cc2328ab871a0f438d6832a0ba4ed6c, type: 2}\n  m_StaticBatchInfo:\n    firstSubMesh: 0\n    subMeshCount: 0\n  m_StaticBatchRoot: {fileID: 0}\n  m_ProbeAnchor: {fileID: 0}\n  m_LightProbeVolumeOverride: {fileID: 0}\n  m_ScaleInLightmap: 1\n  m_ReceiveGI: 1\n  m_PreserveUVs: 0\n  m_IgnoreNormalsForChartDetection: 0\n  m_ImportantGI: 0\n  m_StitchLightmapSeams: 1\n  m_SelectedEditorRenderState: 3\n  m_MinimumChartSize: 4\n  m_AutoUVMaxDistance: 0.5\n  m_AutoUVMaxAngle: 89\n  m_LightmapParameters: {fileID: 0}\n  m_SortingLayerID: 0\n  m_SortingLayer: 0\n  m_SortingOrder: 0\n  m_AdditionalVertexStreams: {fileID: 0}\n--- !u!33 &739103472\nMeshFilter:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 739103468}\n  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}\n--- !u!1 &751500908\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 751500909}\n  m_Layer: 0\n  m_Name: Box\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!4 &751500909\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 751500908}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_ConstrainProportionsScale: 0\n  m_Children:\n  - {fileID: 1952789995}\n  - {fileID: 739103469}\n  - {fileID: 1473212392}\n  - {fileID: 335413768}\n  - {fileID: 716433997}\n  - {fileID: 1401076528}\n  m_Father: {fileID: 0}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &963194225\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 963194228}\n  - component: {fileID: 963194227}\n  - component: {fileID: 963194226}\n  - component: {fileID: 963194229}\n  - component: {fileID: 963194230}\n  - component: {fileID: 963194231}\n  m_Layer: 0\n  m_Name: Main Camera\n  m_TagString: MainCamera\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!81 &963194226\nAudioListener:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 963194225}\n  m_Enabled: 1\n--- !u!20 &963194227\nCamera:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 963194225}\n  m_Enabled: 1\n  serializedVersion: 2\n  m_ClearFlags: 1\n  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}\n  m_projectionMatrixMode: 1\n  m_GateFitMode: 2\n  m_FOVAxisMode: 0\n  m_Iso: 200\n  m_ShutterSpeed: 0.005\n  m_Aperture: 16\n  m_FocusDistance: 10\n  m_FocalLength: 50\n  m_BladeCount: 5\n  m_Curvature: {x: 2, y: 11}\n  m_BarrelClipping: 0.25\n  m_Anamorphism: 0\n  m_SensorSize: {x: 36, y: 24}\n  m_LensShift: {x: 0, y: 0}\n  m_NormalizedViewPortRect:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  near clip plane: 0.13\n  far clip plane: 1000\n  field of view: 55\n  orthographic: 0\n  orthographic size: 5\n  m_Depth: -1\n  m_CullingMask:\n    serializedVersion: 2\n    m_Bits: 23\n  m_RenderingPath: -1\n  m_TargetTexture: {fileID: 0}\n  m_TargetDisplay: 0\n  m_TargetEye: 3\n  m_HDR: 1\n  m_AllowMSAA: 1\n  m_AllowDynamicResolution: 0\n  m_ForceIntoRT: 0\n  m_OcclusionCulling: 1\n  m_StereoConvergence: 10\n  m_StereoSeparation: 0.022\n--- !u!4 &963194228\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 963194225}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 1, z: -5}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_ConstrainProportionsScale: 0\n  m_Children:\n  - {fileID: 1896249791}\n  m_Father: {fileID: 0}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!114 &963194229\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 963194225}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 515798d7848359a4d957285b6653b6c7, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  Boost: 1\n  MinBoost: 0.5\n  MaxBoost: 4\n  PositionLerpTime: 0.2\n  MouseSensitivityCurve:\n    serializedVersion: 2\n    m_Curve:\n    - serializedVersion: 3\n      time: 0\n      value: 0.5\n      inSlope: 0\n      outSlope: 5\n      tangentMode: 0\n      weightedMode: 0\n      inWeight: 0\n      outWeight: 0\n    - serializedVersion: 3\n      time: 1\n      value: 2.5\n      inSlope: 0\n      outSlope: 0\n      tangentMode: 0\n      weightedMode: 0\n      inWeight: 0\n      outWeight: 0\n    m_PreInfinity: 2\n    m_PostInfinity: 2\n    m_RotationOrder: 4\n  RotationLerpTime: 0.1\n  InvertY: 0\n  showControlsText: 0\n--- !u!114 &963194230\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 963194225}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_RenderShadows: 1\n  m_RequiresDepthTextureOption: 2\n  m_RequiresOpaqueTextureOption: 2\n  m_CameraType: 0\n  m_Cameras:\n  - {fileID: 1896249788}\n  m_RendererIndex: -1\n  m_VolumeLayerMask:\n    serializedVersion: 2\n    m_Bits: 1\n  m_VolumeTrigger: {fileID: 0}\n  m_VolumeFrameworkUpdateModeOption: 2\n  m_RenderPostProcessing: 0\n  m_Antialiasing: 0\n  m_AntialiasingQuality: 2\n  m_StopNaN: 0\n  m_Dithering: 0\n  m_ClearDepth: 1\n  m_AllowXRRendering: 1\n  m_AllowHDROutput: 1\n  m_UseScreenCoordOverride: 0\n  m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}\n  m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}\n  m_RequiresDepthTexture: 0\n  m_RequiresColorTexture: 0\n  m_Version: 2\n  m_TaaSettings:\n    quality: 3\n    frameInfluence: 0.1\n    jitterScale: 1\n    mipBias: 0\n    varianceClampScale: 0.9\n    contrastAdaptiveSharpening: 0\n--- !u!114 &963194231\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 963194225}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: c2cb613a953f0184caebd6d56645b1e3, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  Profiler3D: {fileID: 1563446975}\n  Profiler3DFollow: {fileID: 362975399}\n  Profiler2D: {fileID: 1137945030}\n  Ball: {fileID: 9104521733164108909, guid: 3b471f76c2bfeac49b58ffb4f47b854d, type: 3}\n  BallSpawn: {fileID: 692745579}\n--- !u!1 &1137945030\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1137945032}\n  - component: {fileID: 1137945031}\n  m_Layer: 0\n  m_Name: VisualProfiler2D\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 0\n--- !u!114 &1137945031\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1137945030}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: ee9fe1903f7351748999dead411e0a3b, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  isVisible: 1\n  frameSampleRate: 0.3\n  defaultFrameRate: 60\n  missedFramePercentage: 0.9\n  displayedDecimalDigits: 1\n  displayTriangleCount: 0\n  batchesQualityLevelBudget: \n  drawCallsQualityLevelBudget: \n  meshStatsQualityLevelBudget: \n  windowAnchor: 1\n  windowOffset: {x: 0.1, y: 0.8}\n  windowScale: 5\n  windowFollowSpeed: 5\n  snapWindow: 1\n  alignToCamera: 1\n  transformToFollow: {fileID: 0}\n  toggleKeyworlds:\n  - Profiler\n  - Toggle Profiler\n  - Show Profiler\n  - Hide Profiler\n  layer: 5\n  material: {fileID: 2100000, guid: b98f8349d37aef742baaa038e99837c0, type: 2}\n  baseColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}\n  targetFrameRateColor: {r: 0.49803922, g: 0.7294118, b: 0, a: 1}\n  missedFrameRateColor: {r: 0.9490196, g: 0.3137255, b: 0.13333334, a: 1}\n  memoryUsedColor: {r: 0, g: 0.6431373, b: 0.9372549, a: 1}\n  memoryPeakColor: {r: 1, g: 0.7254902, b: 0, a: 1}\n  memoryLimitColor: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1}\n  fontCharacterSize: {x: 16, y: 30}\n  fontScale: {x: 0.00023, y: 0.00028}\n  fontColumns: 32\n  ProfilerDisplayOrder: 0\n  ProfilerGroups:\n  - DisplayName: Behaviour\n    Markers:\n    - StatName: BehaviourUpdate\n      Operation: 0\n    - StatName: LateBehaviourUpdate\n      Operation: 0\n    - StatName: FixedBehaviourUpdate\n      Operation: 0\n    SampleCapacity: 300\n    BudgetPercentage: 1\n  - DisplayName: Render\n    Markers:\n    - StatName: Inl_UniversalRenderTotal\n      Operation: 0\n    SampleCapacity: 300\n    BudgetPercentage: 1\n  - DisplayName: Physics\n    Markers:\n    - StatName: Physics.Processing\n      Operation: 0\n    - StatName: Physics.Simulate\n      Operation: 0\n    - StatName: Physics.FetchResults\n      Operation: 0\n    - StatName: Physics.UpdateBodies\n      Operation: 0\n    SampleCapacity: 300\n    BudgetPercentage: 1\n--- !u!4 &1137945032\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1137945030}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &1401076527\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1401076528}\n  m_Layer: 0\n  m_Name: FollowTarget\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!4 &1401076528\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1401076527}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 1, z: 1}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 751500909}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &1473212391\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1473212392}\n  - component: {fileID: 1473212395}\n  - component: {fileID: 1473212394}\n  - component: {fileID: 1473212393}\n  m_Layer: 0\n  m_Name: Cube (2)\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!4 &1473212392\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1473212391}\n  serializedVersion: 2\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0.4, z: -0.95}\n  m_LocalScale: {x: 2, y: 0.4, z: 0.1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 751500909}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!65 &1473212393\nBoxCollider:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1473212391}\n  m_Material: {fileID: 0}\n  m_IncludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_ExcludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_LayerOverridePriority: 0\n  m_IsTrigger: 0\n  m_ProvidesContacts: 0\n  m_Enabled: 1\n  serializedVersion: 3\n  m_Size: {x: 1, y: 1, z: 1}\n  m_Center: {x: 0, y: 0, z: 0}\n--- !u!23 &1473212394\nMeshRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1473212391}\n  m_Enabled: 1\n  m_CastShadows: 1\n  m_ReceiveShadows: 1\n  m_DynamicOccludee: 1\n  m_StaticShadowCaster: 0\n  m_MotionVectors: 1\n  m_LightProbeUsage: 1\n  m_ReflectionProbeUsage: 1\n  m_RayTracingMode: 2\n  m_RayTraceProcedural: 0\n  m_RenderingLayerMask: 1\n  m_RendererPriority: 0\n  m_Materials:\n  - {fileID: 2100000, guid: 1cc2328ab871a0f438d6832a0ba4ed6c, type: 2}\n  m_StaticBatchInfo:\n    firstSubMesh: 0\n    subMeshCount: 0\n  m_StaticBatchRoot: {fileID: 0}\n  m_ProbeAnchor: {fileID: 0}\n  m_LightProbeVolumeOverride: {fileID: 0}\n  m_ScaleInLightmap: 1\n  m_ReceiveGI: 1\n  m_PreserveUVs: 0\n  m_IgnoreNormalsForChartDetection: 0\n  m_ImportantGI: 0\n  m_StitchLightmapSeams: 1\n  m_SelectedEditorRenderState: 3\n  m_MinimumChartSize: 4\n  m_AutoUVMaxDistance: 0.5\n  m_AutoUVMaxAngle: 89\n  m_LightmapParameters: {fileID: 0}\n  m_SortingLayerID: 0\n  m_SortingLayer: 0\n  m_SortingOrder: 0\n  m_AdditionalVertexStreams: {fileID: 0}\n--- !u!33 &1473212395\nMeshFilter:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1473212391}\n  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}\n--- !u!1 &1563446975\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1563446977}\n  - component: {fileID: 1563446976}\n  m_Layer: 0\n  m_Name: VisualProfiler3D\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!114 &1563446976\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1563446975}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: ee9fe1903f7351748999dead411e0a3b, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  isVisible: 1\n  frameSampleRate: 0.3\n  defaultFrameRate: 60\n  missedFramePercentage: 0.9\n  displayedDecimalDigits: 1\n  displayTriangleCount: 0\n  batchesQualityLevelBudget: \n  drawCallsQualityLevelBudget: \n  meshStatsQualityLevelBudget: \n  windowAnchor: 7\n  windowOffset: {x: 0.1, y: 0.1}\n  windowScale: 1\n  windowFollowSpeed: 5\n  snapWindow: 0\n  alignToCamera: 0\n  transformToFollow: {fileID: 0}\n  toggleKeyworlds:\n  - Profiler\n  - Toggle Profiler\n  - Show Profiler\n  - Hide Profiler\n  layer: 0\n  material: {fileID: 2100000, guid: b98f8349d37aef742baaa038e99837c0, type: 2}\n  baseColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}\n  targetFrameRateColor: {r: 0.49803922, g: 0.7294118, b: 0, a: 1}\n  missedFrameRateColor: {r: 0.9490196, g: 0.3137255, b: 0.13333334, a: 1}\n  memoryUsedColor: {r: 0, g: 0.6431373, b: 0.9372549, a: 1}\n  memoryPeakColor: {r: 1, g: 0.7254902, b: 0, a: 1}\n  memoryLimitColor: {r: 0.39215687, g: 0.39215687, b: 0.39215687, a: 1}\n  fontCharacterSize: {x: 16, y: 30}\n  fontScale: {x: 0.00023, y: 0.00028}\n  fontColumns: 32\n  ProfilerDisplayOrder: 0\n  ProfilerGroups:\n  - DisplayName: Behaviour\n    Markers:\n    - StatName: BehaviourUpdate\n      Operation: 0\n    - StatName: LateBehaviourUpdate\n      Operation: 0\n    - StatName: FixedBehaviourUpdate\n      Operation: 0\n    SampleCapacity: 300\n    BudgetPercentage: 1\n  - DisplayName: Render\n    Markers:\n    - StatName: Inl_UniversalRenderTotal\n      Operation: 0\n    SampleCapacity: 300\n    BudgetPercentage: 1\n  - DisplayName: Physics\n    Markers:\n    - StatName: Physics.Processing\n      Operation: 0\n    - StatName: Physics.Simulate\n      Operation: 0\n    - StatName: Physics.FetchResults\n      Operation: 0\n    - StatName: Physics.UpdateBodies\n      Operation: 0\n    SampleCapacity: 300\n    BudgetPercentage: 1\n--- !u!4 &1563446977\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1563446975}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 0}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &1896249787\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1896249791}\n  - component: {fileID: 1896249788}\n  - component: {fileID: 1896249789}\n  m_Layer: 0\n  m_Name: UI Camera\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!20 &1896249788\nCamera:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1896249787}\n  m_Enabled: 1\n  serializedVersion: 2\n  m_ClearFlags: 1\n  m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}\n  m_projectionMatrixMode: 1\n  m_GateFitMode: 2\n  m_FOVAxisMode: 0\n  m_Iso: 200\n  m_ShutterSpeed: 0.005\n  m_Aperture: 16\n  m_FocusDistance: 10\n  m_FocalLength: 50\n  m_BladeCount: 5\n  m_Curvature: {x: 2, y: 11}\n  m_BarrelClipping: 0.25\n  m_Anamorphism: 0\n  m_SensorSize: {x: 36, y: 24}\n  m_LensShift: {x: 0, y: 0}\n  m_NormalizedViewPortRect:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  near clip plane: 0.13\n  far clip plane: 1000\n  field of view: 60\n  orthographic: 1\n  orthographic size: 1.05\n  m_Depth: 0\n  m_CullingMask:\n    serializedVersion: 2\n    m_Bits: 32\n  m_RenderingPath: -1\n  m_TargetTexture: {fileID: 0}\n  m_TargetDisplay: 0\n  m_TargetEye: 3\n  m_HDR: 1\n  m_AllowMSAA: 1\n  m_AllowDynamicResolution: 0\n  m_ForceIntoRT: 0\n  m_OcclusionCulling: 0\n  m_StereoConvergence: 10\n  m_StereoSeparation: 0.022\n--- !u!114 &1896249789\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1896249787}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_RenderShadows: 1\n  m_RequiresDepthTextureOption: 2\n  m_RequiresOpaqueTextureOption: 2\n  m_CameraType: 1\n  m_Cameras: []\n  m_RendererIndex: -1\n  m_VolumeLayerMask:\n    serializedVersion: 2\n    m_Bits: 1\n  m_VolumeTrigger: {fileID: 0}\n  m_VolumeFrameworkUpdateModeOption: 2\n  m_RenderPostProcessing: 0\n  m_Antialiasing: 0\n  m_AntialiasingQuality: 2\n  m_StopNaN: 0\n  m_Dithering: 0\n  m_ClearDepth: 1\n  m_AllowXRRendering: 1\n  m_AllowHDROutput: 1\n  m_UseScreenCoordOverride: 0\n  m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}\n  m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}\n  m_RequiresDepthTexture: 0\n  m_RequiresColorTexture: 0\n  m_Version: 2\n  m_TaaSettings:\n    quality: 3\n    frameInfluence: 0.1\n    jitterScale: 1\n    mipBias: 0\n    varianceClampScale: 0.9\n    contrastAdaptiveSharpening: 0\n--- !u!4 &1896249791\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1896249787}\n  serializedVersion: 2\n  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}\n  m_LocalPosition: {x: 0, y: 0, z: 0}\n  m_LocalScale: {x: 1, y: 1, z: 1}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 963194228}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1 &1952789991\nGameObject:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  serializedVersion: 6\n  m_Component:\n  - component: {fileID: 1952789995}\n  - component: {fileID: 1952789994}\n  - component: {fileID: 1952789993}\n  - component: {fileID: 1952789992}\n  m_Layer: 0\n  m_Name: Cube\n  m_TagString: Untagged\n  m_Icon: {fileID: 0}\n  m_NavMeshLayer: 0\n  m_StaticEditorFlags: 0\n  m_IsActive: 1\n--- !u!65 &1952789992\nBoxCollider:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1952789991}\n  m_Material: {fileID: 0}\n  m_IncludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_ExcludeLayers:\n    serializedVersion: 2\n    m_Bits: 0\n  m_LayerOverridePriority: 0\n  m_IsTrigger: 0\n  m_ProvidesContacts: 0\n  m_Enabled: 1\n  serializedVersion: 3\n  m_Size: {x: 1, y: 1, z: 1}\n  m_Center: {x: 0, y: 0, z: 0}\n--- !u!23 &1952789993\nMeshRenderer:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1952789991}\n  m_Enabled: 1\n  m_CastShadows: 1\n  m_ReceiveShadows: 1\n  m_DynamicOccludee: 1\n  m_StaticShadowCaster: 0\n  m_MotionVectors: 1\n  m_LightProbeUsage: 1\n  m_ReflectionProbeUsage: 1\n  m_RayTracingMode: 2\n  m_RayTraceProcedural: 0\n  m_RenderingLayerMask: 1\n  m_RendererPriority: 0\n  m_Materials:\n  - {fileID: 2100000, guid: 1cc2328ab871a0f438d6832a0ba4ed6c, type: 2}\n  m_StaticBatchInfo:\n    firstSubMesh: 0\n    subMeshCount: 0\n  m_StaticBatchRoot: {fileID: 0}\n  m_ProbeAnchor: {fileID: 0}\n  m_LightProbeVolumeOverride: {fileID: 0}\n  m_ScaleInLightmap: 1\n  m_ReceiveGI: 1\n  m_PreserveUVs: 0\n  m_IgnoreNormalsForChartDetection: 0\n  m_ImportantGI: 0\n  m_StitchLightmapSeams: 1\n  m_SelectedEditorRenderState: 3\n  m_MinimumChartSize: 4\n  m_AutoUVMaxDistance: 0.5\n  m_AutoUVMaxAngle: 89\n  m_LightmapParameters: {fileID: 0}\n  m_SortingLayerID: 0\n  m_SortingLayer: 0\n  m_SortingOrder: 0\n  m_AdditionalVertexStreams: {fileID: 0}\n--- !u!33 &1952789994\nMeshFilter:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1952789991}\n  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}\n--- !u!4 &1952789995\nTransform:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 1952789991}\n  serializedVersion: 2\n  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}\n  m_LocalPosition: {x: 0, y: 0.100000024, z: 0}\n  m_LocalScale: {x: 2, y: 0.2, z: 2}\n  m_ConstrainProportionsScale: 0\n  m_Children: []\n  m_Father: {fileID: 751500909}\n  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}\n--- !u!1660057539 &9223372036854775807\nSceneRoots:\n  m_ObjectHideFlags: 0\n  m_Roots:\n  - {fileID: 963194228}\n  - {fileID: 705507995}\n  - {fileID: 1563446977}\n  - {fileID: 362975401}\n  - {fileID: 1137945032}\n  - {fileID: 276989807}\n  - {fileID: 751500909}\n  - {fileID: 692745579}\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Scenes/SampleScene.unity.meta",
    "content": "fileFormatVersion: 2\nguid: 9fc0d4010bbf28b4594072e72b8655ab\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Scenes.meta",
    "content": "fileFormatVersion: 2\nguid: 645d56b46d9bd714db90400ba4122e51\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Scripts/FlyCameraController.cs",
    "content": "﻿// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n#if VP_USE_INPUT_SYSTEM && ENABLE_INPUT_SYSTEM\n#define USE_INPUT_SYSTEM\n#endif\n\nusing System.Collections.Generic;\nusing UnityEngine;\nusing UnityEngine.XR;\n\n#if USE_INPUT_SYSTEM\nusing UnityEngine.InputSystem;\n#endif // USE_INPUT_SYSTEM\n\nnamespace Microsoft.MixedReality.Profiling.Sample\n{\n    /// <summary>\n    /// A simple \"fly\" camera for moving the camera while playing with a mouse/keyboard or gamepad.\n    /// </summary>\n    public class FlyCameraController : MonoBehaviour\n    {\n        private class CameraState\n        {\n            public Vector3 Position;\n            public Vector3 Rotation;\n\n            public void SetFromTransform(Transform t)\n            {\n                Position = t.position;\n                Vector3 euler = t.eulerAngles;\n                Rotation = new Vector3(euler.y, euler.x, euler.z);\n            }\n\n            public void Translate(Vector3 translation)\n            {\n                Vector3 rotatedTranslation = Quaternion.Euler(new Vector3(Rotation.y, Rotation.x, Rotation.z)) * translation;\n                Position += rotatedTranslation;\n            }\n\n            public void LerpTowards(CameraState target, float positionLerp, float rotationLerp)\n            {\n                Rotation = Vector3.Lerp(Rotation, target.Rotation, rotationLerp);\n                Position = Vector3.Lerp(Position, target.Position, positionLerp);\n            }\n\n            public void UpdateTransform(Transform t)\n            {\n                t.eulerAngles = new Vector3(Rotation.y, Rotation.x, Rotation.z);\n                t.position = Position;\n            }\n        }\n\n        [Header(\"Movement Settings\")]\n        [Tooltip(\"Exponential boost factor on translation, controllable by mouse wheel.\")]\n        public float Boost = 1.0f;\n\n        [Tooltip(\"Minimum boost factor applied to translation.\")]\n        public float MinBoost = 0.5f;\n\n        [Tooltip(\"Maximum boost factor applied to translation.\")]\n        public float MaxBoost = 4.0f;\n\n        [Tooltip(\"Time it takes to interpolate camera position 99% of the way to the target.\"), Range(0.001f, 1.0f)]\n        public float PositionLerpTime = 0.2f;\n\n        [Header(\"Rotation Settings\")]\n        [Tooltip(\"X = Change in mouse position.\\nY = Multiplicative factor for camera rotation.\")]\n        public AnimationCurve MouseSensitivityCurve = new AnimationCurve(new Keyframe(0.0f, 0.5f, 0.0f, 5f), new Keyframe(1.0f, 2.5f, 0.0f, 0.0f));\n\n        [Tooltip(\"Time it takes to interpolate camera rotation 99% of the way to the target.\"), Range(0.001f, 1.0f)]\n        public float RotationLerpTime = 0.1f;\n\n        [Tooltip(\"Whether or not to invert our Y axis for mouse/gamepad input to rotation.\")]\n        public bool InvertY = false;\n\n        [Header(\"Other Settings\")]\n        public bool showControlsText = false;\n\n        private CameraState targetCameraState = new CameraState();\n        private CameraState interpolatingCameraState = new CameraState();\n        private List<XRDisplaySubsystem> xrDisplaySubsystems = new List<XRDisplaySubsystem>();\n\n        /// <summary>\n        /// Called when the game object state from from inactive to active.\n        /// </summary>\n        private void OnEnable()\n        {\n            targetCameraState.SetFromTransform(transform);\n            interpolatingCameraState.SetFromTransform(transform);\n        }\n\n        /// <summary>\n        /// Sets up initial state.\n        /// </summary>\n        private void Start()\n        {\n            SubsystemManager.GetInstances(xrDisplaySubsystems);\n        }\n\n        /// <summary>\n        /// Called every frame to poll input and update the camera transform.\n        /// </summary>\n        private void Update()\n        {\n            if (!XRDeviceIsPresent() && Application.isFocused)\n            {\n                // Lock cursor when right mouse button pressed.\n#if USE_INPUT_SYSTEM\n                if (Mouse.current != null && Mouse.current.rightButton.wasPressedThisFrame)\n#else\n                if (Input.GetMouseButtonDown(1))\n#endif // USE_INPUT_SYSTEM\n                {\n                    Cursor.lockState = CursorLockMode.Locked;\n#if UNITY_EDITOR\n                    Cursor.visible = false;\n#endif\n                }\n\n                // Unlock when right mouse button released.\n#if USE_INPUT_SYSTEM\n                if (Mouse.current != null && Mouse.current.rightButton.wasReleasedThisFrame)\n#else\n                if (Input.GetMouseButtonUp(1))\n#endif // USE_INPUT_SYSTEM\n                {\n                    Cursor.lockState = CursorLockMode.None;\n#if UNITY_EDITOR\n                    Cursor.visible = true;\n#endif\n                }\n\n                // Rotation.\n                Vector2 rotation = GetInputRotationDirection();\n                float rotationSensitivityFactor = MouseSensitivityCurve.Evaluate(rotation.magnitude);\n                targetCameraState.Rotation.x += rotation.x * rotationSensitivityFactor;\n                targetCameraState.Rotation.y += rotation.y * rotationSensitivityFactor;\n\n                // Translation.\n                float dt = Time.deltaTime;\n                Vector3 translation = GetInputTranslationDirection() * dt;\n\n                // Speed up movement when shift key held.\n#if USE_INPUT_SYSTEM\n                if (Keyboard.current != null && Keyboard.current.leftShiftKey.isPressed)\n#else\n                if (Input.GetKey(KeyCode.LeftShift))\n#endif // USE_INPUT_SYSTEM\n                {\n                    translation *= 10.0f;\n                }\n\n                // Modify movement by a boost factor (defined in Inspector and modified in play mode through the mouse scroll wheel).\n#if USE_INPUT_SYSTEM\n                Vector2 scroll = Mouse.current != null ? Mouse.current.scroll.ReadValue() : Vector2.zero;\n                Boost += scroll.y * dt;\n#else\n                Boost += Input.mouseScrollDelta.y * dt;\n#endif // USE_INPUT_SYSTEM\n                Boost = Mathf.Clamp(Boost, MinBoost, MaxBoost);\n\n                translation *= Mathf.Pow(2.0f, Boost);\n\n                targetCameraState.Translate(translation);\n\n                // Framerate-independent interpolation.\n                // Calculate the lerp amount, such that we get 99% of the way to our target in the specified time.\n                float positionLerp = 1.0f - Mathf.Exp((Mathf.Log(1.0f - 0.99f) / PositionLerpTime) * dt);\n                float rotationLerp = 1.0f - Mathf.Exp((Mathf.Log(1.0f - 0.99f) / RotationLerpTime) * dt);\n                interpolatingCameraState.LerpTowards(targetCameraState, positionLerp, rotationLerp);\n\n                interpolatingCameraState.UpdateTransform(transform);\n            }\n        }\n\n        /// <summary>\n        /// Displays the camera controls via a user interface.\n        /// </summary>\n        private void OnGUI()\n        {\n            if (!XRDeviceIsPresent() && showControlsText)\n            {\n#if USE_INPUT_SYSTEM\n                bool gamepadPresent = Gamepad.current != null;\n#else\n                bool gamepadPresent = false;\n#endif // USE_INPUT_SYSTEM\n\n                if (gamepadPresent)\n                {\n                    GUI.Label(new Rect(10.0f, 10.0f, 256.0f, 128.0f), \"Camera Controls\\nRight Stick to Rotate\\nLeft Stick to Translate\");\n                }\n                else\n                {\n                    GUI.Label(new Rect(10.0f, 10.0f, 256.0f, 128.0f), \"Camera Controls\\nRight Click + Mouse Move to Rotate\\n'W' 'A' 'S' 'D' to Translate\");\n                }\n            }\n        }\n\n        /// <summary>\n        /// Returns true if an XR device is connected and running. For example a VR headset.\n        /// </summary>\n        private bool XRDeviceIsPresent()\n        {\n            foreach (var xrDisplay in xrDisplaySubsystems)\n            {\n                if (xrDisplay != null && xrDisplay.running)\n                {\n                    return true;\n                }\n            }\n\n            return false;\n        }\n\n        /// <summary>\n        /// Turns mouse/stick controls into an input vector.\n        /// </summary>\n        private Vector2 GetInputRotationDirection()\n        {\n            Vector2 direction = Vector3.zero;\n\n#if USE_INPUT_SYSTEM\n            if (Mouse.current != null && Mouse.current.rightButton.isPressed)\n#else\n            if (Input.GetMouseButton(1))\n#endif // USE_INPUT_SYSTEM\n            {\n#if USE_INPUT_SYSTEM\n                // Magical value to feel like the editor.\n                const float rotationScaler = 0.075f;\n                Vector2 delta = Mouse.current.delta.ReadValue() * rotationScaler; \n                direction += new Vector2(delta.x, delta.y * (InvertY ? 1.0f : -1.0f));\n#else\n                direction += new Vector2(Input.GetAxis(\"Mouse X\"), Input.GetAxis(\"Mouse Y\") * (InvertY ? 1.0f : -1.0f));\n#endif // USE_INPUT_SYSTEM\n            }\n\n#if USE_INPUT_SYSTEM\n            if (Gamepad.current != null)\n            {\n                // Magical value to feel like the editor.\n#if UNITY_GAMECORE && !UNITY_EDITOR\n                const float rotationScaler = 1.0f;\n#else\n                const float rotationScaler = 0.25f;\n#endif\n                Vector2 delta = Gamepad.current.rightStick.ReadValue() * rotationScaler;\n                direction += new Vector2(delta.x, delta.y * (InvertY ? 1.0f : -1.0f));\n            }\n#else\n            // TODO - [Cameron-Micka] is is possible to query the right stick without setting up virtual axes in the legacy input system?\n#endif // USE_INPUT_SYSTEM\n\n            return direction;\n        }\n\n        /// <summary>\n        /// Turns WASD/stick controls into an input vector.\n        /// </summary>\n        private Vector3 GetInputTranslationDirection()\n        {\n            Vector3 direction = Vector3.zero;\n\n#if USE_INPUT_SYSTEM\n            if (Keyboard.current != null)\n            {\n                if (Keyboard.current.wKey.isPressed) { direction += Vector3.forward; }\n                if (Keyboard.current.sKey.isPressed) { direction += Vector3.back; }\n                if (Keyboard.current.aKey.isPressed) { direction += Vector3.left; }\n                if (Keyboard.current.dKey.isPressed) { direction += Vector3.right; }\n                if (Keyboard.current.qKey.isPressed) { direction += Vector3.down; }\n                if (Keyboard.current.eKey.isPressed) { direction += Vector3.up; }\n                direction.Normalize();\n            }\n\n            if (Gamepad.current != null)\n            {\n                Vector2 stick = Gamepad.current.leftStick.ReadValue();\n                direction += new Vector3(stick.x, 0.0f, stick.y);\n            }\n#else\n            if (Input.GetKey(KeyCode.W)) { direction += Vector3.forward; }\n            if (Input.GetKey(KeyCode.S)) { direction += Vector3.back; }\n            if (Input.GetKey(KeyCode.A)) { direction += Vector3.left; }\n            if (Input.GetKey(KeyCode.D)) { direction += Vector3.right; }\n            if (Input.GetKey(KeyCode.Q)) { direction += Vector3.down; }\n            if (Input.GetKey(KeyCode.E)) { direction += Vector3.up; }\n            direction.Normalize();\n\n            direction += new Vector3(Input.GetAxis(\"Horizontal\"), 0.0f, Input.GetAxis(\"Vertical\"));\n\n#endif // USE_INPUT_SYSTEM\n\n            return direction;\n        }\n    }\n}\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Scripts/FlyCameraController.cs.meta",
    "content": "fileFormatVersion: 2\nguid: 515798d7848359a4d957285b6653b6c7\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Scripts/Microsoft.MixedReality.Profiling.Sample.asmdef",
    "content": "{\n    \"name\": \"Microsoft.MixedReality.Profiling.Sample\",\n    \"rootNamespace\": \"Microsoft.MixedReality.Profiling.Sample\",\n    \"references\": [],\n    \"includePlatforms\": [],\n    \"excludePlatforms\": [],\n    \"allowUnsafeCode\": false,\n    \"overrideReferences\": true,\n    \"precompiledReferences\": [],\n    \"autoReferenced\": true,\n    \"defineConstraints\": [],\n    \"versionDefines\": [\n        {\n            \"name\": \"com.unity.inputsystem\",\n            \"expression\": \"1.4.0\",\n            \"define\": \"VP_USE_INPUT_SYSTEM\"\n        }\n    ],\n    \"noEngineReferences\": false\n}"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Scripts/Microsoft.MixedReality.Profiling.Sample.asmdef.meta",
    "content": "fileFormatVersion: 2\nguid: 78d68df4d2c1cdb4e9e4537adba2b111\nAssemblyDefinitionImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Scripts/SampleControls.cs",
    "content": "// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nusing System.Collections;\nusing UnityEngine;\n\nnamespace Microsoft.MixedReality.Profiling.Sample\n{\n    public class SampleControls : MonoBehaviour\n    {\n        public GameObject Profiler3D;\n        public GameObject Profiler3DFollow;\n        public GameObject Profiler2D;\n\n        public GameObject Ball;\n        public Transform BallSpawn;\n\n        private int selectionIndex = 0;\n        private string[] selectionStrings = { \"Profiler 3D\", \"Profiler 3D Follow\", \"Profiler 2D\" };\n\n        private void OnGUI()\n        {\n            selectionIndex = GUI.SelectionGrid(new Rect(10, 10, 280, 40), selectionIndex, selectionStrings, 2);\n\n            switch (selectionIndex)\n            {\n                default:\n                case 0:\n                    {\n                        Profiler3D.SetActive(true);\n                        Profiler3DFollow.SetActive(false);\n                        Profiler2D.SetActive(false);\n                    }\n                    break;\n                case 1:\n                    {\n                        Profiler3D.SetActive(false);\n                        Profiler3DFollow.SetActive(true);\n                        Profiler2D.SetActive(false);\n                    }\n                    break;\n                case 2:\n                    {\n                        Profiler3D.SetActive(false);\n                        Profiler3DFollow.SetActive(false);\n                        Profiler2D.SetActive(true);\n                    }\n                    break;\n            }\n\n            if (GUI.Button(new Rect(10, 60, 80, 20), \"Reset Balls\"))\n            {\n                if (BallSpawn != null)\n                {\n                    foreach (Transform child in BallSpawn.transform)\n                    {\n                        Destroy(child.gameObject);\n                    }\n                }\n            }\n        }\n\n        private void Start()\n        {\n            StartCoroutine(SpawnBalls());\n        }\n\n        private IEnumerator SpawnBalls()\n        {\n            while (Ball != null && BallSpawn != null) \n            {\n                Instantiate(Ball, BallSpawn).GetComponent<Rigidbody>().angularVelocity = Random.insideUnitSphere;\n\n                yield return new WaitForSeconds(0.1f);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Scripts/SampleControls.cs.meta",
    "content": "fileFormatVersion: 2\nguid: c2cb613a953f0184caebd6d56645b1e3\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences: []\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/Scripts.meta",
    "content": "fileFormatVersion: 2\nguid: f42e1690a1a9e3847b06cf55c63eb481\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/UniversalRenderPipelineAsset.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &11400000\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}\n  m_Name: UniversalRenderPipelineAsset\n  m_EditorClassIdentifier: \n  k_AssetVersion: 11\n  k_AssetPreviousVersion: 11\n  m_RendererType: 1\n  m_RendererData: {fileID: 0}\n  m_RendererDataList:\n  - {fileID: 11400000, guid: 5da3cc519153e554691ed8e68e68728b, type: 2}\n  m_DefaultRendererIndex: 0\n  m_RequireDepthTexture: 0\n  m_RequireOpaqueTexture: 0\n  m_OpaqueDownsampling: 1\n  m_SupportsTerrainHoles: 1\n  m_SupportsHDR: 1\n  m_HDRColorBufferPrecision: 0\n  m_MSAA: 1\n  m_RenderScale: 1\n  m_UpscalingFilter: 0\n  m_FsrOverrideSharpness: 0\n  m_FsrSharpness: 0.92\n  m_EnableLODCrossFade: 1\n  m_LODCrossFadeDitheringType: 1\n  m_ShEvalMode: 0\n  m_MainLightRenderingMode: 1\n  m_MainLightShadowsSupported: 1\n  m_MainLightShadowmapResolution: 2048\n  m_AdditionalLightsRenderingMode: 1\n  m_AdditionalLightsPerObjectLimit: 4\n  m_AdditionalLightShadowsSupported: 0\n  m_AdditionalLightsShadowmapResolution: 2048\n  m_AdditionalLightsShadowResolutionTierLow: 256\n  m_AdditionalLightsShadowResolutionTierMedium: 512\n  m_AdditionalLightsShadowResolutionTierHigh: 1024\n  m_ReflectionProbeBlending: 0\n  m_ReflectionProbeBoxProjection: 0\n  m_ShadowDistance: 50\n  m_ShadowCascadeCount: 1\n  m_Cascade2Split: 0.25\n  m_Cascade3Split: {x: 0.1, y: 0.3}\n  m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}\n  m_CascadeBorder: 0.2\n  m_ShadowDepthBias: 1\n  m_ShadowNormalBias: 1\n  m_AnyShadowsSupported: 1\n  m_SoftShadowsSupported: 0\n  m_ConservativeEnclosingSphere: 1\n  m_NumIterationsEnclosingSphere: 64\n  m_SoftShadowQuality: 2\n  m_AdditionalLightsCookieResolution: 2048\n  m_AdditionalLightsCookieFormat: 3\n  m_UseSRPBatcher: 1\n  m_SupportsDynamicBatching: 0\n  m_MixedLightingSupported: 1\n  m_SupportsLightCookies: 1\n  m_SupportsLightLayers: 0\n  m_DebugLevel: 0\n  m_StoreActionsOptimization: 0\n  m_EnableRenderGraph: 0\n  m_UseAdaptivePerformance: 1\n  m_ColorGradingMode: 0\n  m_ColorGradingLutSize: 32\n  m_UseFastSRGBLinearConversion: 0\n  m_SupportDataDrivenLensFlare: 1\n  m_ShadowType: 1\n  m_LocalShadowsSupported: 0\n  m_LocalShadowsAtlasResolution: 256\n  m_MaxPixelLights: 0\n  m_ShadowAtlasResolution: 256\n  m_VolumeFrameworkUpdateMode: 0\n  m_Textures:\n    blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}\n    bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}\n  m_PrefilteringModeMainLightShadows: 1\n  m_PrefilteringModeAdditionalLight: 4\n  m_PrefilteringModeAdditionalLightShadows: 1\n  m_PrefilterXRKeywords: 0\n  m_PrefilteringModeForwardPlus: 1\n  m_PrefilteringModeDeferredRendering: 1\n  m_PrefilteringModeScreenSpaceOcclusion: 1\n  m_PrefilterDebugKeywords: 0\n  m_PrefilterWriteRenderingLayers: 0\n  m_PrefilterHDROutput: 0\n  m_PrefilterSSAODepthNormals: 0\n  m_PrefilterSSAOSourceDepthLow: 0\n  m_PrefilterSSAOSourceDepthMedium: 0\n  m_PrefilterSSAOSourceDepthHigh: 0\n  m_PrefilterSSAOInterleaved: 0\n  m_PrefilterSSAOBlueNoise: 0\n  m_PrefilterSSAOSampleCountLow: 0\n  m_PrefilterSSAOSampleCountMedium: 0\n  m_PrefilterSSAOSampleCountHigh: 0\n  m_PrefilterDBufferMRT1: 0\n  m_PrefilterDBufferMRT2: 0\n  m_PrefilterDBufferMRT3: 0\n  m_PrefilterSoftShadowsQualityLow: 0\n  m_PrefilterSoftShadowsQualityMedium: 0\n  m_PrefilterSoftShadowsQualityHigh: 0\n  m_PrefilterSoftShadows: 0\n  m_PrefilterScreenCoord: 0\n  m_PrefilterNativeRenderPass: 0\n  m_ShaderVariantLogLevel: 0\n  m_ShadowCascades: 0\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/UniversalRenderPipelineAsset.asset.meta",
    "content": "fileFormatVersion: 2\nguid: 4111f02a480035642ab852db53553d24\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 11400000\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/UniversalRenderPipelineAssetRenderer.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &11400000\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}\n  m_Name: UniversalRenderPipelineAssetRenderer\n  m_EditorClassIdentifier: \n  debugShaders:\n    debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}\n    hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}\n  m_RendererFeatures: []\n  m_RendererFeatureMap: \n  m_UseNativeRenderPass: 0\n  postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}\n  xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}\n  shaders:\n    blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}\n    copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}\n    screenSpaceShadowPS: {fileID: 0}\n    samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}\n    stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}\n    fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}\n    fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}\n    materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}\n    coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}\n    coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3}\n    blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}\n    cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3}\n    objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, type: 3}\n    dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, type: 3}\n  m_AssetVersion: 2\n  m_OpaqueLayerMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_TransparentLayerMask:\n    serializedVersion: 2\n    m_Bits: 4294967295\n  m_DefaultStencilState:\n    overrideStencilState: 0\n    stencilReference: 0\n    stencilCompareFunction: 8\n    passOperation: 2\n    failOperation: 0\n    zFailOperation: 0\n  m_ShadowTransparentReceive: 1\n  m_RenderingMode: 0\n  m_DepthPrimingMode: 0\n  m_CopyDepthMode: 1\n  m_AccurateGbufferNormals: 0\n  m_IntermediateTextureMode: 1\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/UniversalRenderPipelineAssetRenderer.asset.meta",
    "content": "fileFormatVersion: 2\nguid: 5da3cc519153e554691ed8e68e68728b\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 11400000\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/UniversalRenderPipelineGlobalSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &11400000\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3}\n  m_Name: UniversalRenderPipelineGlobalSettings\n  m_EditorClassIdentifier: \n  k_AssetVersion: 3\n  m_RenderingLayerNames:\n  - Default\n  m_ValidRenderingLayers: 1\n  lightLayerName0: \n  lightLayerName1: \n  lightLayerName2: \n  lightLayerName3: \n  lightLayerName4: \n  lightLayerName5: \n  lightLayerName6: \n  lightLayerName7: \n  m_StripDebugVariants: 1\n  m_StripUnusedPostProcessingVariants: 0\n  m_StripUnusedVariants: 1\n  m_StripUnusedLODCrossFadeVariants: 1\n  m_StripScreenCoordOverrideVariants: 1\n  supportRuntimeDebugDisplay: 0\n  m_ShaderVariantLogLevel: 0\n  m_ExportShaderVariants: 1\n"
  },
  {
    "path": "VisualProfilerUnityProject/Assets/UniversalRenderPipelineGlobalSettings.asset.meta",
    "content": "fileFormatVersion: 2\nguid: 98f7561e83f4e64478e91723976ec453\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 11400000\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "VisualProfilerUnityProject/Packages/manifest.json",
    "content": "{\n  \"dependencies\": {\n    \"com.microsoft.mixedreality.visualprofiler\": \"file:../../com.microsoft.mixedreality.visualprofiler\",\n    \"com.unity.feature.development\": \"1.0.1\",\n    \"com.unity.render-pipelines.universal\": \"14.0.9\",\n    \"com.unity.textmeshpro\": \"3.0.8\",\n    \"com.unity.ugui\": \"1.0.0\",\n    \"com.unity.modules.ai\": \"1.0.0\",\n    \"com.unity.modules.androidjni\": \"1.0.0\",\n    \"com.unity.modules.animation\": \"1.0.0\",\n    \"com.unity.modules.assetbundle\": \"1.0.0\",\n    \"com.unity.modules.audio\": \"1.0.0\",\n    \"com.unity.modules.cloth\": \"1.0.0\",\n    \"com.unity.modules.director\": \"1.0.0\",\n    \"com.unity.modules.imageconversion\": \"1.0.0\",\n    \"com.unity.modules.imgui\": \"1.0.0\",\n    \"com.unity.modules.jsonserialize\": \"1.0.0\",\n    \"com.unity.modules.particlesystem\": \"1.0.0\",\n    \"com.unity.modules.physics\": \"1.0.0\",\n    \"com.unity.modules.physics2d\": \"1.0.0\",\n    \"com.unity.modules.screencapture\": \"1.0.0\",\n    \"com.unity.modules.terrain\": \"1.0.0\",\n    \"com.unity.modules.terrainphysics\": \"1.0.0\",\n    \"com.unity.modules.tilemap\": \"1.0.0\",\n    \"com.unity.modules.ui\": \"1.0.0\",\n    \"com.unity.modules.uielements\": \"1.0.0\",\n    \"com.unity.modules.umbra\": \"1.0.0\",\n    \"com.unity.modules.unityanalytics\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequestassetbundle\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequestaudio\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequesttexture\": \"1.0.0\",\n    \"com.unity.modules.unitywebrequestwww\": \"1.0.0\",\n    \"com.unity.modules.vehicles\": \"1.0.0\",\n    \"com.unity.modules.video\": \"1.0.0\",\n    \"com.unity.modules.vr\": \"1.0.0\",\n    \"com.unity.modules.wind\": \"1.0.0\",\n    \"com.unity.modules.xr\": \"1.0.0\"\n  }\n}\n"
  },
  {
    "path": "VisualProfilerUnityProject/Packages/packages-lock.json",
    "content": "{\n  \"dependencies\": {\n    \"com.microsoft.mixedreality.visualprofiler\": {\n      \"version\": \"file:../../com.microsoft.mixedreality.visualprofiler\",\n      \"depth\": 0,\n      \"source\": \"local\",\n      \"dependencies\": {}\n    },\n    \"com.unity.burst\": {\n      \"version\": \"1.8.11\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.mathematics\": \"1.2.1\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.editorcoroutines\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ext.nunit\": {\n      \"version\": \"1.0.6\",\n      \"depth\": 2,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.feature.development\": {\n      \"version\": \"1.0.1\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.ide.visualstudio\": \"2.0.22\",\n        \"com.unity.ide.rider\": \"3.0.26\",\n        \"com.unity.ide.vscode\": \"1.2.5\",\n        \"com.unity.editorcoroutines\": \"1.0.0\",\n        \"com.unity.performance.profile-analyzer\": \"1.2.2\",\n        \"com.unity.test-framework\": \"1.1.33\",\n        \"com.unity.testtools.codecoverage\": \"1.2.4\"\n      }\n    },\n    \"com.unity.ide.rider\": {\n      \"version\": \"3.0.26\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ext.nunit\": \"1.0.6\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.visualstudio\": {\n      \"version\": \"2.0.22\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.1.9\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ide.vscode\": {\n      \"version\": \"1.2.5\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.mathematics\": {\n      \"version\": \"1.2.6\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.performance.profile-analyzer\": {\n      \"version\": \"1.2.2\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.render-pipelines.core\": {\n      \"version\": \"14.0.9\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.ugui\": \"1.0.0\",\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.terrain\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    },\n    \"com.unity.render-pipelines.universal\": {\n      \"version\": \"14.0.9\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.mathematics\": \"1.2.1\",\n        \"com.unity.burst\": \"1.8.9\",\n        \"com.unity.render-pipelines.core\": \"14.0.9\",\n        \"com.unity.shadergraph\": \"14.0.9\",\n        \"com.unity.render-pipelines.universal-config\": \"14.0.9\"\n      }\n    },\n    \"com.unity.render-pipelines.universal-config\": {\n      \"version\": \"14.0.9\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.render-pipelines.core\": \"14.0.9\"\n      }\n    },\n    \"com.unity.searcher\": {\n      \"version\": \"4.9.2\",\n      \"depth\": 2,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.settings-manager\": {\n      \"version\": \"2.0.1\",\n      \"depth\": 2,\n      \"source\": \"registry\",\n      \"dependencies\": {},\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.shadergraph\": {\n      \"version\": \"14.0.9\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.render-pipelines.core\": \"14.0.9\",\n        \"com.unity.searcher\": \"4.9.2\"\n      }\n    },\n    \"com.unity.test-framework\": {\n      \"version\": \"1.1.33\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ext.nunit\": \"1.0.6\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.testtools.codecoverage\": {\n      \"version\": \"1.2.4\",\n      \"depth\": 1,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.test-framework\": \"1.0.16\",\n        \"com.unity.settings-manager\": \"1.0.1\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.textmeshpro\": {\n      \"version\": \"3.0.8\",\n      \"depth\": 0,\n      \"source\": \"registry\",\n      \"dependencies\": {\n        \"com.unity.ugui\": \"1.0.0\"\n      },\n      \"url\": \"https://packages.unity.com\"\n    },\n    \"com.unity.ugui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.ai\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.androidjni\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.animation\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.assetbundle\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.audio\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.cloth\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.director\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.animation\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.imageconversion\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.imgui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.jsonserialize\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.particlesystem\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.physics\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.physics2d\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.screencapture\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.imageconversion\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.subsystems\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 1,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.terrain\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.terrainphysics\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.terrain\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.tilemap\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics2d\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.ui\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.uielements\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.imgui\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.umbra\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.unityanalytics\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequest\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.unitywebrequestassetbundle\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.assetbundle\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequestaudio\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.audio\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequesttexture\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.imageconversion\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.unitywebrequestwww\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequestassetbundle\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequestaudio\": \"1.0.0\",\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.assetbundle\": \"1.0.0\",\n        \"com.unity.modules.imageconversion\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.vehicles\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.video\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.audio\": \"1.0.0\",\n        \"com.unity.modules.ui\": \"1.0.0\",\n        \"com.unity.modules.unitywebrequest\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.vr\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.jsonserialize\": \"1.0.0\",\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.xr\": \"1.0.0\"\n      }\n    },\n    \"com.unity.modules.wind\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {}\n    },\n    \"com.unity.modules.xr\": {\n      \"version\": \"1.0.0\",\n      \"depth\": 0,\n      \"source\": \"builtin\",\n      \"dependencies\": {\n        \"com.unity.modules.physics\": \"1.0.0\",\n        \"com.unity.modules.jsonserialize\": \"1.0.0\",\n        \"com.unity.modules.subsystems\": \"1.0.0\"\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/AudioManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!11 &1\nAudioManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Volume: 1\n  Rolloff Scale: 1\n  Doppler Factor: 1\n  Default Speaker Mode: 2\n  m_SampleRate: 0\n  m_DSPBufferSize: 1024\n  m_VirtualVoiceCount: 512\n  m_RealVoiceCount: 32\n  m_SpatializerPlugin: \n  m_AmbisonicDecoderPlugin: \n  m_DisableAudio: 0\n  m_VirtualizeEffects: 1\n  m_RequestedDSPBufferSize: 1024\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/ClusterInputManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!236 &1\nClusterInputManager:\n  m_ObjectHideFlags: 0\n  m_Inputs: []\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/DynamicsManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!55 &1\nPhysicsManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 11\n  m_Gravity: {x: 0, y: -9.81, z: 0}\n  m_DefaultMaterial: {fileID: 0}\n  m_BounceThreshold: 2\n  m_SleepThreshold: 0.005\n  m_DefaultContactOffset: 0.01\n  m_DefaultSolverIterations: 6\n  m_DefaultSolverVelocityIterations: 1\n  m_QueriesHitBackfaces: 0\n  m_QueriesHitTriggers: 1\n  m_EnableAdaptiveForce: 0\n  m_ClothInterCollisionDistance: 0\n  m_ClothInterCollisionStiffness: 0\n  m_ContactsGeneration: 1\n  m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n  m_AutoSimulation: 1\n  m_AutoSyncTransforms: 0\n  m_ReuseCollisionCallbacks: 1\n  m_ClothInterCollisionSettingsToggle: 0\n  m_ContactPairsMode: 0\n  m_BroadphaseType: 0\n  m_WorldBounds:\n    m_Center: {x: 0, y: 0, z: 0}\n    m_Extent: {x: 250, y: 250, z: 250}\n  m_WorldSubdivisions: 8\n  m_FrictionType: 0\n  m_EnableEnhancedDeterminism: 0\n  m_EnableUnifiedHeightmaps: 1\n  m_DefaultMaxAngluarSpeed: 7\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/EditorBuildSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1045 &1\nEditorBuildSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Scenes:\n  - enabled: 1\n    path: Assets/Scenes/SampleScene.unity\n    guid: 9fc0d4010bbf28b4594072e72b8655ab\n  m_configObjects: {}\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/EditorSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!159 &1\nEditorSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 11\n  m_ExternalVersionControlSupport: Visible Meta Files\n  m_SerializationMode: 2\n  m_LineEndingsForNewScripts: 0\n  m_DefaultBehaviorMode: 0\n  m_PrefabRegularEnvironment: {fileID: 0}\n  m_PrefabUIEnvironment: {fileID: 0}\n  m_SpritePackerMode: 0\n  m_SpritePackerPaddingPower: 1\n  m_EtcTextureCompressorBehavior: 1\n  m_EtcTextureFastCompressor: 1\n  m_EtcTextureNormalCompressor: 2\n  m_EtcTextureBestCompressor: 4\n  m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref\n  m_ProjectGenerationRootNamespace: \n  m_CollabEditorSettings:\n    inProgressEnabled: 1\n  m_EnableTextureStreamingInEditMode: 1\n  m_EnableTextureStreamingInPlayMode: 1\n  m_AsyncShaderCompilation: 1\n  m_EnterPlayModeOptionsEnabled: 0\n  m_EnterPlayModeOptions: 3\n  m_ShowLightmapResolutionOverlay: 1\n  m_UseLegacyProbeSampleCount: 0\n  m_SerializeInlineMappingsOnOneLine: 1\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/GraphicsSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!30 &1\nGraphicsSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 15\n  m_Deferred:\n    m_Mode: 1\n    m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}\n  m_DeferredReflections:\n    m_Mode: 1\n    m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}\n  m_ScreenSpaceShadows:\n    m_Mode: 1\n    m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}\n  m_DepthNormals:\n    m_Mode: 1\n    m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}\n  m_MotionVectors:\n    m_Mode: 1\n    m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}\n  m_LightHalo:\n    m_Mode: 1\n    m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}\n  m_LensFlare:\n    m_Mode: 1\n    m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}\n  m_VideoShadersIncludeMode: 2\n  m_AlwaysIncludedShaders:\n  - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}\n  - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}\n  m_PreloadedShaders: []\n  m_PreloadShadersBatchTimeLimit: -1\n  m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}\n  m_CustomRenderPipeline: {fileID: 11400000, guid: 4111f02a480035642ab852db53553d24, type: 2}\n  m_TransparencySortMode: 0\n  m_TransparencySortAxis: {x: 0, y: 0, z: 1}\n  m_DefaultRenderingPath: 1\n  m_DefaultMobileRenderingPath: 1\n  m_TierSettings: []\n  m_LightmapStripping: 0\n  m_FogStripping: 0\n  m_InstancingStripping: 0\n  m_BrgStripping: 0\n  m_LightmapKeepPlain: 1\n  m_LightmapKeepDirCombined: 1\n  m_LightmapKeepDynamicPlain: 1\n  m_LightmapKeepDynamicDirCombined: 1\n  m_LightmapKeepShadowMask: 1\n  m_LightmapKeepSubtractive: 1\n  m_FogKeepLinear: 1\n  m_FogKeepExp: 1\n  m_FogKeepExp2: 1\n  m_AlbedoSwatchInfos: []\n  m_LightsUseLinearIntensity: 0\n  m_LightsUseColorTemperature: 1\n  m_DefaultRenderingLayerMask: 1\n  m_LogWhenShaderIsCompiled: 0\n  m_SRPDefaultSettings:\n    UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 98f7561e83f4e64478e91723976ec453, type: 2}\n  m_LightProbeOutsideHullStrategy: 0\n  m_CameraRelativeLightCulling: 0\n  m_CameraRelativeShadowCulling: 0\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/InputManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!13 &1\nInputManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_Axes:\n  - serializedVersion: 3\n    m_Name: Horizontal\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: left\n    positiveButton: right\n    altNegativeButton: a\n    altPositiveButton: d\n    gravity: 3\n    dead: 0.001\n    sensitivity: 3\n    snap: 1\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Vertical\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: down\n    positiveButton: up\n    altNegativeButton: s\n    altPositiveButton: w\n    gravity: 3\n    dead: 0.001\n    sensitivity: 3\n    snap: 1\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire1\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left ctrl\n    altNegativeButton: \n    altPositiveButton: mouse 0\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire2\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left alt\n    altNegativeButton: \n    altPositiveButton: mouse 1\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire3\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left shift\n    altNegativeButton: \n    altPositiveButton: mouse 2\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Jump\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: space\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Mouse X\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0\n    sensitivity: 0.1\n    snap: 0\n    invert: 0\n    type: 1\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Mouse Y\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0\n    sensitivity: 0.1\n    snap: 0\n    invert: 0\n    type: 1\n    axis: 1\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Mouse ScrollWheel\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0\n    sensitivity: 0.1\n    snap: 0\n    invert: 0\n    type: 1\n    axis: 2\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Horizontal\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0.19\n    sensitivity: 1\n    snap: 0\n    invert: 0\n    type: 2\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Vertical\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: \n    altNegativeButton: \n    altPositiveButton: \n    gravity: 0\n    dead: 0.19\n    sensitivity: 1\n    snap: 0\n    invert: 1\n    type: 2\n    axis: 1\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire1\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 0\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire2\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 1\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Fire3\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 2\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Jump\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: joystick button 3\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Submit\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: return\n    altNegativeButton: \n    altPositiveButton: joystick button 0\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Submit\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: enter\n    altNegativeButton: \n    altPositiveButton: space\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Cancel\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: escape\n    altNegativeButton: \n    altPositiveButton: joystick button 1\n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Enable Debug Button 1\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left ctrl\n    altNegativeButton: \n    altPositiveButton: joystick button 8\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Enable Debug Button 2\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: backspace\n    altNegativeButton: \n    altPositiveButton: joystick button 9\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Reset\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left alt\n    altNegativeButton: \n    altPositiveButton: joystick button 1\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Next\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: page down\n    altNegativeButton: \n    altPositiveButton: joystick button 5\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Previous\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: page up\n    altNegativeButton: \n    altPositiveButton: joystick button 4\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Validate\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: return\n    altNegativeButton: \n    altPositiveButton: joystick button 0\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Persistent\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: right shift\n    altNegativeButton: \n    altPositiveButton: joystick button 2\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Multiplier\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: \n    positiveButton: left shift\n    altNegativeButton: \n    altPositiveButton: joystick button 3\n    gravity: 0\n    dead: 0\n    sensitivity: 0\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Horizontal\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: left\n    positiveButton: right\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Vertical\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: down\n    positiveButton: up\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 0\n    axis: 0\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Vertical\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: down\n    positiveButton: up\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 2\n    axis: 6\n    joyNum: 0\n  - serializedVersion: 3\n    m_Name: Debug Horizontal\n    descriptiveName: \n    descriptiveNegativeName: \n    negativeButton: left\n    positiveButton: right\n    altNegativeButton: \n    altPositiveButton: \n    gravity: 1000\n    dead: 0.001\n    sensitivity: 1000\n    snap: 0\n    invert: 0\n    type: 2\n    axis: 5\n    joyNum: 0\n  m_UsePhysicalKeys: 1\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/MemorySettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!387306366 &1\nMemorySettings:\n  m_ObjectHideFlags: 0\n  m_EditorMemorySettings:\n    m_MainAllocatorBlockSize: -1\n    m_ThreadAllocatorBlockSize: -1\n    m_MainGfxBlockSize: -1\n    m_ThreadGfxBlockSize: -1\n    m_CacheBlockSize: -1\n    m_TypetreeBlockSize: -1\n    m_ProfilerBlockSize: -1\n    m_ProfilerEditorBlockSize: -1\n    m_BucketAllocatorGranularity: -1\n    m_BucketAllocatorBucketsCount: -1\n    m_BucketAllocatorBlockSize: -1\n    m_BucketAllocatorBlockCount: -1\n    m_ProfilerBucketAllocatorGranularity: -1\n    m_ProfilerBucketAllocatorBucketsCount: -1\n    m_ProfilerBucketAllocatorBlockSize: -1\n    m_ProfilerBucketAllocatorBlockCount: -1\n    m_TempAllocatorSizeMain: -1\n    m_JobTempAllocatorBlockSize: -1\n    m_BackgroundJobTempAllocatorBlockSize: -1\n    m_JobTempAllocatorReducedBlockSize: -1\n    m_TempAllocatorSizeGIBakingWorker: -1\n    m_TempAllocatorSizeNavMeshWorker: -1\n    m_TempAllocatorSizeAudioWorker: -1\n    m_TempAllocatorSizeCloudWorker: -1\n    m_TempAllocatorSizeGfx: -1\n    m_TempAllocatorSizeJobWorker: -1\n    m_TempAllocatorSizeBackgroundWorker: -1\n    m_TempAllocatorSizePreloadManager: -1\n  m_PlatformMemorySettings: {}\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/NavMeshAreas.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!126 &1\nNavMeshProjectSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  areas:\n  - name: Walkable\n    cost: 1\n  - name: Not Walkable\n    cost: 1\n  - name: Jump\n    cost: 2\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  - name: \n    cost: 1\n  m_LastAgentTypeID: -887442657\n  m_Settings:\n  - serializedVersion: 2\n    agentTypeID: 0\n    agentRadius: 0.5\n    agentHeight: 2\n    agentSlope: 45\n    agentClimb: 0.75\n    ledgeDropHeight: 0\n    maxJumpAcrossDistance: 0\n    minRegionArea: 2\n    manualCellSize: 0\n    cellSize: 0.16666667\n    manualTileSize: 0\n    tileSize: 256\n    accuratePlacement: 0\n    debug:\n      m_Flags: 0\n  m_SettingNames:\n  - Humanoid\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/PackageManagerSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &1\nMonoBehaviour:\n  m_ObjectHideFlags: 61\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_EnablePreReleasePackages: 0\n  m_EnablePackageDependencies: 0\n  m_AdvancedSettingsExpanded: 1\n  m_ScopedRegistriesSettingsExpanded: 1\n  m_SeeAllPackageVersions: 0\n  oneTimeWarningShown: 0\n  m_Registries:\n  - m_Id: main\n    m_Name: \n    m_Url: https://packages.unity.com\n    m_Scopes: []\n    m_IsDefault: 1\n    m_Capabilities: 7\n  m_UserSelectedRegistryName: \n  m_UserAddingNewScopedRegistry: 0\n  m_RegistryInfoDraft:\n    m_Modified: 0\n    m_ErrorMessage: \n    m_UserModificationsInstanceId: -830\n    m_OriginalInstanceId: -832\n  m_LoadAssets: 0\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json",
    "content": "{\n    \"m_Dictionary\": {\n        \"m_DictionaryValues\": []\n    }\n}"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/Physics2DSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!19 &1\nPhysics2DSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 4\n  m_Gravity: {x: 0, y: -9.81}\n  m_DefaultMaterial: {fileID: 0}\n  m_VelocityIterations: 8\n  m_PositionIterations: 3\n  m_VelocityThreshold: 1\n  m_MaxLinearCorrection: 0.2\n  m_MaxAngularCorrection: 8\n  m_MaxTranslationSpeed: 100\n  m_MaxRotationSpeed: 360\n  m_BaumgarteScale: 0.2\n  m_BaumgarteTimeOfImpactScale: 0.75\n  m_TimeToSleep: 0.5\n  m_LinearSleepTolerance: 0.01\n  m_AngularSleepTolerance: 2\n  m_DefaultContactOffset: 0.01\n  m_JobOptions:\n    serializedVersion: 2\n    useMultithreading: 0\n    useConsistencySorting: 0\n    m_InterpolationPosesPerJob: 100\n    m_NewContactsPerJob: 30\n    m_CollideContactsPerJob: 100\n    m_ClearFlagsPerJob: 200\n    m_ClearBodyForcesPerJob: 200\n    m_SyncDiscreteFixturesPerJob: 50\n    m_SyncContinuousFixturesPerJob: 50\n    m_FindNearestContactsPerJob: 100\n    m_UpdateTriggerContactsPerJob: 100\n    m_IslandSolverCostThreshold: 100\n    m_IslandSolverBodyCostScale: 1\n    m_IslandSolverContactCostScale: 10\n    m_IslandSolverJointCostScale: 10\n    m_IslandSolverBodiesPerJob: 50\n    m_IslandSolverContactsPerJob: 50\n  m_AutoSimulation: 1\n  m_QueriesHitTriggers: 1\n  m_QueriesStartInColliders: 1\n  m_CallbacksOnDisable: 1\n  m_ReuseCollisionCallbacks: 1\n  m_AutoSyncTransforms: 0\n  m_AlwaysShowColliders: 0\n  m_ShowColliderSleep: 1\n  m_ShowColliderContacts: 0\n  m_ShowColliderAABB: 0\n  m_ContactArrowScale: 0.2\n  m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}\n  m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}\n  m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}\n  m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}\n  m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/PresetManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1386491679 &1\nPresetManager:\n  m_ObjectHideFlags: 0\n  serializedVersion: 2\n  m_DefaultPresets: {}\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/ProjectSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!129 &1\nPlayerSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 26\n  productGUID: 8fccff143201df44489bf7dcf6bd86af\n  AndroidProfiler: 0\n  AndroidFilterTouchesWhenObscured: 0\n  AndroidEnableSustainedPerformanceMode: 0\n  defaultScreenOrientation: 4\n  targetDevice: 2\n  useOnDemandResources: 0\n  accelerometerFrequency: 60\n  companyName: DefaultCompany\n  productName: Visual Profiler\n  defaultCursor: {fileID: 0}\n  cursorHotspot: {x: 0, y: 0}\n  m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}\n  m_ShowUnitySplashScreen: 1\n  m_ShowUnitySplashLogo: 1\n  m_SplashScreenOverlayOpacity: 1\n  m_SplashScreenAnimation: 1\n  m_SplashScreenLogoStyle: 1\n  m_SplashScreenDrawMode: 0\n  m_SplashScreenBackgroundAnimationZoom: 1\n  m_SplashScreenLogoAnimationZoom: 1\n  m_SplashScreenBackgroundLandscapeAspect: 1\n  m_SplashScreenBackgroundPortraitAspect: 1\n  m_SplashScreenBackgroundLandscapeUvs:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  m_SplashScreenBackgroundPortraitUvs:\n    serializedVersion: 2\n    x: 0\n    y: 0\n    width: 1\n    height: 1\n  m_SplashScreenLogos: []\n  m_VirtualRealitySplashScreen: {fileID: 0}\n  m_HolographicTrackingLossScreen: {fileID: 0}\n  defaultScreenWidth: 1920\n  defaultScreenHeight: 1080\n  defaultScreenWidthWeb: 960\n  defaultScreenHeightWeb: 600\n  m_StereoRenderingPath: 0\n  m_ActiveColorSpace: 0\n  unsupportedMSAAFallback: 0\n  m_SpriteBatchVertexThreshold: 300\n  m_MTRendering: 1\n  mipStripping: 0\n  numberOfMipsStripped: 0\n  numberOfMipsStrippedPerMipmapLimitGroup: {}\n  m_StackTraceTypes: 010000000100000001000000010000000100000001000000\n  iosShowActivityIndicatorOnLoading: -1\n  androidShowActivityIndicatorOnLoading: -1\n  iosUseCustomAppBackgroundBehavior: 0\n  allowedAutorotateToPortrait: 1\n  allowedAutorotateToPortraitUpsideDown: 1\n  allowedAutorotateToLandscapeRight: 1\n  allowedAutorotateToLandscapeLeft: 1\n  useOSAutorotation: 1\n  use32BitDisplayBuffer: 1\n  preserveFramebufferAlpha: 0\n  disableDepthAndStencilBuffers: 0\n  androidStartInFullscreen: 1\n  androidRenderOutsideSafeArea: 1\n  androidUseSwappy: 1\n  androidBlitType: 0\n  androidResizableWindow: 0\n  androidDefaultWindowWidth: 1920\n  androidDefaultWindowHeight: 1080\n  androidMinimumWindowWidth: 400\n  androidMinimumWindowHeight: 300\n  androidFullscreenMode: 1\n  defaultIsNativeResolution: 1\n  macRetinaSupport: 1\n  runInBackground: 1\n  captureSingleScreen: 0\n  muteOtherAudioSources: 0\n  Prepare IOS For Recording: 0\n  Force IOS Speakers When Recording: 0\n  deferSystemGesturesMode: 0\n  hideHomeButton: 0\n  submitAnalytics: 1\n  usePlayerLog: 1\n  dedicatedServerOptimizations: 0\n  bakeCollisionMeshes: 0\n  forceSingleInstance: 0\n  useFlipModelSwapchain: 1\n  resizableWindow: 0\n  useMacAppStoreValidation: 0\n  macAppStoreCategory: public.app-category.games\n  gpuSkinning: 1\n  xboxPIXTextureCapture: 0\n  xboxEnableAvatar: 0\n  xboxEnableKinect: 0\n  xboxEnableKinectAutoTracking: 0\n  xboxEnableFitness: 0\n  visibleInBackground: 1\n  allowFullscreenSwitch: 1\n  fullscreenMode: 3\n  xboxSpeechDB: 0\n  xboxEnableHeadOrientation: 0\n  xboxEnableGuest: 0\n  xboxEnablePIXSampling: 0\n  metalFramebufferOnly: 0\n  xboxOneResolution: 0\n  xboxOneSResolution: 0\n  xboxOneXResolution: 3\n  xboxOneMonoLoggingLevel: 0\n  xboxOneLoggingLevel: 1\n  xboxOneDisableEsram: 0\n  xboxOneEnableTypeOptimization: 0\n  xboxOnePresentImmediateThreshold: 0\n  switchQueueCommandMemory: 0\n  switchQueueControlMemory: 16384\n  switchQueueComputeMemory: 262144\n  switchNVNShaderPoolsGranularity: 33554432\n  switchNVNDefaultPoolsGranularity: 16777216\n  switchNVNOtherPoolsGranularity: 16777216\n  switchGpuScratchPoolGranularity: 2097152\n  switchAllowGpuScratchShrinking: 0\n  switchNVNMaxPublicTextureIDCount: 0\n  switchNVNMaxPublicSamplerIDCount: 0\n  switchNVNGraphicsFirmwareMemory: 32\n  switchMaxWorkerMultiple: 8\n  stadiaPresentMode: 0\n  stadiaTargetFramerate: 0\n  vulkanNumSwapchainBuffers: 3\n  vulkanEnableSetSRGBWrite: 0\n  vulkanEnablePreTransform: 1\n  vulkanEnableLateAcquireNextImage: 0\n  vulkanEnableCommandBufferRecycling: 1\n  loadStoreDebugModeEnabled: 0\n  bundleVersion: 0.1\n  preloadedAssets: []\n  metroInputSource: 0\n  wsaTransparentSwapchain: 0\n  m_HolographicPauseOnTrackingLoss: 1\n  xboxOneDisableKinectGpuReservation: 1\n  xboxOneEnable7thCore: 1\n  vrSettings:\n    enable360StereoCapture: 0\n  isWsaHolographicRemotingEnabled: 0\n  enableFrameTimingStats: 0\n  enableOpenGLProfilerGPURecorders: 1\n  allowHDRDisplaySupport: 0\n  useHDRDisplay: 0\n  hdrBitDepth: 0\n  m_ColorGamuts: 00000000\n  targetPixelDensity: 30\n  resolutionScalingMode: 0\n  resetResolutionOnWindowResize: 0\n  androidSupportedAspectRatio: 1\n  androidMaxAspectRatio: 2.1\n  applicationIdentifier:\n    Standalone: com.DefaultCompany.Visual-Profiler\n  buildNumber:\n    Standalone: 0\n    VisionOS: 0\n    iPhone: 0\n    tvOS: 0\n  overrideDefaultApplicationIdentifier: 0\n  AndroidBundleVersionCode: 1\n  AndroidMinSdkVersion: 22\n  AndroidTargetSdkVersion: 0\n  AndroidPreferredInstallLocation: 1\n  aotOptions: \n  stripEngineCode: 1\n  iPhoneStrippingLevel: 0\n  iPhoneScriptCallOptimization: 0\n  ForceInternetPermission: 0\n  ForceSDCardPermission: 0\n  CreateWallpaper: 0\n  APKExpansionFiles: 0\n  keepLoadedShadersAlive: 0\n  StripUnusedMeshComponents: 1\n  strictShaderVariantMatching: 0\n  VertexChannelCompressionMask: 4054\n  iPhoneSdkVersion: 988\n  iOSTargetOSVersionString: 12.0\n  tvOSSdkVersion: 0\n  tvOSRequireExtendedGameController: 0\n  tvOSTargetOSVersionString: 12.0\n  VisionOSSdkVersion: 0\n  VisionOSTargetOSVersionString: 1.0\n  uIPrerenderedIcon: 0\n  uIRequiresPersistentWiFi: 0\n  uIRequiresFullScreen: 1\n  uIStatusBarHidden: 1\n  uIExitOnSuspend: 0\n  uIStatusBarStyle: 0\n  appleTVSplashScreen: {fileID: 0}\n  appleTVSplashScreen2x: {fileID: 0}\n  tvOSSmallIconLayers: []\n  tvOSSmallIconLayers2x: []\n  tvOSLargeIconLayers: []\n  tvOSLargeIconLayers2x: []\n  tvOSTopShelfImageLayers: []\n  tvOSTopShelfImageLayers2x: []\n  tvOSTopShelfImageWideLayers: []\n  tvOSTopShelfImageWideLayers2x: []\n  iOSLaunchScreenType: 0\n  iOSLaunchScreenPortrait: {fileID: 0}\n  iOSLaunchScreenLandscape: {fileID: 0}\n  iOSLaunchScreenBackgroundColor:\n    serializedVersion: 2\n    rgba: 0\n  iOSLaunchScreenFillPct: 100\n  iOSLaunchScreenSize: 100\n  iOSLaunchScreenCustomXibPath: \n  iOSLaunchScreeniPadType: 0\n  iOSLaunchScreeniPadImage: {fileID: 0}\n  iOSLaunchScreeniPadBackgroundColor:\n    serializedVersion: 2\n    rgba: 0\n  iOSLaunchScreeniPadFillPct: 100\n  iOSLaunchScreeniPadSize: 100\n  iOSLaunchScreeniPadCustomXibPath: \n  iOSLaunchScreenCustomStoryboardPath: \n  iOSLaunchScreeniPadCustomStoryboardPath: \n  iOSDeviceRequirements: []\n  iOSURLSchemes: []\n  macOSURLSchemes: []\n  iOSBackgroundModes: 0\n  iOSMetalForceHardShadows: 0\n  metalEditorSupport: 1\n  metalAPIValidation: 1\n  iOSRenderExtraFrameOnPause: 0\n  iosCopyPluginsCodeInsteadOfSymlink: 0\n  appleDeveloperTeamID: \n  iOSManualSigningProvisioningProfileID: \n  tvOSManualSigningProvisioningProfileID: \n  VisionOSManualSigningProvisioningProfileID: \n  iOSManualSigningProvisioningProfileType: 0\n  tvOSManualSigningProvisioningProfileType: 0\n  VisionOSManualSigningProvisioningProfileType: 0\n  appleEnableAutomaticSigning: 0\n  iOSRequireARKit: 0\n  iOSAutomaticallyDetectAndAddCapabilities: 1\n  appleEnableProMotion: 0\n  shaderPrecisionModel: 0\n  clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea\n  templatePackageId: com.unity.template.3d@8.1.1\n  templateDefaultScene: Assets/Scenes/SampleScene.unity\n  useCustomMainManifest: 0\n  useCustomLauncherManifest: 0\n  useCustomMainGradleTemplate: 0\n  useCustomLauncherGradleManifest: 0\n  useCustomBaseGradleTemplate: 0\n  useCustomGradlePropertiesTemplate: 0\n  useCustomGradleSettingsTemplate: 0\n  useCustomProguardFile: 0\n  AndroidTargetArchitectures: 1\n  AndroidTargetDevices: 0\n  AndroidSplashScreenScale: 0\n  androidSplashScreen: {fileID: 0}\n  AndroidKeystoreName: \n  AndroidKeyaliasName: \n  AndroidEnableArmv9SecurityFeatures: 0\n  AndroidBuildApkPerCpuArchitecture: 0\n  AndroidTVCompatibility: 0\n  AndroidIsGame: 1\n  AndroidEnableTango: 0\n  androidEnableBanner: 1\n  androidUseLowAccuracyLocation: 0\n  androidUseCustomKeystore: 0\n  m_AndroidBanners:\n  - width: 320\n    height: 180\n    banner: {fileID: 0}\n  androidGamepadSupportLevel: 0\n  chromeosInputEmulation: 1\n  AndroidMinifyRelease: 0\n  AndroidMinifyDebug: 0\n  AndroidValidateAppBundleSize: 1\n  AndroidAppBundleSizeToValidate: 150\n  m_BuildTargetIcons: []\n  m_BuildTargetPlatformIcons:\n  - m_BuildTarget: Android\n    m_Icons:\n    - m_Textures: []\n      m_Width: 432\n      m_Height: 432\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 324\n      m_Height: 324\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 216\n      m_Height: 216\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 162\n      m_Height: 162\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 108\n      m_Height: 108\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 81\n      m_Height: 81\n      m_Kind: 2\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 192\n      m_Height: 192\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 144\n      m_Height: 144\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 96\n      m_Height: 96\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 72\n      m_Height: 72\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 48\n      m_Height: 48\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 36\n      m_Height: 36\n      m_Kind: 1\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 192\n      m_Height: 192\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 144\n      m_Height: 144\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 96\n      m_Height: 96\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 72\n      m_Height: 72\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 48\n      m_Height: 48\n      m_Kind: 0\n      m_SubKind: \n    - m_Textures: []\n      m_Width: 36\n      m_Height: 36\n      m_Kind: 0\n      m_SubKind: \n  m_BuildTargetBatching:\n  - m_BuildTarget: Standalone\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: tvOS\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: Android\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: iPhone\n    m_StaticBatching: 1\n    m_DynamicBatching: 0\n  - m_BuildTarget: WebGL\n    m_StaticBatching: 0\n    m_DynamicBatching: 0\n  m_BuildTargetShaderSettings: []\n  m_BuildTargetGraphicsJobs:\n  - m_BuildTarget: MacStandaloneSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: Switch\n    m_GraphicsJobs: 1\n  - m_BuildTarget: MetroSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: AppleTVSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: BJMSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: LinuxStandaloneSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: PS4Player\n    m_GraphicsJobs: 1\n  - m_BuildTarget: iOSSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: WindowsStandaloneSupport\n    m_GraphicsJobs: 1\n  - m_BuildTarget: XboxOnePlayer\n    m_GraphicsJobs: 1\n  - m_BuildTarget: LuminSupport\n    m_GraphicsJobs: 0\n  - m_BuildTarget: AndroidPlayer\n    m_GraphicsJobs: 0\n  - m_BuildTarget: WebGLSupport\n    m_GraphicsJobs: 0\n  m_BuildTargetGraphicsJobMode:\n  - m_BuildTarget: PS4Player\n    m_GraphicsJobMode: 0\n  - m_BuildTarget: XboxOnePlayer\n    m_GraphicsJobMode: 0\n  m_BuildTargetGraphicsAPIs:\n  - m_BuildTarget: AndroidPlayer\n    m_APIs: 150000000b000000\n    m_Automatic: 1\n  - m_BuildTarget: iOSSupport\n    m_APIs: 10000000\n    m_Automatic: 1\n  - m_BuildTarget: AppleTVSupport\n    m_APIs: 10000000\n    m_Automatic: 1\n  - m_BuildTarget: WebGLSupport\n    m_APIs: 0b000000\n    m_Automatic: 1\n  m_BuildTargetVRSettings:\n  - m_BuildTarget: Standalone\n    m_Enabled: 0\n    m_Devices:\n    - Oculus\n    - OpenVR\n  m_DefaultShaderChunkSizeInMB: 16\n  m_DefaultShaderChunkCount: 0\n  openGLRequireES31: 0\n  openGLRequireES31AEP: 0\n  openGLRequireES32: 0\n  m_TemplateCustomTags: {}\n  mobileMTRendering:\n    Android: 1\n    iPhone: 1\n    tvOS: 1\n  m_BuildTargetGroupLightmapEncodingQuality:\n  - m_BuildTarget: Android\n    m_EncodingQuality: 1\n  - m_BuildTarget: iPhone\n    m_EncodingQuality: 1\n  - m_BuildTarget: tvOS\n    m_EncodingQuality: 1\n  m_BuildTargetGroupHDRCubemapEncodingQuality:\n  - m_BuildTarget: Android\n    m_EncodingQuality: 1\n  - m_BuildTarget: iPhone\n    m_EncodingQuality: 1\n  - m_BuildTarget: tvOS\n    m_EncodingQuality: 1\n  m_BuildTargetGroupLightmapSettings: []\n  m_BuildTargetGroupLoadStoreDebugModeSettings: []\n  m_BuildTargetNormalMapEncoding:\n  - m_BuildTarget: Android\n    m_Encoding: 1\n  - m_BuildTarget: iPhone\n    m_Encoding: 1\n  - m_BuildTarget: tvOS\n    m_Encoding: 1\n  m_BuildTargetDefaultTextureCompressionFormat:\n  - m_BuildTarget: Android\n    m_Format: 3\n  playModeTestRunnerEnabled: 0\n  runPlayModeTestAsEditModeTest: 0\n  actionOnDotNetUnhandledException: 1\n  enableInternalProfiler: 0\n  logObjCUncaughtExceptions: 1\n  enableCrashReportAPI: 0\n  cameraUsageDescription: \n  locationUsageDescription: \n  microphoneUsageDescription: \n  bluetoothUsageDescription: \n  macOSTargetOSVersion: 10.13.0\n  switchNMETAOverride: \n  switchNetLibKey: \n  switchSocketMemoryPoolSize: 6144\n  switchSocketAllocatorPoolSize: 128\n  switchSocketConcurrencyLimit: 14\n  switchScreenResolutionBehavior: 2\n  switchUseCPUProfiler: 0\n  switchEnableFileSystemTrace: 0\n  switchLTOSetting: 0\n  switchApplicationID: 0x01004b9000490000\n  switchNSODependencies: \n  switchCompilerFlags: \n  switchTitleNames_0: \n  switchTitleNames_1: \n  switchTitleNames_2: \n  switchTitleNames_3: \n  switchTitleNames_4: \n  switchTitleNames_5: \n  switchTitleNames_6: \n  switchTitleNames_7: \n  switchTitleNames_8: \n  switchTitleNames_9: \n  switchTitleNames_10: \n  switchTitleNames_11: \n  switchTitleNames_12: \n  switchTitleNames_13: \n  switchTitleNames_14: \n  switchTitleNames_15: \n  switchPublisherNames_0: \n  switchPublisherNames_1: \n  switchPublisherNames_2: \n  switchPublisherNames_3: \n  switchPublisherNames_4: \n  switchPublisherNames_5: \n  switchPublisherNames_6: \n  switchPublisherNames_7: \n  switchPublisherNames_8: \n  switchPublisherNames_9: \n  switchPublisherNames_10: \n  switchPublisherNames_11: \n  switchPublisherNames_12: \n  switchPublisherNames_13: \n  switchPublisherNames_14: \n  switchPublisherNames_15: \n  switchIcons_0: {fileID: 0}\n  switchIcons_1: {fileID: 0}\n  switchIcons_2: {fileID: 0}\n  switchIcons_3: {fileID: 0}\n  switchIcons_4: {fileID: 0}\n  switchIcons_5: {fileID: 0}\n  switchIcons_6: {fileID: 0}\n  switchIcons_7: {fileID: 0}\n  switchIcons_8: {fileID: 0}\n  switchIcons_9: {fileID: 0}\n  switchIcons_10: {fileID: 0}\n  switchIcons_11: {fileID: 0}\n  switchIcons_12: {fileID: 0}\n  switchIcons_13: {fileID: 0}\n  switchIcons_14: {fileID: 0}\n  switchIcons_15: {fileID: 0}\n  switchSmallIcons_0: {fileID: 0}\n  switchSmallIcons_1: {fileID: 0}\n  switchSmallIcons_2: {fileID: 0}\n  switchSmallIcons_3: {fileID: 0}\n  switchSmallIcons_4: {fileID: 0}\n  switchSmallIcons_5: {fileID: 0}\n  switchSmallIcons_6: {fileID: 0}\n  switchSmallIcons_7: {fileID: 0}\n  switchSmallIcons_8: {fileID: 0}\n  switchSmallIcons_9: {fileID: 0}\n  switchSmallIcons_10: {fileID: 0}\n  switchSmallIcons_11: {fileID: 0}\n  switchSmallIcons_12: {fileID: 0}\n  switchSmallIcons_13: {fileID: 0}\n  switchSmallIcons_14: {fileID: 0}\n  switchSmallIcons_15: {fileID: 0}\n  switchManualHTML: \n  switchAccessibleURLs: \n  switchLegalInformation: \n  switchMainThreadStackSize: 1048576\n  switchPresenceGroupId: \n  switchLogoHandling: 0\n  switchReleaseVersion: 0\n  switchDisplayVersion: 1.0.0\n  switchStartupUserAccount: 0\n  switchSupportedLanguagesMask: 0\n  switchLogoType: 0\n  switchApplicationErrorCodeCategory: \n  switchUserAccountSaveDataSize: 0\n  switchUserAccountSaveDataJournalSize: 0\n  switchApplicationAttribute: 0\n  switchCardSpecSize: -1\n  switchCardSpecClock: -1\n  switchRatingsMask: 0\n  switchRatingsInt_0: 0\n  switchRatingsInt_1: 0\n  switchRatingsInt_2: 0\n  switchRatingsInt_3: 0\n  switchRatingsInt_4: 0\n  switchRatingsInt_5: 0\n  switchRatingsInt_6: 0\n  switchRatingsInt_7: 0\n  switchRatingsInt_8: 0\n  switchRatingsInt_9: 0\n  switchRatingsInt_10: 0\n  switchRatingsInt_11: 0\n  switchRatingsInt_12: 0\n  switchLocalCommunicationIds_0: \n  switchLocalCommunicationIds_1: \n  switchLocalCommunicationIds_2: \n  switchLocalCommunicationIds_3: \n  switchLocalCommunicationIds_4: \n  switchLocalCommunicationIds_5: \n  switchLocalCommunicationIds_6: \n  switchLocalCommunicationIds_7: \n  switchParentalControl: 0\n  switchAllowsScreenshot: 1\n  switchAllowsVideoCapturing: 1\n  switchAllowsRuntimeAddOnContentInstall: 0\n  switchDataLossConfirmation: 0\n  switchUserAccountLockEnabled: 0\n  switchSystemResourceMemory: 16777216\n  switchSupportedNpadStyles: 22\n  switchNativeFsCacheSize: 32\n  switchIsHoldTypeHorizontal: 0\n  switchSupportedNpadCount: 8\n  switchEnableTouchScreen: 1\n  switchSocketConfigEnabled: 0\n  switchTcpInitialSendBufferSize: 32\n  switchTcpInitialReceiveBufferSize: 64\n  switchTcpAutoSendBufferSizeMax: 256\n  switchTcpAutoReceiveBufferSizeMax: 256\n  switchUdpSendBufferSize: 9\n  switchUdpReceiveBufferSize: 42\n  switchSocketBufferEfficiency: 4\n  switchSocketInitializeEnabled: 1\n  switchNetworkInterfaceManagerInitializeEnabled: 1\n  switchUseNewStyleFilepaths: 1\n  switchUseLegacyFmodPriorities: 0\n  switchUseMicroSleepForYield: 1\n  switchEnableRamDiskSupport: 0\n  switchMicroSleepForYieldTime: 25\n  switchRamDiskSpaceSize: 12\n  ps4NPAgeRating: 12\n  ps4NPTitleSecret: \n  ps4NPTrophyPackPath: \n  ps4ParentalLevel: 11\n  ps4ContentID: ED1633-NPXX51362_00-0000000000000000\n  ps4Category: 0\n  ps4MasterVersion: 01.00\n  ps4AppVersion: 01.00\n  ps4AppType: 0\n  ps4ParamSfxPath: \n  ps4VideoOutPixelFormat: 0\n  ps4VideoOutInitialWidth: 1920\n  ps4VideoOutBaseModeInitialWidth: 1920\n  ps4VideoOutReprojectionRate: 60\n  ps4PronunciationXMLPath: \n  ps4PronunciationSIGPath: \n  ps4BackgroundImagePath: \n  ps4StartupImagePath: \n  ps4StartupImagesFolder: \n  ps4IconImagesFolder: \n  ps4SaveDataImagePath: \n  ps4SdkOverride: \n  ps4BGMPath: \n  ps4ShareFilePath: \n  ps4ShareOverlayImagePath: \n  ps4PrivacyGuardImagePath: \n  ps4ExtraSceSysFile: \n  ps4NPtitleDatPath: \n  ps4RemotePlayKeyAssignment: -1\n  ps4RemotePlayKeyMappingDir: \n  ps4PlayTogetherPlayerCount: 0\n  ps4EnterButtonAssignment: 1\n  ps4ApplicationParam1: 0\n  ps4ApplicationParam2: 0\n  ps4ApplicationParam3: 0\n  ps4ApplicationParam4: 0\n  ps4DownloadDataSize: 0\n  ps4GarlicHeapSize: 2048\n  ps4ProGarlicHeapSize: 2560\n  playerPrefsMaxSize: 32768\n  ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ\n  ps4pnSessions: 1\n  ps4pnPresence: 1\n  ps4pnFriends: 1\n  ps4pnGameCustomData: 1\n  playerPrefsSupport: 0\n  enableApplicationExit: 0\n  resetTempFolder: 1\n  restrictedAudioUsageRights: 0\n  ps4UseResolutionFallback: 0\n  ps4ReprojectionSupport: 0\n  ps4UseAudio3dBackend: 0\n  ps4UseLowGarlicFragmentationMode: 1\n  ps4SocialScreenEnabled: 0\n  ps4ScriptOptimizationLevel: 0\n  ps4Audio3dVirtualSpeakerCount: 14\n  ps4attribCpuUsage: 0\n  ps4PatchPkgPath: \n  ps4PatchLatestPkgPath: \n  ps4PatchChangeinfoPath: \n  ps4PatchDayOne: 0\n  ps4attribUserManagement: 0\n  ps4attribMoveSupport: 0\n  ps4attrib3DSupport: 0\n  ps4attribShareSupport: 0\n  ps4attribExclusiveVR: 0\n  ps4disableAutoHideSplash: 0\n  ps4videoRecordingFeaturesUsed: 0\n  ps4contentSearchFeaturesUsed: 0\n  ps4CompatibilityPS5: 0\n  ps4AllowPS5Detection: 0\n  ps4GPU800MHz: 1\n  ps4attribEyeToEyeDistanceSettingVR: 0\n  ps4IncludedModules: []\n  ps4attribVROutputEnabled: 0\n  monoEnv: \n  splashScreenBackgroundSourceLandscape: {fileID: 0}\n  splashScreenBackgroundSourcePortrait: {fileID: 0}\n  blurSplashScreenBackground: 1\n  spritePackerPolicy: \n  webGLMemorySize: 16\n  webGLExceptionSupport: 1\n  webGLNameFilesAsHashes: 0\n  webGLShowDiagnostics: 0\n  webGLDataCaching: 1\n  webGLDebugSymbols: 0\n  webGLEmscriptenArgs: \n  webGLModulesDirectory: \n  webGLTemplate: APPLICATION:Default\n  webGLAnalyzeBuildSize: 0\n  webGLUseEmbeddedResources: 0\n  webGLCompressionFormat: 1\n  webGLWasmArithmeticExceptions: 0\n  webGLLinkerTarget: 1\n  webGLThreadsSupport: 0\n  webGLDecompressionFallback: 0\n  webGLInitialMemorySize: 32\n  webGLMaximumMemorySize: 2048\n  webGLMemoryGrowthMode: 2\n  webGLMemoryLinearGrowthStep: 16\n  webGLMemoryGeometricGrowthStep: 0.2\n  webGLMemoryGeometricGrowthCap: 96\n  webGLPowerPreference: 2\n  scriptingDefineSymbols: {}\n  additionalCompilerArguments: {}\n  platformArchitecture: {}\n  scriptingBackend: {}\n  il2cppCompilerConfiguration: {}\n  il2cppCodeGeneration: {}\n  managedStrippingLevel:\n    EmbeddedLinux: 1\n    GameCoreScarlett: 1\n    GameCoreXboxOne: 1\n    Nintendo Switch: 1\n    PS4: 1\n    PS5: 1\n    QNX: 1\n    Stadia: 1\n    VisionOS: 1\n    WebGL: 1\n    Windows Store Apps: 1\n    XboxOne: 1\n    iPhone: 1\n    tvOS: 1\n  incrementalIl2cppBuild: {}\n  suppressCommonWarnings: 1\n  allowUnsafeCode: 0\n  useDeterministicCompilation: 1\n  additionalIl2CppArgs: \n  scriptingRuntimeVersion: 1\n  gcIncremental: 1\n  gcWBarrierValidation: 0\n  apiCompatibilityLevelPerPlatform: {}\n  m_RenderingPath: 1\n  m_MobileRenderingPath: 1\n  metroPackageName: Visual Profiler\n  metroPackageVersion: \n  metroCertificatePath: \n  metroCertificatePassword: \n  metroCertificateSubject: \n  metroCertificateIssuer: \n  metroCertificateNotAfter: 0000000000000000\n  metroApplicationDescription: Visual Profiler\n  wsaImages: {}\n  metroTileShortName: \n  metroTileShowName: 0\n  metroMediumTileShowName: 0\n  metroLargeTileShowName: 0\n  metroWideTileShowName: 0\n  metroSupportStreamingInstall: 0\n  metroLastRequiredScene: 0\n  metroDefaultTileSize: 1\n  metroTileForegroundText: 2\n  metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}\n  metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}\n  metroSplashScreenUseBackgroundColor: 0\n  platformCapabilities: {}\n  metroTargetDeviceFamilies: {}\n  metroFTAName: \n  metroFTAFileTypes: []\n  metroProtocolName: \n  vcxProjDefaultLanguage: \n  XboxOneProductId: \n  XboxOneUpdateKey: \n  XboxOneSandboxId: \n  XboxOneContentId: \n  XboxOneTitleId: \n  XboxOneSCId: \n  XboxOneGameOsOverridePath: \n  XboxOnePackagingOverridePath: \n  XboxOneAppManifestOverridePath: \n  XboxOneVersion: 1.0.0.0\n  XboxOnePackageEncryption: 0\n  XboxOnePackageUpdateGranularity: 2\n  XboxOneDescription: \n  XboxOneLanguage:\n  - enus\n  XboxOneCapability: []\n  XboxOneGameRating: {}\n  XboxOneIsContentPackage: 0\n  XboxOneEnhancedXboxCompatibilityMode: 0\n  XboxOneEnableGPUVariability: 1\n  XboxOneSockets: {}\n  XboxOneSplashScreen: {fileID: 0}\n  XboxOneAllowedProductIds: []\n  XboxOnePersistentLocalStorageSize: 0\n  XboxOneXTitleMemory: 8\n  XboxOneOverrideIdentityName: \n  XboxOneOverrideIdentityPublisher: \n  vrEditorSettings: {}\n  cloudServicesEnabled:\n    UNet: 1\n  luminIcon:\n    m_Name: \n    m_ModelFolderPath: \n    m_PortalFolderPath: \n  luminCert:\n    m_CertPath: \n    m_SignPackage: 1\n  luminIsChannelApp: 0\n  luminVersion:\n    m_VersionCode: 1\n    m_VersionName: \n  hmiPlayerDataPath: \n  hmiForceSRGBBlit: 1\n  embeddedLinuxEnableGamepadInput: 1\n  hmiLogStartupTiming: 0\n  hmiCpuConfiguration: \n  apiCompatibilityLevel: 6\n  activeInputHandler: 0\n  windowsGamepadBackendHint: 0\n  cloudProjectId: \n  framebufferDepthMemorylessMode: 0\n  qualitySettingsNames: []\n  projectName: \n  organizationId: \n  cloudEnabled: 0\n  legacyClampBlendShapeWeights: 0\n  hmiLoadingImage: {fileID: 0}\n  platformRequiresReadableAssets: 0\n  virtualTexturingSupportEnabled: 0\n  insecureHttpOption: 0\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/ProjectVersion.txt",
    "content": "m_EditorVersion: 2022.3.15f1\nm_EditorVersionWithRevision: 2022.3.15f1 (b58023a2b463)\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/QualitySettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!47 &1\nQualitySettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 5\n  m_CurrentQuality: 1\n  m_QualitySettings:\n  - serializedVersion: 3\n    name: Very Low\n    pixelLightCount: 0\n    shadows: 0\n    shadowResolution: 0\n    shadowProjection: 1\n    shadowCascades: 1\n    shadowDistance: 15\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 0\n    skinWeights: 1\n    globalTextureMipmapLimit: 1\n    textureMipmapLimitSettings: []\n    anisotropicTextures: 0\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 0\n    realtimeReflectionProbes: 0\n    billboardsFaceCameraPosition: 0\n    useLegacyDetailDistribution: 1\n    vSyncCount: 0\n    realtimeGICPUUsage: 25\n    lodBias: 0.3\n    maximumLODLevel: 0\n    enableLODCrossFade: 1\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 4\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    customRenderPipeline: {fileID: 0}\n    terrainQualityOverrides: 0\n    terrainPixelError: 1\n    terrainDetailDensityScale: 1\n    terrainBasemapDistance: 1000\n    terrainDetailDistance: 80\n    terrainTreeDistance: 5000\n    terrainBillboardStart: 50\n    terrainFadeLength: 5\n    terrainMaxTrees: 50\n    excludedTargetPlatforms: []\n  - serializedVersion: 3\n    name: Low\n    pixelLightCount: 0\n    shadows: 0\n    shadowResolution: 0\n    shadowProjection: 1\n    shadowCascades: 1\n    shadowDistance: 20\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 0\n    skinWeights: 2\n    globalTextureMipmapLimit: 0\n    textureMipmapLimitSettings: []\n    anisotropicTextures: 0\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 0\n    realtimeReflectionProbes: 0\n    billboardsFaceCameraPosition: 0\n    useLegacyDetailDistribution: 1\n    vSyncCount: 0\n    realtimeGICPUUsage: 25\n    lodBias: 0.4\n    maximumLODLevel: 0\n    enableLODCrossFade: 1\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 16\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    customRenderPipeline: {fileID: 0}\n    terrainQualityOverrides: 0\n    terrainPixelError: 1\n    terrainDetailDensityScale: 1\n    terrainBasemapDistance: 1000\n    terrainDetailDistance: 80\n    terrainTreeDistance: 5000\n    terrainBillboardStart: 50\n    terrainFadeLength: 5\n    terrainMaxTrees: 50\n    excludedTargetPlatforms: []\n  - serializedVersion: 3\n    name: Medium\n    pixelLightCount: 1\n    shadows: 1\n    shadowResolution: 0\n    shadowProjection: 1\n    shadowCascades: 1\n    shadowDistance: 20\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 0\n    skinWeights: 2\n    globalTextureMipmapLimit: 0\n    textureMipmapLimitSettings: []\n    anisotropicTextures: 1\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 0\n    realtimeReflectionProbes: 0\n    billboardsFaceCameraPosition: 0\n    useLegacyDetailDistribution: 1\n    vSyncCount: 1\n    realtimeGICPUUsage: 25\n    lodBias: 0.7\n    maximumLODLevel: 0\n    enableLODCrossFade: 1\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 64\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    customRenderPipeline: {fileID: 0}\n    terrainQualityOverrides: 0\n    terrainPixelError: 1\n    terrainDetailDensityScale: 1\n    terrainBasemapDistance: 1000\n    terrainDetailDistance: 80\n    terrainTreeDistance: 5000\n    terrainBillboardStart: 50\n    terrainFadeLength: 5\n    terrainMaxTrees: 50\n    excludedTargetPlatforms: []\n  - serializedVersion: 3\n    name: High\n    pixelLightCount: 2\n    shadows: 2\n    shadowResolution: 1\n    shadowProjection: 1\n    shadowCascades: 2\n    shadowDistance: 40\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 1\n    skinWeights: 2\n    globalTextureMipmapLimit: 0\n    textureMipmapLimitSettings: []\n    anisotropicTextures: 1\n    antiAliasing: 0\n    softParticles: 0\n    softVegetation: 1\n    realtimeReflectionProbes: 1\n    billboardsFaceCameraPosition: 1\n    useLegacyDetailDistribution: 1\n    vSyncCount: 1\n    realtimeGICPUUsage: 50\n    lodBias: 1\n    maximumLODLevel: 0\n    enableLODCrossFade: 1\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 256\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    customRenderPipeline: {fileID: 0}\n    terrainQualityOverrides: 0\n    terrainPixelError: 1\n    terrainDetailDensityScale: 1\n    terrainBasemapDistance: 1000\n    terrainDetailDistance: 80\n    terrainTreeDistance: 5000\n    terrainBillboardStart: 50\n    terrainFadeLength: 5\n    terrainMaxTrees: 50\n    excludedTargetPlatforms: []\n  - serializedVersion: 3\n    name: Very High\n    pixelLightCount: 3\n    shadows: 2\n    shadowResolution: 2\n    shadowProjection: 1\n    shadowCascades: 2\n    shadowDistance: 70\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 1\n    skinWeights: 4\n    globalTextureMipmapLimit: 0\n    textureMipmapLimitSettings: []\n    anisotropicTextures: 2\n    antiAliasing: 2\n    softParticles: 1\n    softVegetation: 1\n    realtimeReflectionProbes: 1\n    billboardsFaceCameraPosition: 1\n    useLegacyDetailDistribution: 1\n    vSyncCount: 1\n    realtimeGICPUUsage: 50\n    lodBias: 1.5\n    maximumLODLevel: 0\n    enableLODCrossFade: 1\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 1024\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    customRenderPipeline: {fileID: 0}\n    terrainQualityOverrides: 0\n    terrainPixelError: 1\n    terrainDetailDensityScale: 1\n    terrainBasemapDistance: 1000\n    terrainDetailDistance: 80\n    terrainTreeDistance: 5000\n    terrainBillboardStart: 50\n    terrainFadeLength: 5\n    terrainMaxTrees: 50\n    excludedTargetPlatforms: []\n  - serializedVersion: 3\n    name: Ultra\n    pixelLightCount: 4\n    shadows: 2\n    shadowResolution: 2\n    shadowProjection: 1\n    shadowCascades: 4\n    shadowDistance: 150\n    shadowNearPlaneOffset: 3\n    shadowCascade2Split: 0.33333334\n    shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}\n    shadowmaskMode: 1\n    skinWeights: 4\n    globalTextureMipmapLimit: 0\n    textureMipmapLimitSettings: []\n    anisotropicTextures: 2\n    antiAliasing: 2\n    softParticles: 1\n    softVegetation: 1\n    realtimeReflectionProbes: 1\n    billboardsFaceCameraPosition: 1\n    useLegacyDetailDistribution: 1\n    vSyncCount: 1\n    realtimeGICPUUsage: 100\n    lodBias: 2\n    maximumLODLevel: 0\n    enableLODCrossFade: 1\n    streamingMipmapsActive: 0\n    streamingMipmapsAddAllCameras: 1\n    streamingMipmapsMemoryBudget: 512\n    streamingMipmapsRenderersPerFrame: 512\n    streamingMipmapsMaxLevelReduction: 2\n    streamingMipmapsMaxFileIORequests: 1024\n    particleRaycastBudget: 4096\n    asyncUploadTimeSlice: 2\n    asyncUploadBufferSize: 16\n    asyncUploadPersistentBuffer: 1\n    resolutionScalingFixedDPIFactor: 1\n    customRenderPipeline: {fileID: 0}\n    terrainQualityOverrides: 0\n    terrainPixelError: 1\n    terrainDetailDensityScale: 1\n    terrainBasemapDistance: 1000\n    terrainDetailDistance: 80\n    terrainTreeDistance: 5000\n    terrainBillboardStart: 50\n    terrainFadeLength: 5\n    terrainMaxTrees: 50\n    excludedTargetPlatforms: []\n  m_TextureMipmapLimitGroupNames: []\n  m_PerPlatformDefaultQuality:\n    Android: 2\n    Lumin: 5\n    Nintendo 3DS: 5\n    Nintendo Switch: 5\n    PS4: 5\n    PSP2: 2\n    Server: 0\n    Stadia: 5\n    Standalone: 5\n    WebGL: 3\n    Windows Store Apps: 5\n    XboxOne: 5\n    iPhone: 2\n    tvOS: 2\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/SceneTemplateSettings.json",
    "content": "{\n    \"templatePinStates\": [],\n    \"dependencyTypeInfos\": [\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.AnimationClip\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEditor.Animations.AnimatorController\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.AnimatorOverrideController\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEditor.Audio.AudioMixerController\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.ComputeShader\",\n            \"defaultInstantiationMode\": 1\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.Cubemap\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.GameObject\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEditor.LightingDataAsset\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.LightingSettings\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.Material\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEditor.MonoScript\",\n            \"defaultInstantiationMode\": 1\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.PhysicMaterial\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.PhysicsMaterial2D\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.Rendering.PostProcessing.PostProcessProfile\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.Rendering.PostProcessing.PostProcessResources\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.Rendering.VolumeProfile\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEditor.SceneAsset\",\n            \"defaultInstantiationMode\": 1\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.Shader\",\n            \"defaultInstantiationMode\": 1\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.ShaderVariantCollection\",\n            \"defaultInstantiationMode\": 1\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.Texture\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.Texture2D\",\n            \"defaultInstantiationMode\": 0\n        },\n        {\n            \"userAdded\": false,\n            \"type\": \"UnityEngine.Timeline.TimelineAsset\",\n            \"defaultInstantiationMode\": 0\n        }\n    ],\n    \"defaultDependencyTypeInfo\": {\n        \"userAdded\": false,\n        \"type\": \"<default_scene_template_dependencies>\",\n        \"defaultInstantiationMode\": 1\n    },\n    \"newSceneOverride\": 0\n}"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/ShaderGraphSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &1\nMonoBehaviour:\n  m_ObjectHideFlags: 53\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  shaderVariantLimit: 128\n  customInterpolatorErrorThreshold: 32\n  customInterpolatorWarningThreshold: 16\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/TagManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!78 &1\nTagManager:\n  serializedVersion: 2\n  tags: []\n  layers:\n  - Default\n  - TransparentFX\n  - Ignore Raycast\n  - \n  - Water\n  - UI\n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  - \n  m_SortingLayers:\n  - name: Default\n    uniqueID: 0\n    locked: 0\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/TimeManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!5 &1\nTimeManager:\n  m_ObjectHideFlags: 0\n  Fixed Timestep: 0.02\n  Maximum Allowed Timestep: 0.33333334\n  m_TimeScale: 1\n  Maximum Particle Timestep: 0.03\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/URPProjectSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &1\nMonoBehaviour:\n  m_ObjectHideFlags: 61\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_GameObject: {fileID: 0}\n  m_Enabled: 1\n  m_EditorHideFlags: 0\n  m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3}\n  m_Name: \n  m_EditorClassIdentifier: \n  m_LastMaterialVersion: 7\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/UnityConnectSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!310 &1\nUnityConnectSettings:\n  m_ObjectHideFlags: 0\n  serializedVersion: 1\n  m_Enabled: 0\n  m_TestMode: 0\n  m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events\n  m_EventUrl: https://cdp.cloud.unity3d.com/v1/events\n  m_ConfigUrl: https://config.uca.cloud.unity3d.com\n  m_DashboardUrl: https://dashboard.unity3d.com\n  m_TestInitMode: 0\n  CrashReportingSettings:\n    m_EventUrl: https://perf-events.cloud.unity3d.com\n    m_Enabled: 0\n    m_LogBufferSize: 10\n    m_CaptureEditorExceptions: 1\n  UnityPurchasingSettings:\n    m_Enabled: 0\n    m_TestMode: 0\n  UnityAnalyticsSettings:\n    m_Enabled: 0\n    m_TestMode: 0\n    m_InitializeOnStartup: 1\n    m_PackageRequiringCoreStatsPresent: 0\n  UnityAdsSettings:\n    m_Enabled: 0\n    m_InitializeOnStartup: 1\n    m_TestMode: 0\n    m_IosGameId: \n    m_AndroidGameId: \n    m_GameIds: {}\n    m_GameId: \n  PerformanceReportingSettings:\n    m_Enabled: 0\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/VFXManager.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!937362698 &1\nVFXManager:\n  m_ObjectHideFlags: 0\n  m_IndirectShader: {fileID: 0}\n  m_CopyBufferShader: {fileID: 0}\n  m_SortShader: {fileID: 0}\n  m_StripUpdateShader: {fileID: 0}\n  m_RenderPipeSettingsPath: \n  m_FixedTimeStep: 0.016666668\n  m_MaxDeltaTime: 0.05\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/VersionControlSettings.asset",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!890905787 &1\nVersionControlSettings:\n  m_ObjectHideFlags: 0\n  m_Mode: Visible Meta Files\n  m_CollabEditorSettings:\n    inProgressEnabled: 1\n"
  },
  {
    "path": "VisualProfilerUnityProject/ProjectSettings/XRSettings.asset",
    "content": "{\n    \"m_SettingKeys\": [\n        \"VR Device Disabled\",\n        \"VR Device User Alert\"\n    ],\n    \"m_SettingValues\": [\n        \"False\",\n        \"False\"\n    ]\n}"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/Data/Font.png.meta",
    "content": "fileFormatVersion: 2\nguid: 238d3109a0d14c647b77f334fd2fe5ec\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjects: {}\n  serializedVersion: 12\n  mipmaps:\n    mipMapMode: 1\n    enableMipMap: 0\n    sRGBTexture: 1\n    linearTexture: 0\n    fadeOut: 0\n    borderMipMap: 0\n    mipMapsPreserveCoverage: 0\n    alphaTestReferenceValue: 0.5\n    mipMapFadeDistanceStart: 1\n    mipMapFadeDistanceEnd: 3\n  bumpmap:\n    convertToNormalMap: 0\n    externalNormalMap: 0\n    heightScale: 0.25\n    normalMapFilter: 0\n  isReadable: 0\n  streamingMipmaps: 0\n  streamingMipmapsPriority: 0\n  vTOnly: 0\n  ignoreMasterTextureLimit: 0\n  grayScaleToAlpha: 0\n  generateCubemap: 6\n  cubemapConvolution: 0\n  seamlessCubemap: 0\n  textureFormat: 1\n  maxTextureSize: 2048\n  textureSettings:\n    serializedVersion: 2\n    filterMode: 2\n    aniso: 1\n    mipBias: 0\n    wrapU: 1\n    wrapV: 1\n    wrapW: 1\n  nPOTScale: 1\n  lightmap: 0\n  compressionQuality: 50\n  spriteMode: 0\n  spriteExtrude: 1\n  spriteMeshType: 1\n  alignment: 0\n  spritePivot: {x: 0.5, y: 0.5}\n  spritePixelsToUnits: 100\n  spriteBorder: {x: 0, y: 0, z: 0, w: 0}\n  spriteGenerateFallbackPhysicsShape: 1\n  alphaUsage: 1\n  alphaIsTransparency: 0\n  spriteTessellationDetail: -1\n  textureType: 0\n  textureShape: 1\n  singleChannelComponent: 0\n  flipbookRows: 1\n  flipbookColumns: 1\n  maxTextureSizeSet: 0\n  compressionQualitySet: 0\n  textureFormatSet: 0\n  ignorePngGamma: 0\n  applyGammaDecoding: 0\n  cookieLightType: 1\n  platformSettings:\n  - serializedVersion: 3\n    buildTarget: DefaultTexturePlatform\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Standalone\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: WebGL\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Windows Store Apps\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Android\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  - serializedVersion: 3\n    buildTarget: Server\n    maxTextureSize: 2048\n    resizeAlgorithm: 0\n    textureFormat: -1\n    textureCompression: 1\n    compressionQuality: 50\n    crunchedCompression: 0\n    allowsAlphaSplitting: 0\n    overridden: 0\n    androidETC2FallbackOverride: 0\n    forceMaximumCompressionQuality_BC6H_BC7: 0\n  spriteSheet:\n    serializedVersion: 2\n    sprites: []\n    outline: []\n    physicsShape: []\n    bones: []\n    spriteID: \n    internalID: 0\n    vertices: []\n    indices: \n    edges: []\n    weights: []\n    secondaryTextures: []\n    nameFileIdTable: {}\n  spritePackingTag: \n  pSDRemoveMatte: 0\n  pSDShowRemoveMatteOption: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/Data/VisualProfiler.mat",
    "content": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_CorrespondingSourceObject: {fileID: 0}\n  m_PrefabInstance: {fileID: 0}\n  m_PrefabAsset: {fileID: 0}\n  m_Name: VisualProfiler\n  m_Shader: {fileID: 4800000, guid: 59811c61128561c4aa91d25965b11afb, type: 3}\n  m_ShaderKeywords: \n  m_LightmapFlags: 4\n  m_EnableInstancingVariants: 1\n  m_DoubleSidedGI: 0\n  m_CustomRenderQueue: 5000\n  stringTagMap: {}\n  disabledShaderPasses: []\n  m_SavedProperties:\n    serializedVersion: 3\n    m_TexEnvs:\n    - _FontTexture:\n        m_Texture: {fileID: 2800000, guid: 238d3109a0d14c647b77f334fd2fe5ec, type: 3}\n        m_Scale: {x: 1, y: 1}\n        m_Offset: {x: 0, y: 0}\n    m_Floats: []\n    m_Colors:\n    - _BaseColor: {r: 0, g: 0, b: 0, a: 1}\n    - _Color: {r: 1, g: 1, b: 1, a: 1}\n  m_BuildTextureStacks: []\n"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/Data/VisualProfiler.mat.meta",
    "content": "fileFormatVersion: 2\nguid: b98f8349d37aef742baaa038e99837c0\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFileID: 2100000\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/Data/VisualProfiler.shader",
    "content": "// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nShader \"Hidden/Visual Profiler\"\n{\n    Properties\n    {\n        [MainTexture] _FontTexture(\"Font\", 2D) = \"black\" {}\n    }\n\n    SubShader\n    {\n        Pass\n        {\n            Name \"Main\"\n            Tags{ \"RenderType\" = \"Opaque\" }\n            Blend Off\n            ZWrite On\n            ZTest Always\n            Cull Off\n\n            CGPROGRAM\n\n            #pragma vertex vert\n            #pragma fragment frag\n\n            // Comment in to help with RenderDoc debugging.\n            //#pragma enable_d3d11_debug_symbols\n\n            #pragma multi_compile_instancing\n\n            #include \"UnityCG.cginc\"\n\n            struct appdata_t\n            {\n                float4 vertex : POSITION;\n                float2 uv : TEXCOORD0;\n                UNITY_VERTEX_INPUT_INSTANCE_ID\n            };\n\n            struct v2f\n            {\n                float4 vertex : SV_POSITION;\n                fixed3 color : COLOR0;\n                fixed3 baseColor : COLOR1;\n                float2 uv : TEXCOORD0;\n                UNITY_VERTEX_OUTPUT_STEREO\n            };\n\n            sampler2D _FontTexture;\n            float2 _FontScale;\n            float4x4 _WindowLocalToWorldMatrix;\n\n            UNITY_INSTANCING_BUFFER_START(Props)\n                UNITY_DEFINE_INSTANCED_PROP(fixed4, _Color)\n                UNITY_DEFINE_INSTANCED_PROP(fixed4, _BaseColor)\n                UNITY_DEFINE_INSTANCED_PROP(float4, _UVOffsetScaleX)\n            UNITY_INSTANCING_BUFFER_END(Props)\n\n            v2f vert(appdata_t v)\n            {\n                v2f o;\n                UNITY_SETUP_INSTANCE_ID(v);\n                UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);\n\n                float4 uvOffsetScaleX = UNITY_ACCESS_INSTANCED_PROP(Props, _UVOffsetScaleX);\n\n                // The verticies on the right (UV 1, x) are scaled in the positive X direction for progress bars.\n                float3 localVertex = v.vertex.xyz;\n                localVertex.x += v.uv.x * uvOffsetScaleX.z;\n\n                // Convert from window (local) to world space.\n                // We do this in the vertex shader to avoid having to iterate over all instances each frame.\n                o.vertex = mul(UNITY_MATRIX_VP, mul(_WindowLocalToWorldMatrix, mul(unity_ObjectToWorld, float4(localVertex, 1.0))));\n                \n                // MaterialPropertyBlocks do not have a SetColorArray method, so we need to do color space conversions ourselves.\n#if defined(UNITY_COLORSPACE_GAMMA)\n                o.color = UNITY_ACCESS_INSTANCED_PROP(Props, _Color).rgb;\n                o.baseColor = UNITY_ACCESS_INSTANCED_PROP(Props, _BaseColor).rgb;\n#else\n                o.color = GammaToLinearSpace(UNITY_ACCESS_INSTANCED_PROP(Props, _Color).rgb);\n                o.baseColor = GammaToLinearSpace(UNITY_ACCESS_INSTANCED_PROP(Props, _BaseColor).rgb);\n#endif\n\n                // Scale and offset UVs.\n                o.uv = (v.uv * _FontScale) + uvOffsetScaleX.xy;\n\n                return o;\n            }\n\n            fixed4 frag(v2f i) : SV_Target\n            {\n                fixed4 font = tex2D(_FontTexture, i.uv);\n                fixed alpha = font.r;\n                return fixed4((i.baseColor * (1.0 - alpha)) + (font.rgb * i.color * alpha), 1.0);\n            }\n\n            ENDCG\n        }\n    }\n}\n"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/Data/VisualProfiler.shader.meta",
    "content": "fileFormatVersion: 2\nguid: 59811c61128561c4aa91d25965b11afb\nShaderImporter:\n  externalObjects: {}\n  defaultTextures: []\n  nonModifiableTextures: []\n  preprocessorOverride: 0\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/Data.meta",
    "content": "fileFormatVersion: 2\nguid: fcb188ea93ea6fe4fb1e0e7eb68fc664\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/Microsoft.MixedReality.VisualProfiler.asmdef",
    "content": "{\n    \"name\": \"Microsoft.MixedReality.VisualProfiler\",\n    \"rootNamespace\": \"Microsoft.MixedReality.Profiling\",\n    \"references\": [],\n    \"includePlatforms\": [],\n    \"excludePlatforms\": [],\n    \"allowUnsafeCode\": false,\n    \"overrideReferences\": false,\n    \"precompiledReferences\": [],\n    \"autoReferenced\": true,\n    \"defineConstraints\": [],\n    \"versionDefines\": [],\n    \"noEngineReferences\": false\n}"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/Microsoft.MixedReality.VisualProfiler.asmdef.meta",
    "content": "fileFormatVersion: 2\nguid: 272c9669976d53b408f84d2b03eb5ecd\nAssemblyDefinitionImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/VisualProfiler.cs",
    "content": "﻿// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nusing System;\r\nusing System.Text;\r\nusing Unity.Profiling;\r\nusing UnityEngine;\r\nusing UnityEngine.Profiling;\r\nusing UnityEngine.Rendering;\r\n\r\n#if UNITY_STANDALONE_WIN || UNITY_WSA\r\nusing UnityEngine.Windows.Speech;\r\n#endif\r\n\r\n#if WINDOWS_UWP\r\nusing Windows.System;\r\n#endif\r\n\r\nnamespace Microsoft.MixedReality.Profiling\r\n{\r\n    /// <summary>\r\n    /// \r\n    /// ABOUT: The VisualProfiler provides a drop in solution for viewing your Mixed Reality \r\n    /// Unity application's frame rate and memory usage. Missed frames are displayed over time to \r\n    /// visually find problem areas. Draw calls, batches, and vertex (or triangle) counts are displayed to \r\n    /// diagnose scene complexity. Memory is reported as current, peak and max usage in a bar graph.\r\n    /// \r\n    /// USAGE: To use this profiler simply add this script as a component of any GameObject in \r\n    /// your Unity scene. The profiler is initially active and visible (toggle-able via the \r\n    /// IsVisible property), but can be toggled via the enabled/disable voice commands keywords (in Windows/UWP).\r\n    /// \r\n    /// IMPORTANT: Please make sure to add the microphone capability to your UWP app if you plan \r\n    /// on using the enable/disable keywords, in Unity under Edit -> Project Settings -> \r\n    /// Player -> Settings for Windows Store -> Publishing Settings -> Capabilities or in your \r\n    /// Visual Studio Package.appxmanifest capabilities.\r\n    /// \r\n    /// </summary>\r\n    public sealed class VisualProfiler : MonoBehaviour, ISerializationCallbackReceiver\r\n    {\r\n        [Header(\"Profiler Settings\")]\r\n        [SerializeField, Tooltip(\"Is the profiler currently visible? If disabled, prevents the profiler from rendering but still allows it to track memory usage.\")]\r\n        private bool isVisible = true;\r\n\r\n        /// <summary>\r\n        /// Is the profiler currently visible? If disabled, prevents the profiler from rendering but still allows it to track memory usage.\r\n        /// </summary>\r\n        public bool IsVisible\r\n        {\r\n            get { return isVisible; }\r\n            set { isVisible = value; }\r\n        }\r\n\r\n        [SerializeField, Tooltip(\"The amount of time, in seconds, to collect frames before frame rate averaging.\")]\r\n        private float frameSampleRate = 0.3f;\r\n\r\n        /// <summary>\r\n        /// The amount of time, in seconds, to collect frames before frame rate averaging.\r\n        /// </summary>\r\n        public float FrameSampleRate\r\n        {\r\n            get { return frameSampleRate; }\r\n            set\r\n            {\r\n                frameSampleRate = value;\r\n                frameSampleRateMS = frameSampleRate * 1000.0f;\r\n            }\r\n        }\r\n\r\n        [SerializeField, Min(0.0f), Tooltip(\"What frame rate should the app target if one cannot be determined by the XR device.\")]\r\n        private float defaultFrameRate = 60.0f;\r\n\r\n        /// <summary>\r\n        /// What frame rate should the app target if one cannot be determined by the XR device.\r\n        /// </summary>\r\n        public float DefaultFrameRate\r\n        {\r\n            get { return defaultFrameRate; }\r\n            set { defaultFrameRate = Mathf.Max(value, 0.0f); }\r\n        }\r\n\r\n        [SerializeField, Range(0.0f, 1.0f), Tooltip(\"A missed frame is considered when the frame rate is less than the target frame rate times the missed frame percentage.\")]\r\n        private float missedFramePercentage = 0.9f;\r\n\r\n        /// <summary>\r\n        /// A missed frame is considered when the frame rate is less than the target frame rate times the missed frame percentage.\"\r\n        /// </summary>\r\n        public float MissedFramePercentage\r\n        {\r\n            get { return missedFramePercentage; }\r\n            set { missedFramePercentage = Mathf.Clamp01(value); }\r\n        }\r\n\r\n        [SerializeField, Range(0, 2), Tooltip(\"How many decimal places to display on numeric strings.\")]\r\n        private int displayedDecimalDigits = 1;\r\n\r\n        [SerializeField, Tooltip(\"Display triangle count instead of vertex count in the profiler.\")]\r\n        private bool displayTriangleCount = false;\r\n\r\n        [SerializeField, Tooltip(\"Table of QualitySettings.GetQualityLevel index to batches budget. When values are above this budget the text will change color.\")]\r\n        private int[] batchesQualityLevelBudget = new int[0];\r\n\r\n        /// <summary>\r\n        /// Table of QualitySettings.GetQualityLevel index to batches budget. When values are above this budget the text will change color.\r\n        /// </summary>\r\n        public int[] BatchesQualityLevelBudget\r\n        {\r\n            get { return batchesQualityLevelBudget; }\r\n            set { batchesQualityLevelBudget = value; }\r\n        }\r\n\r\n        [SerializeField, Tooltip(\"Table of QualitySettings.GetQualityLevel index to draw calls budget. When values are above this budget the text will change color.\")]\r\n        private int[] drawCallsQualityLevelBudget = new int[0];\r\n\r\n        /// <summary>\r\n        /// Table of QualitySettings.GetQualityLevel index to draw calls budget. When values are above this budget the text will change color.\r\n        /// </summary>\r\n        public int[] DrawCallsQualityLevelBudget\r\n        {\r\n            get { return drawCallsQualityLevelBudget; }\r\n            set { drawCallsQualityLevelBudget = value; }\r\n        }\r\n\r\n        [SerializeField, Tooltip(\"Table of QualitySettings.GetQualityLevel index to vertex (or triangle) budget. When values are above this budget the text will change color.\")]\r\n        private int[] meshStatsQualityLevelBudget = new int[0];\r\n\r\n        /// <summary>\r\n        /// Table of QualitySettings.GetQualityLevel index to vertex (or triangle) budget. When values are above this budget the text will change color.\r\n        /// </summary>\r\n        public int[] MeshStatsQualityLevelBudget\r\n        {\r\n            get { return meshStatsQualityLevelBudget; }\r\n            set { meshStatsQualityLevelBudget = value; }\r\n        }\r\n\r\n        [Header(\"Window Settings\")]\r\n        [SerializeField, Tooltip(\"What part of the view port to anchor the window to.\")]\r\n        private TextAnchor windowAnchor = TextAnchor.LowerCenter;\r\n\r\n        /// <summary>\r\n        /// What part of the view port to anchor the window to.\r\n        /// </summary>\r\n        public TextAnchor WindowAnchor\r\n        {\r\n            get { return windowAnchor; }\r\n            set { windowAnchor = value; }\r\n        }\r\n\r\n        [SerializeField, Tooltip(\"The offset from the view port center applied based on the window anchor selection.\")]\r\n        private Vector2 windowOffset = new Vector2(0.1f, 0.1f);\r\n\r\n        /// <summary>\r\n        /// The offset from the view port center applied based on the window anchor selection.\r\n        /// </summary>\r\n        public Vector2 WindowOffset\r\n        {\r\n            get { return windowOffset; }\r\n            set { windowOffset = value; }\r\n        }\r\n\r\n        [SerializeField, Range(0.5f, 10.0f), Tooltip(\"Use to scale the window size up or down, can simulate a zooming effect.\")]\r\n        private float windowScale = 1.0f;\r\n\r\n        /// <summary>\r\n        /// Use to scale the window size up or down, can simulate a zooming effect.\r\n        /// </summary>\r\n        public float WindowScale\r\n        {\r\n            get { return windowScale; }\r\n            set { windowScale = Mathf.Clamp(value, 0.5f, 10.0f); }\r\n        }\r\n\r\n        [SerializeField, Range(0.0f, 100.0f), Tooltip(\"How quickly to interpolate the window towards its target position and rotation.\")]\r\n        private float windowFollowSpeed = 5.0f;\r\n\r\n        /// <summary>\r\n        /// How quickly to interpolate the window towards its target position and rotation.\r\n        /// </summary>\r\n        public float WindowFollowSpeed\r\n        {\r\n            get { return windowFollowSpeed; }\r\n            set { windowFollowSpeed = Mathf.Abs(value); }\r\n        }\r\n\r\n        [SerializeField, Tooltip(\"Should the window snap to location rather than interpolate?\")]\r\n        private bool snapWindow = false;\r\n\r\n        /// <summary>\r\n        /// Should the window snap to location rather than interpolate?\r\n        /// </summary>\r\n        public bool SnapWindow\r\n        {\r\n            get { return snapWindow; }\r\n            set { snapWindow = value; }\r\n        }\r\n\r\n        [SerializeField, Tooltip(\"Should the window always align to the camera? (No local rotation.)\")]\r\n        private bool alignToCamera = false;\r\n\r\n        /// <summary>\r\n        /// Should the window always align to the camera? (No local rotation.)\r\n        /// </summary>\r\n        public bool AlignToCamera\r\n        {\r\n            get { return alignToCamera; }\r\n            set { alignToCamera = value; }\r\n        }\r\n\r\n        [SerializeField, Tooltip(\"If specified, the profiler window will follow this transform instead of the main camera.\")]\r\n        private Transform transformToFollow = null;\r\n\r\n        /// <summary>\r\n        /// If specified, the profiler window will follow this transform instead of the main camera.\r\n        /// </summary>\r\n        public Transform TransformToFollow\r\n        {\r\n            get { return transformToFollow; }\r\n            set { transformToFollow = value; }\r\n        }\r\n\r\n        /// <summary>\r\n        /// Access the CPU frame rate (in frames per second).\r\n        /// </summary>\r\n        public float SmoothCpuFrameRate { get; private set; }\r\n\r\n        /// <summary>\r\n        /// Access the GPU frame rate (in frames per second). Will return zero when GPU profiling is not available.\r\n        /// </summary>\r\n        public float SmoothGpuFrameRate { get; private set; }\r\n\r\n        /// <summary>\r\n        /// Returns the target frame rate for the current platform.\r\n        /// </summary>\r\n        public float TargetFrameRate\r\n        {\r\n            get\r\n            {\r\n                // If the current XR SDK does not report refresh rate information, assume 60Hz.\r\n                float refreshRate = 0;\r\n#if ENABLE_VR\r\n                refreshRate = UnityEngine.XR.XRDevice.refreshRate;\r\n#endif\r\n                return ((int)refreshRate == 0) ? defaultFrameRate : refreshRate;\r\n            }\r\n        }\r\n\r\n        /// <summary>\r\n        /// Returns the target frame time in milliseconds for the current platform.\r\n        /// </summary>\r\n        public float TargetFrameTime\r\n        {\r\n            get\r\n            {\r\n                return (1.0f / TargetFrameRate) * 1000.0f;\r\n            }\r\n        }\r\n\r\n        [SerializeField, Tooltip(\"Voice commands to toggle the profiler on and off. (Supported in UWP only.)\")]\r\n        private string[] toggleKeyworlds = new string[] { \"Profiler\", \"Toggle Profiler\", \"Show Profiler\", \"Hide Profiler\" };\r\n\r\n        [Header(\"Visual Settings\")]\r\n        [SerializeField, Range(0, 31), Tooltip(\"The layer index used for rendering the profiler (range between 0, 31 inclusive). Can be used in conjuction with a camera's \\\"Culling Mask\\\" to chose which camera renders the profiler.\")]\r\n        private int layer = 0;\r\n\r\n        /// <summary>\r\n        /// The layer index used for rendering the profiler (range between 0, 31 inclusive). Can be used in conjuction with a camera's \\\"Culling Mask\\\" to chose which camera renders the profiler.\r\n        /// </summary>\r\n        public int Layer\r\n        {\r\n            get { return layer; }\r\n            set { layer = Mathf.Clamp(value, 0, 31); }\r\n        }\r\n\r\n        [SerializeField, Tooltip(\"The material to use when rendering the profiler. The material should use the \\\"Hidden / Visual Profiler\\\" shader and have a font texture.\")]\r\n        private Material material;\r\n\r\n        [SerializeField, Tooltip(\"The color of the window backplate.\")]\r\n        private Color baseColor = new Color(50 / 255.0f, 50 / 255.0f, 50 / 255.0f, 1.0f);\r\n\r\n        [SerializeField, Tooltip(\"The color to display on frames which meet or exceed the target frame rate.\")]\r\n        private Color targetFrameRateColor = new Color(127 / 255.0f, 186 / 255.0f, 0 / 255.0f, 1.0f);\r\n\r\n        [SerializeField, Tooltip(\"The color to display on frames which fall below the target frame rate.\")]\r\n        private Color missedFrameRateColor = new Color(242 / 255.0f, 80 / 255.0f, 34 / 255.0f, 1.0f);\r\n\r\n        [SerializeField, Tooltip(\"The color to display for current memory usage values.\")]\r\n        private Color memoryUsedColor = new Color(0 / 255.0f, 164 / 255.0f, 239 / 255.0f, 1.0f);\r\n\r\n        [SerializeField, Tooltip(\"The color to display for peak (aka max) memory usage values.\")]\r\n        private Color memoryPeakColor = new Color(255 / 255.0f, 185 / 255.0f, 0 / 255.0f, 1.0f);\r\n\r\n        [SerializeField, Tooltip(\"The color to display for the platforms memory usage limit.\")]\r\n        private Color memoryLimitColor = new Color(100 / 255.0f, 100 / 255.0f, 100 / 255.0f, 1.0f);\r\n\r\n        [Header(\"Font Settings\")]\r\n        [SerializeField, Tooltip(\"The width and height of a mono spaced character in the font texture (in pixels).\")]\r\n        private Vector2Int fontCharacterSize = new Vector2Int(16, 30);\r\n\r\n        [SerializeField, Tooltip(\"The x and y scale to render a character at.\")]\r\n        private Vector2 fontScale = new Vector2(0.00023f, 0.00028f);\r\n\r\n        [SerializeField, Min(1), Tooltip(\"How many characters are in a row of the font texture.\")]\r\n        private int fontColumns = 32;\r\n\r\n        /// <summary>\r\n        /// Describes a group of Unity Profiler marker. Common markers are listed here: https://docs.unity3d.com/Manual/profiler-markers.html \r\n        /// </summary>\r\n        [Serializable]\r\n        private class ProfilerGroup\r\n        {\r\n            [Tooltip(\"The visible name of this group in the Visual Profiler. This should be no longer than 9 characters.\")]\r\n            public string DisplayName;\r\n\r\n            [Serializable]\r\n            public class Marker : IDisposable\r\n            {\r\n                public enum OperationType\r\n                {\r\n                    Add,\r\n                    Subtract,\r\n                }\r\n\r\n                public void Init(int capacity)\r\n                {\r\n                    recorder = new ProfilerRecorder(StatName, capacity: 1,\r\n                        ProfilerRecorderOptions.WrapAroundWhenCapacityReached |\r\n                        ProfilerRecorderOptions.SumAllSamplesInFrame |\r\n                        ProfilerRecorderOptions.StartImmediately);\r\n\r\n                    sampleBuffer = new long[capacity];\r\n                }\r\n\r\n                public void Update()\r\n                {\r\n                    long nextSample = recorder.LastValue;\r\n                    if (nextSample == 0) // ProfilerCounterValue doesn't update the LastValue.\r\n                    {\r\n                        nextSample = recorder.CurrentValue;\r\n                    }\r\n\r\n                    sumOfSamples -= sampleBuffer[nextSampleIndex];\r\n                    sumOfSamples += nextSample;\r\n\r\n                    sampleBuffer[nextSampleIndex] = nextSample;\r\n\r\n                    ++nextSampleIndex;\r\n\r\n                    if (nextSampleIndex >= sampleBuffer.Length)\r\n                    {\r\n                        isBufferFull = true;\r\n                        nextSampleIndex = 0;\r\n                    }\r\n                }\r\n\r\n                public void Dispose()\r\n                {\r\n                    recorder.Dispose();\r\n                }\r\n\r\n                [Tooltip(\"Profiler marker or counter name.\")]\r\n                public string StatName;\r\n\r\n                [Tooltip(\"Select if this marker should be added to or subtracted from the total.\")]\r\n                public OperationType Operation;\r\n\r\n                [NonSerialized]\r\n                public ProfilerRecorder recorder;\r\n\r\n                [NonSerialized]\r\n                public long sumOfSamples;\r\n\r\n                [NonSerialized]\r\n                public bool isBufferFull;\r\n\r\n                [NonSerialized]\r\n                private long[] sampleBuffer;\r\n\r\n                [NonSerialized]\r\n                private int nextSampleIndex;\r\n            }\r\n\r\n            [Tooltip(\"List of profiler markers which make up this group.\")]\r\n            public Marker[] Markers = new Marker[0];\r\n\r\n            [Min(1), Tooltip(\"The amount of samples to collect then average when displaying the profiler marker.\")]\r\n            public int SampleCapacity = 300;\r\n\r\n            [Range(0.0f, 1.0f), Tooltip(\"What % of the target frame time can this profiler take before being considered over budget?\")]\r\n            public float BudgetPercentage = 1.0f;\r\n\r\n            public TextData Text { get; set; }\r\n            public float LastValuePresented { get; set; }\r\n            public bool HasEverPresented { get; set; }\r\n            public ProfilerMarkerDataUnit MarkerUnitType { get; private set; }\r\n            public string DisplayUnitSuffix { get; private set; }\r\n\r\n            private bool running = false;\r\n\r\n            public void Start()\r\n            {\r\n                foreach (var marker in Markers)\r\n                {\r\n                    marker.Init(SampleCapacity);\r\n                }\r\n\r\n                if (Markers[0] != null)\r\n                {\r\n                    MarkerUnitType = Markers[0].recorder.UnitType;\r\n                    switch (MarkerUnitType)\r\n                    {\r\n                        case ProfilerMarkerDataUnit.TimeNanoseconds: DisplayUnitSuffix = \"ms\"; break;\r\n                        case ProfilerMarkerDataUnit.Bytes: DisplayUnitSuffix = \"kbps\"; break;\r\n                        case ProfilerMarkerDataUnit.Percent: DisplayUnitSuffix = \"%\"; break;\r\n                        case ProfilerMarkerDataUnit.FrequencyHz: DisplayUnitSuffix = \"hz\"; break;\r\n                        default: DisplayUnitSuffix = \"\"; break;\r\n                    }\r\n                }\r\n\r\n                running = true;\r\n            }\r\n\r\n            public void Update()\r\n            {\r\n                foreach (var marker in Markers)\r\n                {\r\n                    marker.Update();\r\n                }\r\n            }\r\n\r\n            public void Stop()\r\n            {\r\n                foreach (var marker in Markers)\r\n                {\r\n                    marker.Dispose();\r\n                }\r\n\r\n                running = false;\r\n            }\r\n\r\n            public void Reset()\r\n            {\r\n                HasEverPresented = false;\r\n                LastValuePresented = -1.0f;\r\n            }\r\n\r\n            public bool ReadyToPresent()\r\n            {\r\n                if (running)\r\n                {\r\n                    foreach (var marker in Markers)\r\n                    {\r\n                        if (marker.recorder.Valid &&\r\n                            marker.isBufferFull)\r\n                        {\r\n                            return true;\r\n                        }\r\n                    }\r\n                }\r\n\r\n                return false;\r\n            }\r\n\r\n            public float CalculateAverage()\r\n            {\r\n                if (!running)\r\n                {\r\n                    return 0.0f;\r\n                }\r\n\r\n                float sum = 0.0f;\r\n\r\n                foreach (var marker in Markers)\r\n                {\r\n                    switch (marker.Operation)\r\n                    {\r\n                        case Marker.OperationType.Add: sum += marker.sumOfSamples; break;\r\n                        case Marker.OperationType.Subtract: sum -= marker.sumOfSamples; break;\r\n                    }\r\n                }\r\n\r\n                sum /= SampleCapacity;\r\n\r\n                return sum;\r\n            }\r\n\r\n            public float CalculateDisplayValue()\r\n            {\r\n                float average = CalculateAverage();\r\n\r\n                switch (MarkerUnitType)\r\n                {\r\n                    case ProfilerMarkerDataUnit.TimeNanoseconds: return average * 1e-6f; // Milliseconds\r\n                    case ProfilerMarkerDataUnit.Bytes: return average / 125.0f; // Kilobits/second\r\n                    default: return average;\r\n                }\r\n            }\r\n        }\r\n\r\n        [Header(\"Profiler Groups\")]\r\n        [SerializeField, Tooltip(\"If multiple rows of profiler groups are displayed, choose which order to display them in.\")]\r\n        private ProfilerDisplayOrderType ProfilerDisplayOrder; // = ProfilerDisplayOrderType.Rows\r\n\r\n        public enum ProfilerDisplayOrderType\r\n        {\r\n            [InspectorName(\"Right, Then Down\")]\r\n            Rows,\r\n            [InspectorName(\"Down, Then Right\")]\r\n            Columns,\r\n        }\r\n\r\n        [SerializeField, Tooltip(\"Populate this list with ProfilerRecorder profiler markers to display timing information.\")]\r\n        private ProfilerGroup[] ProfilerGroups = new ProfilerGroup[0];\r\n\r\n        // Constants.\r\n        private const int maxStringLength = 17;\r\n        private const int maxTargetFrameRate = 240;\r\n        private const int frameRange = 30;\r\n\r\n        // These offsets specify how many instances a portion of the UI uses as well as draw order. \r\n        private const int backplateInstanceOffset = 0;\r\n\r\n        private const int framesInstanceOffset = backplateInstanceOffset + 1;\r\n\r\n        private const int limitInstanceOffset = framesInstanceOffset + frameRange;\r\n        private const int peakInstanceOffset = limitInstanceOffset + 1;\r\n        private const int usedInstanceOffset = peakInstanceOffset + 1;\r\n\r\n        private const int cpuframeRateTextOffset = usedInstanceOffset + 1;\r\n        private const int qualityLevelTextOffset = cpuframeRateTextOffset + maxStringLength;\r\n        private const int gpuframeRateTextOffset = qualityLevelTextOffset + maxStringLength;\r\n\r\n        private const int batchesTextOffset = gpuframeRateTextOffset + maxStringLength;\r\n        private const int drawCallTextOffset = batchesTextOffset + maxStringLength;\r\n        private const int meshStatsTextOffset = drawCallTextOffset + maxStringLength;\r\n\r\n        private const int usedMemoryTextOffset = meshStatsTextOffset + maxStringLength;\r\n        private const int limitMemoryTextOffset = usedMemoryTextOffset + maxStringLength;\r\n        private const int peakMemoryTextOffset = limitMemoryTextOffset + maxStringLength;\r\n\r\n        private const int lastOffset = peakMemoryTextOffset + maxStringLength;\r\n\r\n        private static readonly int colorID = Shader.PropertyToID(\"_Color\");\r\n        private static readonly int baseColorID = Shader.PropertyToID(\"_BaseColor\");\r\n        private static readonly int fontScaleID = Shader.PropertyToID(\"_FontScale\");\r\n        private static readonly int uvOffsetScaleXID = Shader.PropertyToID(\"_UVOffsetScaleX\");\r\n        private static readonly int windowLocalToWorldID = Shader.PropertyToID(\"_WindowLocalToWorldMatrix\");\r\n\r\n        // Pre computed state.\r\n        private char[][] qualityLevelStrings = new char[0][];\r\n        private char[][] frameRateStrings = new char[maxTargetFrameRate + 1][];\r\n        private char[][] gpuFrameRateStrings = new char[maxTargetFrameRate + 1][];\r\n        private Vector4[] characterUVs = new Vector4[128];\r\n        private Vector3 characterScale = Vector3.zero;\r\n\r\n        // UI state.\r\n        private Vector3 windowPosition = Vector3.zero;\r\n        private Quaternion windowRotation = Quaternion.identity;\r\n\r\n        private class TextData\r\n        {\r\n            public string Prefix;\r\n            public Vector3 Position;\r\n            public bool RightAligned;\r\n            public int Offset;\r\n            public int LastCount;\r\n\r\n            public TextData(Vector3 position, bool rightAligned, int offset, string prefix = \"\")\r\n            {\r\n                Position = position;\r\n                RightAligned = rightAligned;\r\n                Offset = offset;\r\n                Prefix = prefix;\r\n                LastCount = maxStringLength;\r\n            }\r\n        }\r\n\r\n        private TextData cpuFrameRateText = null;\r\n        private TextData qualityLevelText = null;\r\n        private TextData gpuFrameRateText = null;\r\n\r\n        private TextData batchesText = null;\r\n        private TextData drawCallText = null;\r\n        private TextData meshText = null;\r\n\r\n        private TextData usedMemoryText = null;\r\n        private TextData peakMemoryText = null;\r\n        private TextData limitMemoryText = null;\r\n\r\n        private Quaternion windowHorizontalRotation = Quaternion.identity;\r\n        private Quaternion windowHorizontalRotationInverse = Quaternion.identity;\r\n        private Quaternion windowVerticalRotation = Quaternion.identity;\r\n        private Quaternion windowVerticalRotationInverse = Quaternion.identity;\r\n\r\n        private char[] stringBuffer = new char[256];\r\n\r\n        private int qualityLevel = -1;\r\n        private int cpuFrameRate = -1;\r\n        private int gpuFrameRate = -1;\r\n        private long batches = 0;\r\n        private long drawCalls = 0;\r\n        private long meshStatsCount = 0;\r\n        private ulong memoryUsage = 0;\r\n        private ulong peakMemoryUsage = 0;\r\n        private ulong limitMemoryUsage = 0;\r\n        private bool peakMemoryUsageDirty = false;\r\n\r\n        // Profiling state.\r\n        private int frameCount = 0;\r\n        private float accumulatedFrameTimeCPU = 0.0f;\r\n        private float accumulatedFrameTimeGPU = 0.0f;\r\n        private float frameSampleRateMS = 0.0f;\r\n        private FrameTiming[] frameTimings = new FrameTiming[1];\r\n#if !UNITY_EDITOR\r\n        private ProfilerRecorder batchesRecorder;\r\n        private ProfilerRecorder drawCallsRecorder;\r\n        private ProfilerRecorder meshStatsRecorder;\r\n#endif\r\n        private Recorder[] srpBatchesRecorders;\r\n        private ProfilerRecorder systemUsedMemoryRecorder;\r\n\r\n        // Rendering state.\r\n        private Mesh quadMesh;\r\n        private MaterialPropertyBlock instancePropertyBlock;\r\n        private Matrix4x4[] instanceMatrices;\r\n        private Vector4[] instanceColors;\r\n        private Vector4[] instanceBaseColors;\r\n        private Vector4[] instanceUVOffsetScaleX;\r\n        private bool instanceColorsDirty = false;\r\n        private bool instanceBaseColorsDirty = false;\r\n        private bool instanceUVOffsetScaleXDirty = false;\r\n        private bool customUpdateInUse = false;\r\n\r\n        /// <summary>\r\n        /// Reset any stats the profiler is tracking. Call this if you would like to restart tracking \r\n        /// statistics like peak memory usage.\r\n        /// </summary>\r\n        public void Refresh()\r\n        {\r\n            SmoothCpuFrameRate = 0.0f;\r\n            SmoothGpuFrameRate = 0.0f;\r\n            qualityLevel = -1;\r\n            cpuFrameRate = -1;\r\n            gpuFrameRate = -1;\r\n            batches = 0;\r\n            drawCalls = 0;\r\n            meshStatsCount = 0;\r\n            memoryUsage = 0;\r\n            peakMemoryUsage = 0;\r\n            limitMemoryUsage = 0;\r\n        }\r\n\r\n        /// <summary>\r\n        /// Allows for an app to specific a custom point in the frame to call update. (Should be called once every frame.)\r\n        /// </summary>\r\n        public void CustomUpdate()\r\n        {\r\n            customUpdateInUse = true;\r\n\r\n            if (isActiveAndEnabled)\r\n            {\r\n                InternalUpdate();\r\n            }\r\n        }\r\n\r\n        private void OnEnable()\r\n        {\r\n            if (material == null)\r\n            {\r\n                Debug.LogError(\"The VisualProfiler is missing a material and will not display.\");\r\n            }\r\n\r\n            // Create a quad mesh with artificially large bounds to disable culling for instanced rendering.\r\n            // TODO - [Cameron-Micka] Use shared mesh with normal bounds once Unity allows for more control over instance culling.\r\n            if (quadMesh == null)\r\n            {\r\n                MeshFilter quadMeshFilter = GameObject.CreatePrimitive(PrimitiveType.Quad).GetComponent<MeshFilter>();\r\n                quadMesh = quadMeshFilter.mesh;\r\n                quadMesh.bounds = new Bounds(Vector3.zero, Vector3.one * float.MaxValue);\r\n\r\n                Destroy(quadMeshFilter.gameObject);\r\n            }\r\n\r\n            instancePropertyBlock = new MaterialPropertyBlock();\r\n\r\n            Vector2 defaultWindowRotation = new Vector2(10.0f, 20.0f);\r\n\r\n            windowHorizontalRotation = Quaternion.AngleAxis(defaultWindowRotation.y, Vector3.right);\r\n            windowHorizontalRotationInverse = Quaternion.Inverse(windowHorizontalRotation);\r\n            windowVerticalRotation = Quaternion.AngleAxis(defaultWindowRotation.x, Vector3.up);\r\n            windowVerticalRotationInverse = Quaternion.Inverse(windowVerticalRotation);\r\n\r\n#if !UNITY_EDITOR\r\n            batchesRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Render, \"Batches Count\");\r\n            drawCallsRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Render, \"Draw Calls Count\");\r\n            meshStatsRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Render, displayTriangleCount ? \"Triangles Count\" : \"Vertices Count\");\r\n#endif\r\n#if ENABLE_PROFILER\r\n            var samplerNames = new string[] { \"SRPBRender.ApplyShader\", \"SRPBShadow.ApplyShader\", \"StdRender.ApplyShader\", \"StdShadow.ApplyShader\" };\r\n            srpBatchesRecorders = new Recorder[samplerNames.Length];\r\n\r\n            for (int i  = 0; i < samplerNames.Length; ++i)\r\n            {\r\n                var recorder = Recorder.Get(samplerNames[i]);\r\n\r\n                if (recorder.isValid)\r\n                {\r\n                    srpBatchesRecorders[i] = recorder;\r\n                }\r\n            }\r\n\r\n            foreach (var profilerGroup in ProfilerGroups)\r\n            {\r\n                profilerGroup.Start();\r\n            }\r\n#endif\r\n\r\n            systemUsedMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, \"System Used Memory\");\r\n\r\n            BuildWindow();\r\n\r\n#if UNITY_STANDALONE_WIN || UNITY_WSA\r\n            BuildKeywordRecognizer();\r\n#endif\r\n        }\r\n\r\n        private void OnDisable()\r\n        {\r\n#if UNITY_STANDALONE_WIN || UNITY_WSA\r\n            if (keywordRecognizer != null && keywordRecognizer.IsRunning)\r\n            {\r\n                keywordRecognizer.Stop();\r\n                keywordRecognizer.Dispose();\r\n                keywordRecognizer = null;\r\n            }\r\n#endif\r\n\r\n            systemUsedMemoryRecorder.Dispose();\r\n\r\n            foreach (var profilerGroup in ProfilerGroups)\r\n            {\r\n                profilerGroup.Stop();\r\n            }\r\n\r\n#if !UNITY_EDITOR\r\n            meshStatsRecorder.Dispose();\r\n            drawCallsRecorder.Dispose();\r\n            batchesRecorder.Dispose();\r\n#endif\r\n        }\r\n\r\n        private void OnValidate()\r\n        {\r\n            BuildWindow();\r\n        }\r\n\r\n        public void OnBeforeSerialize()\r\n        {\r\n            // Default values for serializable classes in arrays/lists are not supported. This ensures correct construction.\r\n            for (int i = 0; i < ProfilerGroups.Length; ++i)\r\n            {\r\n                if (ProfilerGroups[i].SampleCapacity == 0)\r\n                {\r\n                    ProfilerGroups[i] = new ProfilerGroup();\r\n                }\r\n            }\r\n        }\r\n\r\n        public void OnAfterDeserialize() { }\r\n\r\n        private void LateUpdate()\r\n        {\r\n            if (customUpdateInUse == false)\r\n            {\r\n                InternalUpdate();\r\n            }\r\n        }\r\n\r\n        private void InternalUpdate()\r\n        {\r\n#if ENABLE_PROFILER\r\n            foreach (var profilerGroup in ProfilerGroups)\r\n            {\r\n                profilerGroup.Update();\r\n            }\r\n#endif\r\n\r\n            if (IsVisible)\r\n            {\r\n                // Update window transformation.\r\n                Transform cameraTransform = Camera.main ? Camera.main.transform : null;\r\n\r\n                if (cameraTransform != null)\r\n                {\r\n                    Vector3 targetPosition = CalculateWindowPosition(cameraTransform);\r\n                    Quaternion targetRotaton = CalculateWindowRotation(cameraTransform);\r\n\r\n                    if (snapWindow)\r\n                    {\r\n                        windowPosition = targetPosition;\r\n                        windowRotation = targetRotaton;\r\n                    }\r\n                    else\r\n                    {\r\n                        float t = Time.deltaTime * windowFollowSpeed;\r\n                        windowPosition = Vector3.Lerp(windowPosition, targetPosition, t);\r\n                        // Lerp rather than slerp for speed over quality.\r\n                        windowRotation = Quaternion.Lerp(windowRotation, targetRotaton, t);\r\n                    }\r\n                }\r\n\r\n                // Update quality level text.\r\n                int lastQualityLevel = QualitySettings.GetQualityLevel();\r\n\r\n                if (lastQualityLevel != qualityLevel)\r\n                {\r\n                    char[] text = qualityLevelStrings[lastQualityLevel];\r\n                    SetText(qualityLevelText, text, text.Length, Color.white);\r\n                    qualityLevel = lastQualityLevel;\r\n                }\r\n\r\n                // Many platforms do not yet support the FrameTimingManager. When timing data is returned from the FrameTimingManager we will use\r\n                // its timing data, else we will depend on the deltaTime. Wider support is coming in Unity 2022.1+\r\n                // https://blog.unity.com/technology/detecting-performance-bottlenecks-with-unity-frame-timing-manager\r\n                FrameTimingManager.CaptureFrameTimings();\r\n                uint frameTimingsCount = FrameTimingManager.GetLatestTimings(1, frameTimings);\r\n\r\n                if (frameTimingsCount != 0)\r\n                {\r\n                    accumulatedFrameTimeCPU += (float)frameTimings[0].cpuFrameTime;\r\n                    accumulatedFrameTimeGPU += (float)frameTimings[0].gpuFrameTime;\r\n                }\r\n                else\r\n                {\r\n                    accumulatedFrameTimeCPU += Time.unscaledDeltaTime * 1000.0f;\r\n                    // No GPU time to query.\r\n                }\r\n\r\n                ++frameCount;\r\n\r\n                if (accumulatedFrameTimeCPU >= frameSampleRateMS)\r\n                {\r\n                    if (accumulatedFrameTimeCPU != 0.0f)\r\n                    {\r\n                        SmoothCpuFrameRate = Mathf.Max(1.0f / ((accumulatedFrameTimeCPU * 0.001f) / frameCount), 0.0f);\r\n                    }\r\n\r\n                    int lastCpuFrameRate = Mathf.Min(Mathf.RoundToInt(SmoothCpuFrameRate), maxTargetFrameRate);\r\n\r\n                    if (accumulatedFrameTimeGPU != 0.0f)\r\n                    {\r\n                        SmoothGpuFrameRate = Mathf.Max(1.0f / ((accumulatedFrameTimeGPU * 0.001f) / frameCount), 0.0f);\r\n                    }\r\n\r\n                    int lastGpuFrameRate = Mathf.Min(Mathf.RoundToInt(SmoothGpuFrameRate), maxTargetFrameRate);\r\n\r\n                    // TODO - [Cameron-Micka] Ideally we would query a device specific API (like the HolographicFramePresentationReport) to detect missed frames.\r\n                    bool missedFrame = lastCpuFrameRate < (int)(TargetFrameRate * missedFramePercentage);\r\n                    Color frameColor = missedFrame ? missedFrameRateColor : targetFrameRateColor;\r\n                    Vector4 frameIcon = missedFrame ? characterUVs['X'] : characterUVs[' '];\r\n\r\n                    // Update frame rate text.\r\n                    if (lastCpuFrameRate != cpuFrameRate)\r\n                    {\r\n                        char[] text = frameRateStrings[lastCpuFrameRate];\r\n                        SetText(cpuFrameRateText, text, text.Length, frameColor);\r\n                        cpuFrameRate = lastCpuFrameRate;\r\n                    }\r\n\r\n                    if (lastGpuFrameRate != gpuFrameRate)\r\n                    {\r\n                        char[] text = gpuFrameRateStrings[lastGpuFrameRate];\r\n                        Color color = (lastGpuFrameRate < ((int)(TargetFrameRate) - 1)) ? missedFrameRateColor : targetFrameRateColor;\r\n                        SetText(gpuFrameRateText, text, text.Length, color);\r\n                        gpuFrameRate = lastGpuFrameRate;\r\n                    }\r\n\r\n                    // Animate frame colors and icons.\r\n                    for (int i = frameRange - 1; i > 0; --i)\r\n                    {\r\n                        int write = framesInstanceOffset + i;\r\n                        int read = framesInstanceOffset + i - 1;\r\n                        instanceBaseColors[write] = instanceBaseColors[read];\r\n                        instanceUVOffsetScaleX[write] = instanceUVOffsetScaleX[read];\r\n                    }\r\n\r\n                    instanceBaseColors[framesInstanceOffset + 0] = frameColor;\r\n                    instanceUVOffsetScaleX[framesInstanceOffset + 0] = frameIcon;\r\n\r\n                    instanceBaseColorsDirty = true;\r\n                    instanceUVOffsetScaleXDirty = true;\r\n\r\n                    // Reset timers.\r\n                    frameCount = 0;\r\n                    accumulatedFrameTimeCPU = 0.0f;\r\n                    accumulatedFrameTimeGPU = 0.0f;\r\n                }\r\n\r\n                // Update scene statistics.\r\n                long lastBatches = 0;\r\n\r\n                if (GraphicsSettings.useScriptableRenderPipelineBatching)\r\n                {\r\n                    if (srpBatchesRecorders != null)\r\n                    {\r\n                        foreach (var recorder in srpBatchesRecorders)\r\n                        {\r\n                            if (recorder != null)\r\n                            {\r\n                                lastBatches += recorder.sampleBlockCount;\r\n                            }\r\n\r\n                            // Some frames erroneously report zero batches, filter these frames out.\r\n                            if (lastBatches == 0)\r\n                            {\r\n                                lastBatches = batches;\r\n                            }\r\n                        }\r\n                    }\r\n                    else // Recorders aren't available so reliable batch counts cannot be displayed.\r\n                    {\r\n                        lastBatches = -1;\r\n                    }\r\n                }\r\n                else\r\n                {\r\n#if UNITY_EDITOR\r\n                    lastBatches = UnityEditor.UnityStats.batches;\r\n#else\r\n                    lastBatches = batchesRecorder.LastValue;\r\n#endif\r\n                }\r\n\r\n                if (lastBatches != batches)\r\n                {\r\n                    SceneStatsToString(stringBuffer, batchesText, lastBatches, QualityLevelBudgetToColor(BatchesQualityLevelBudget, lastBatches));\r\n\r\n                    batches = lastBatches;\r\n                }\r\n\r\n#if UNITY_EDITOR\r\n                long lastDrawCalls = UnityEditor.UnityStats.drawCalls;\r\n#else\r\n                long lastDrawCalls = drawCallsRecorder.LastValue;\r\n#endif\r\n\r\n                if (lastDrawCalls != drawCalls)\r\n                {\r\n                    SceneStatsToString(stringBuffer, drawCallText, lastDrawCalls, QualityLevelBudgetToColor(DrawCallsQualityLevelBudget, lastDrawCalls));\r\n\r\n                    drawCalls = lastDrawCalls;\r\n                }\r\n\r\n#if UNITY_EDITOR\r\n                long lastMeshStatsCount = displayTriangleCount ? UnityEditor.UnityStats.triangles : UnityEditor.UnityStats.vertices;\r\n#else\r\n                long lastMeshStatsCount = meshStatsRecorder.LastValue;\r\n#endif\r\n\r\n                if (lastMeshStatsCount != meshStatsCount)\r\n                {\r\n                    if (WillDisplayedMeshStatsCountDiffer(lastMeshStatsCount, meshStatsCount, displayedDecimalDigits))\r\n                    {\r\n                        MeshStatsToString(stringBuffer, displayedDecimalDigits, meshText, lastMeshStatsCount, QualityLevelBudgetToColor(MeshStatsQualityLevelBudget, lastMeshStatsCount));\r\n                    }\r\n\r\n                    meshStatsCount = lastMeshStatsCount;\r\n                }\r\n\r\n                // Update memory statistics.\r\n                ulong limit = AppMemoryUsageLimit;\r\n\r\n                if (limit != limitMemoryUsage)\r\n                {\r\n                    if (WillDisplayedMemoryUsageDiffer(limitMemoryUsage, limit, displayedDecimalDigits))\r\n                    {\r\n                        MemoryUsageToString(stringBuffer, displayedDecimalDigits, limitMemoryText, limit, Color.white);\r\n                    }\r\n\r\n                    limitMemoryUsage = limit;\r\n                }\r\n\r\n                ulong usage = AppMemoryUsage;\r\n\r\n                if (usage != memoryUsage)\r\n                {\r\n                    Vector4 offsetScale = instanceUVOffsetScaleX[usedInstanceOffset];\r\n                    offsetScale.z = -1.0f + (float)usage / limitMemoryUsage;\r\n                    instanceUVOffsetScaleX[usedInstanceOffset] = offsetScale;\r\n                    instanceUVOffsetScaleXDirty = true;\r\n\r\n                    if (WillDisplayedMemoryUsageDiffer(memoryUsage, usage, displayedDecimalDigits))\r\n                    {\r\n                        MemoryUsageToString(stringBuffer, displayedDecimalDigits, usedMemoryText, usage, memoryUsedColor);\r\n                    }\r\n\r\n                    memoryUsage = usage;\r\n                }\r\n\r\n                if (memoryUsage > peakMemoryUsage || peakMemoryUsageDirty)\r\n                {\r\n                    Vector4 offsetScale = instanceUVOffsetScaleX[peakInstanceOffset];\r\n                    offsetScale.z = -1.0f + (float)memoryUsage / limitMemoryUsage;\r\n                    instanceUVOffsetScaleX[peakInstanceOffset] = offsetScale;\r\n                    instanceUVOffsetScaleXDirty = true;\r\n\r\n                    if (WillDisplayedMemoryUsageDiffer(peakMemoryUsage, memoryUsage, displayedDecimalDigits))\r\n                    {\r\n                        MemoryUsageToString(stringBuffer, displayedDecimalDigits, peakMemoryText, memoryUsage, memoryPeakColor);\r\n                    }\r\n\r\n                    peakMemoryUsage = memoryUsage;\r\n                    peakMemoryUsageDirty = false;\r\n                }\r\n\r\n#if ENABLE_PROFILER\r\n                // Update profiler groups\r\n                foreach (var profilerGroup in ProfilerGroups)\r\n                {\r\n                    if (profilerGroup.ReadyToPresent())\r\n                    {\r\n                        float value = profilerGroup.CalculateDisplayValue();\r\n\r\n                        if (WillDisplayedProfilerValueDiffer(profilerGroup.LastValuePresented, value, displayedDecimalDigits))\r\n                        {\r\n                            profilerGroup.HasEverPresented = true;\r\n                            profilerGroup.LastValuePresented = value;\r\n\r\n                            Color color = Color.white;\r\n\r\n                            // Only apply frame time budget coloring to time profilers\r\n                            if (profilerGroup.MarkerUnitType == ProfilerMarkerDataUnit.TimeNanoseconds)\r\n                            {\r\n                                float budget = TargetFrameTime * profilerGroup.BudgetPercentage;\r\n                                color = value <= budget ? targetFrameRateColor : missedFrameRateColor;\r\n                            }\r\n\r\n                            ProfilerValueToString(stringBuffer, displayedDecimalDigits, profilerGroup.Text, value, profilerGroup.DisplayUnitSuffix, color, maxStringLength);\r\n                        }\r\n                    }\r\n                    else if (profilerGroup.HasEverPresented == false)\r\n                    {\r\n                        profilerGroup.HasEverPresented = true;\r\n                        profilerGroup.LastValuePresented = -1.0f;\r\n\r\n                        ProfilerValueToString(stringBuffer, displayedDecimalDigits, profilerGroup.Text, -1.0f, profilerGroup.DisplayUnitSuffix, Color.white, maxStringLength);\r\n                    }\r\n                }\r\n#endif\r\n\r\n                // Render.\r\n                Matrix4x4 windowLocalToWorldMatrix = Matrix4x4.TRS(windowPosition, windowRotation, Vector3.one * windowScale);\r\n                instancePropertyBlock.SetMatrix(windowLocalToWorldID, windowLocalToWorldMatrix);\r\n\r\n                if (instanceColorsDirty)\r\n                {\r\n                    instancePropertyBlock.SetVectorArray(colorID, instanceColors);\r\n                    instanceColorsDirty = false;\r\n                }\r\n\r\n                if (instanceBaseColorsDirty)\r\n                {\r\n                    instancePropertyBlock.SetVectorArray(baseColorID, instanceBaseColors);\r\n                    instanceBaseColorsDirty = false;\r\n                }\r\n\r\n                if (instanceUVOffsetScaleXDirty)\r\n                {\r\n                    instancePropertyBlock.SetVectorArray(uvOffsetScaleXID, instanceUVOffsetScaleX);\r\n                    instanceUVOffsetScaleXDirty = false;\r\n                }\r\n\r\n                if (material != null)\r\n                {\r\n                    Graphics.DrawMeshInstanced(quadMesh, 0, material, instanceMatrices, instanceMatrices.Length, instancePropertyBlock, UnityEngine.Rendering.ShadowCastingMode.Off, false, layer);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                // Keep tracking peak memory usage when not visible.\r\n                ulong usage = AppMemoryUsage;\r\n\r\n                if (usage > peakMemoryUsage)\r\n                {\r\n                    peakMemoryUsage = usage;\r\n                    peakMemoryUsageDirty = true;\r\n                }\r\n            }\r\n        }\r\n\r\n        private void BuildWindow()\r\n        {\r\n            BuildQualityLevelStrings();\r\n            BuildFrameRateStrings();\r\n            BuildCharacterUVs();\r\n\r\n#if ENABLE_PROFILER\r\n            int instanceCount = lastOffset + (maxStringLength * ProfilerGroups.Length);\r\n#else\r\n            int instanceCount = lastOffset;\r\n#endif\r\n            instanceMatrices = new Matrix4x4[instanceCount];\r\n            instanceColors = new Vector4[instanceCount];\r\n            instanceBaseColors = new Vector4[instanceCount];\r\n            instanceUVOffsetScaleX = new Vector4[instanceCount];\r\n\r\n            Vector4 spaceUV = characterUVs[' '];\r\n\r\n            Vector3 defaultWindowSize = new Vector3(0.2f, 0.04f, 1.0f);\r\n            float edge = defaultWindowSize.x * 0.5f;\r\n            float[] edges = new float[] { -edge, -0.03f, edge };\r\n\r\n            // Set the default base color.\r\n            for (int i = 0; i < instanceBaseColors.Length; ++i)\r\n            {\r\n                instanceBaseColors[i] = baseColor;\r\n            }\r\n\r\n            // Add a window back plate.\r\n            {\r\n                instanceMatrices[backplateInstanceOffset] = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, defaultWindowSize);\r\n                instanceColors[backplateInstanceOffset] = baseColor;\r\n                instanceBaseColors[backplateInstanceOffset] = baseColor;\r\n                instanceUVOffsetScaleX[backplateInstanceOffset] = spaceUV;\r\n            }\r\n\r\n            // Add frame rate and quality level text.\r\n            {\r\n                float height = 0.02f;\r\n                cpuFrameRateText = new TextData(new Vector3(edges[0], height, 0.0f), false, cpuframeRateTextOffset);\r\n                LayoutText(cpuFrameRateText);\r\n                qualityLevelText = new TextData(new Vector3(edges[1], height, 0.0f), false, qualityLevelTextOffset);\r\n                LayoutText(qualityLevelText);\r\n                gpuFrameRateText = new TextData(new Vector3(edges[2], height, 0.0f), true, gpuframeRateTextOffset);\r\n                LayoutText(gpuFrameRateText);\r\n            }\r\n\r\n            // Add frame rate indicators.\r\n            {\r\n                float height = 0.008f;\r\n                float size = (1.0f / frameRange) * defaultWindowSize.x;\r\n                Vector3 scale = new Vector3(size, size, 1.0f);\r\n                Vector3 position = new Vector3(-defaultWindowSize.x * 0.5f, height, 0.0f);\r\n                position.x += scale.x * 0.5f;\r\n\r\n                for (int i = 0; i < frameRange; ++i)\r\n                {\r\n                    instanceMatrices[framesInstanceOffset + i] = Matrix4x4.TRS(position, Quaternion.identity, new Vector3(scale.x * 0.8f, scale.y * 0.8f, scale.z));\r\n                    position.x += scale.x;\r\n                    instanceColors[framesInstanceOffset + i] = Color.white;\r\n                    instanceBaseColors[framesInstanceOffset + i] = targetFrameRateColor;\r\n                    instanceUVOffsetScaleX[framesInstanceOffset + i] = spaceUV;\r\n                }\r\n            }\r\n\r\n            // Add scene statistics text.\r\n            {\r\n                float height = 0.0045f;\r\n                batchesText = new TextData(new Vector3(edges[0], height, 0.0f), false, batchesTextOffset, \"Batches: \");\r\n                LayoutText(batchesText);\r\n                drawCallText = new TextData(new Vector3(edges[1], height, 0.0f), false, drawCallTextOffset, \"Draw Calls: \");\r\n                LayoutText(drawCallText);\r\n                meshText = new TextData(new Vector3(edges[2], height, 0.0f), true, meshStatsTextOffset, displayTriangleCount ? \"Tris: \" : \"Verts: \");\r\n                LayoutText(meshText);\r\n            }\r\n\r\n            // Add memory usage bars.\r\n            {\r\n                float height = -0.0075f;\r\n                Vector3 position = new Vector3(0.0f, height, 0.0f);\r\n                Vector3 scale = defaultWindowSize;\r\n                scale.Scale(new Vector3(0.99f, 0.15f, 1.0f));\r\n\r\n                {\r\n                    instanceMatrices[limitInstanceOffset] = Matrix4x4.TRS(position, Quaternion.identity, scale);\r\n                    instanceColors[limitInstanceOffset] = memoryLimitColor;\r\n                    instanceBaseColors[limitInstanceOffset] = memoryLimitColor;\r\n                    instanceUVOffsetScaleX[limitInstanceOffset] = spaceUV;\r\n                }\r\n                {\r\n                    instanceMatrices[peakInstanceOffset] = Matrix4x4.TRS(position, Quaternion.identity, scale);\r\n                    instanceColors[peakInstanceOffset] = memoryPeakColor;\r\n                    instanceBaseColors[peakInstanceOffset] = memoryPeakColor;\r\n                    instanceUVOffsetScaleX[peakInstanceOffset] = spaceUV;\r\n                }\r\n                {\r\n                    instanceMatrices[usedInstanceOffset] = Matrix4x4.TRS(position, Quaternion.identity, scale);\r\n                    instanceColors[usedInstanceOffset] = memoryUsedColor;\r\n                    instanceBaseColors[usedInstanceOffset] = memoryUsedColor;\r\n                    instanceUVOffsetScaleX[usedInstanceOffset] = spaceUV;\r\n                }\r\n            }\r\n\r\n            // Add memory usage text.\r\n            {\r\n                float height = -0.011f;\r\n                usedMemoryText = new TextData(new Vector3(edges[0], height, 0.0f), false, usedMemoryTextOffset, \"Used: \");\r\n                LayoutText(usedMemoryText);\r\n                peakMemoryText = new TextData(new Vector3(edges[1], height, 0.0f), false, peakMemoryTextOffset, \"Peak: \");\r\n                LayoutText(peakMemoryText);\r\n                limitMemoryText = new TextData(new Vector3(edges[2], height, 0.0f), true, limitMemoryTextOffset, \"Limit: \");\r\n                LayoutText(limitMemoryText);\r\n            }\r\n\r\n#if ENABLE_PROFILER\r\n            // Add custom profilers.\r\n            {\r\n                int offset = lastOffset;\r\n                float height = -0.02f;\r\n\r\n                int maxColumns = 3;\r\n                int numColumns = Mathf.Min(ProfilerGroups.Length, maxColumns);\r\n                int numRows = (ProfilerGroups.Length + maxColumns - 1) / maxColumns;\r\n\r\n                for (int row = 0; row < numRows; ++row)\r\n                {\r\n                    for (int column = 0; column < numColumns; ++column)\r\n                    {\r\n                        int profilerGroupIndex = ProfilerDisplayOrder switch\r\n                        {\r\n                            ProfilerDisplayOrderType.Rows => row * numColumns + column,\r\n                            /*ProfilerDisplayOrderType.Columns*/ _ => column * numRows + row,\r\n                        };\r\n\r\n                        if (profilerGroupIndex < ProfilerGroups.Length)\r\n                        {\r\n                            var profilerGroup = ProfilerGroups[profilerGroupIndex];\r\n                            bool rightAlign = (column == 2) ? true : false;\r\n\r\n                            // Allow for at least 8 digits other than the prefix.\r\n                            int maxPrefixLength = maxStringLength - 8;\r\n                            string prefix = (profilerGroup.DisplayName.Length > maxPrefixLength) ? profilerGroup.DisplayName.Substring(0, maxPrefixLength) : profilerGroup.DisplayName;\r\n\r\n                            profilerGroup.Text = new TextData(new Vector3(edges[column], height, 0.0f), rightAlign, offset, $\"{prefix}: \");\r\n                            LayoutText(profilerGroup.Text);\r\n\r\n                            offset += maxStringLength;\r\n\r\n                            profilerGroup.Reset();\r\n                        }\r\n                    }\r\n\r\n                    height -= characterScale.y;\r\n                }\r\n            }\r\n#endif\r\n\r\n            instanceColorsDirty = true;\r\n            instanceBaseColorsDirty = true;\r\n            instanceUVOffsetScaleXDirty = true;\r\n\r\n            // Initialize property block state.\r\n            if (instancePropertyBlock != null && material != null && material.mainTexture != null)\r\n            {\r\n                instancePropertyBlock.SetVector(fontScaleID, new Vector2((float)fontCharacterSize.x / material.mainTexture.width,\r\n                                                                         (float)fontCharacterSize.y / material.mainTexture.height));\r\n            }\r\n\r\n            Refresh();\r\n        }\r\n\r\n        private void BuildQualityLevelStrings()\r\n        {\r\n            string prefix = \"Quality: \";\r\n            string[] names = QualitySettings.names;\r\n            qualityLevelStrings = new char[names.Length][];\r\n\r\n            for (int i = 0; i < names.Length; ++i)\r\n            {\r\n                var name = prefix + names[i];\r\n                string shortName = (name.Length > maxStringLength) ? name.Substring(0, maxStringLength) : name;\r\n                qualityLevelStrings[i] = shortName.ToCharArray();\r\n            }\r\n        }\r\n\r\n        private void BuildFrameRateStrings()\r\n        {\r\n            frameSampleRateMS = frameSampleRate * 1000.0f;\r\n\r\n            string displayedDecimalFormat = string.Format(\"{{0:F{0}}}\", displayedDecimalDigits);\r\n\r\n            StringBuilder stringBuilder = new StringBuilder(32);\r\n            StringBuilder milisecondStringBuilder = new StringBuilder(16);\r\n\r\n            // Display nothing for index zero.\r\n            frameRateStrings[0] = ToCharArray(stringBuilder);\r\n            gpuFrameRateStrings[0] = ToCharArray(stringBuilder);\r\n\r\n            for (int i = 1; i < frameRateStrings.Length; ++i)\r\n            {\r\n                float milliseconds = (i == 0) ? 0.0f : (1.0f / i) * 1000.0f;\r\n                milisecondStringBuilder.AppendFormat(displayedDecimalFormat, milliseconds);\r\n\r\n                string frame = i.ToString();\r\n                string ms = milisecondStringBuilder.ToString();\r\n\r\n                if (i == (frameRateStrings.Length - 1))\r\n                {\r\n                    stringBuilder.AppendFormat(\">{0}fps ({1}ms)\", frame, ms);\r\n                }\r\n                else\r\n                {\r\n                    stringBuilder.AppendFormat(\"{0}fps ({1}ms)\", frame, ms);\r\n                }\r\n\r\n                frameRateStrings[i] = ToCharArray(stringBuilder);\r\n\r\n                stringBuilder.Length = 0;\r\n\r\n                if (i == (frameRateStrings.Length - 1))\r\n                {\r\n                    stringBuilder.AppendFormat(\"GPU: <{1}ms\", frame, ms);\r\n                }\r\n                else\r\n                {\r\n                    stringBuilder.AppendFormat(\"GPU: {1}ms\", frame, ms);\r\n                }\r\n\r\n                gpuFrameRateStrings[i] = ToCharArray(stringBuilder);\r\n\r\n                milisecondStringBuilder.Length = 0;\r\n                stringBuilder.Length = 0;\r\n            }\r\n        }\r\n\r\n        private void BuildCharacterUVs()\r\n        {\r\n            characterScale = new Vector3(fontCharacterSize.x * fontScale.x, fontCharacterSize.y * fontScale.y, 1.0f);\r\n\r\n            if (material != null && material.mainTexture != null)\r\n            {\r\n                for (char c = ' '; c < characterUVs.Length; ++c)\r\n                {\r\n                    int index = c - ' ';\r\n                    float height = (float)fontCharacterSize.y / material.mainTexture.height;\r\n                    float x = ((float)(index % fontColumns) * fontCharacterSize.x) / material.mainTexture.width;\r\n                    float y = ((float)(index / fontColumns) * fontCharacterSize.y) / material.mainTexture.height;\r\n                    characterUVs[c] = new Vector4(x, 1.0f - height - y, 0.0f, 0.0f);\r\n                }\r\n            }\r\n        }\r\n\r\n        private Vector3 CalculateWindowPosition(Transform cameraTransform)\r\n        {\r\n            Vector3 position;\r\n\r\n            if (transformToFollow != null)\r\n            {\r\n                position = transformToFollow.position;\r\n            }\r\n            else\r\n            {\r\n                float windowDistance = Mathf.Max(16.0f / Camera.main.fieldOfView, Camera.main.nearClipPlane + 0.25f);\r\n                position = cameraTransform.position + (cameraTransform.forward * windowDistance);\r\n            }\r\n\r\n            Vector3 horizontalOffset = cameraTransform.right * windowOffset.x;\r\n            Vector3 verticalOffset = cameraTransform.up * windowOffset.y;\r\n\r\n            switch (windowAnchor)\r\n            {\r\n                case TextAnchor.UpperLeft: position += verticalOffset - horizontalOffset; break;\r\n                case TextAnchor.UpperCenter: position += verticalOffset; break;\r\n                case TextAnchor.UpperRight: position += verticalOffset + horizontalOffset; break;\r\n                case TextAnchor.MiddleLeft: position -= horizontalOffset; break;\r\n                case TextAnchor.MiddleRight: position += horizontalOffset; break;\r\n                case TextAnchor.LowerLeft: position -= verticalOffset + horizontalOffset; break;\r\n                case TextAnchor.LowerCenter: position -= verticalOffset; break;\r\n                case TextAnchor.LowerRight: position -= verticalOffset - horizontalOffset; break;\r\n            }\r\n\r\n            return position;\r\n        }\r\n\r\n        private Quaternion CalculateWindowRotation(Transform cameraTransform)\r\n        {\r\n            Quaternion rotation = cameraTransform.rotation;\r\n\r\n            if (!alignToCamera)\r\n            {\r\n                switch (windowAnchor)\r\n                {\r\n                    case TextAnchor.UpperLeft: rotation *= windowHorizontalRotationInverse * windowVerticalRotationInverse; break;\r\n                    case TextAnchor.UpperCenter: rotation *= windowHorizontalRotationInverse; break;\r\n                    case TextAnchor.UpperRight: rotation *= windowHorizontalRotationInverse * windowVerticalRotation; break;\r\n                    case TextAnchor.MiddleLeft: rotation *= windowVerticalRotationInverse; break;\r\n                    case TextAnchor.MiddleRight: rotation *= windowVerticalRotation; break;\r\n                    case TextAnchor.LowerLeft: rotation *= windowHorizontalRotation * windowVerticalRotationInverse; break;\r\n                    case TextAnchor.LowerCenter: rotation *= windowHorizontalRotation; break;\r\n                    case TextAnchor.LowerRight: rotation *= windowHorizontalRotation * windowVerticalRotation; break;\r\n                }\r\n            }\r\n\r\n            return rotation;\r\n        }\r\n\r\n        void LayoutText(TextData data)\r\n        {\r\n            Vector4 colorVector = Color.white;\r\n            Vector4 spaceUV = characterUVs[' '];\r\n\r\n            Vector3 position = data.Position;\r\n            position -= Vector3.up * characterScale.y * 0.5f;\r\n            position += (data.RightAligned) ? Vector3.right * -characterScale.x * 0.5f : Vector3.right * characterScale.x * 0.5f;\r\n\r\n            for (int i = 0; i < maxStringLength; ++i)\r\n            {\r\n                instanceMatrices[data.Offset + i] = Matrix4x4.TRS(position, Quaternion.identity, characterScale);\r\n                instanceUVOffsetScaleX[data.Offset + i] = spaceUV;\r\n                instanceColors[data.Offset + i] = colorVector;\r\n                position += (data.RightAligned) ? Vector3.right * -characterScale.x : Vector3.right * characterScale.x;\r\n            }\r\n\r\n            data.LastCount = maxStringLength;\r\n            instanceColorsDirty = true;\r\n            instanceUVOffsetScaleXDirty = true;\r\n        }\r\n\r\n        void SetText(TextData data, char[] text, int count, Color color, int justifyLength = 0)\r\n        {\r\n            count = Mathf.Min(count, maxStringLength);\r\n\r\n            Vector4 colorVector = color;\r\n            Vector4 spaceUV = characterUVs[' '];\r\n\r\n            if (justifyLength <= count)\r\n            {\r\n                // Only loop though characters we need to update.\r\n                int charactersToProcess = Mathf.Min(Mathf.Max(count, data.LastCount), maxStringLength);\r\n\r\n                for (int i = 0; i < charactersToProcess; ++i)\r\n                {\r\n                    int charIndex = (data.RightAligned) ? count - i - 1 : i;\r\n                    instanceUVOffsetScaleX[data.Offset + i] = (i < count) ? characterUVs[text[charIndex]] : spaceUV;\r\n                    instanceColors[data.Offset + i] = colorVector;\r\n                }\r\n\r\n                data.LastCount = count;\r\n            }\r\n            else\r\n            {\r\n                int prefixLength = data.Prefix.Length;\r\n                int padLength = justifyLength - count;\r\n                int padBegin = (data.RightAligned) ? (count - prefixLength) : prefixLength;\r\n                int padEnd = padBegin + padLength;\r\n\r\n                for (int i = 0; i < padBegin; ++i)\r\n                {\r\n                    int charIndex = (data.RightAligned) ? count - i - 1 : i;\r\n                    instanceUVOffsetScaleX[data.Offset + i] = characterUVs[text[charIndex]];\r\n                    instanceColors[data.Offset + i] = colorVector;\r\n                }\r\n\r\n                for (int i = padBegin; i < padEnd; ++i)\r\n                {\r\n                    instanceUVOffsetScaleX[data.Offset + i] = spaceUV;\r\n                    instanceColors[data.Offset + i] = colorVector;\r\n                }\r\n\r\n                for (int i = padEnd; i < justifyLength; ++i)\r\n                {\r\n                    int charIndex = (data.RightAligned) ? count - (i - padLength) - 1 : i - padLength;\r\n                    instanceUVOffsetScaleX[data.Offset + i] = characterUVs[text[charIndex]];\r\n                    instanceColors[data.Offset + i] = colorVector;\r\n                }\r\n            }\r\n\r\n            instanceColorsDirty = true;\r\n            instanceUVOffsetScaleXDirty = true;\r\n        }\r\n\r\n#if UNITY_STANDALONE_WIN || UNITY_WSA\r\n        private KeywordRecognizer keywordRecognizer;\r\n\r\n        private void BuildKeywordRecognizer()\r\n        {\r\n            if (toggleKeyworlds.Length != 0)\r\n            {\r\n                keywordRecognizer = new KeywordRecognizer(toggleKeyworlds);\r\n                keywordRecognizer.OnPhraseRecognized += OnPhraseRecognized;\r\n\r\n                keywordRecognizer.Start();\r\n            }\r\n        }\r\n\r\n        private void OnPhraseRecognized(PhraseRecognizedEventArgs args)\r\n        {\r\n            IsVisible = !IsVisible;\r\n        }\r\n#endif\r\n\r\n        private void MemoryUsageToString(char[] buffer, int displayedDecimalDigits, TextData data, ulong memoryUsage, Color color, int justifyLength = 0)\r\n        {\r\n            bool usingGigabytes = false;\r\n            float usage = ConvertBytesToMegabytes(memoryUsage);\r\n\r\n            if (usage > 1024.0f)\r\n            {\r\n                usage = ConvertMegabytesToGigabytes(usage);\r\n                usingGigabytes = true;\r\n            }\r\n\r\n            int bufferIndex = 0;\r\n\r\n            for (int i = 0; i < data.Prefix.Length; ++i)\r\n            {\r\n                buffer[bufferIndex++] = data.Prefix[i];\r\n            }\r\n\r\n            bufferIndex = FtoA(usage, displayedDecimalDigits, buffer, bufferIndex);\r\n\r\n            buffer[bufferIndex++] = usingGigabytes ? 'G' : 'M';\r\n            buffer[bufferIndex++] = 'B';\r\n\r\n            SetText(data, buffer, bufferIndex, color, justifyLength);\r\n        }\r\n\r\n        private void SceneStatsToString(char[] buffer, TextData data, long count, Color color, int justifyLength = 0)\r\n        {\r\n            int bufferIndex = 0;\r\n\r\n            for (int i = 0; i < data.Prefix.Length; ++i)\r\n            {\r\n                buffer[bufferIndex++] = data.Prefix[i];\r\n            }\r\n\r\n            if (count < 0)\r\n            {\r\n                buffer[bufferIndex++] = '-';\r\n            }\r\n            else if (count > 1000)\r\n            {\r\n                float newCount = count / 1000.0f;\r\n                bufferIndex = FtoA(newCount, displayedDecimalDigits, buffer, bufferIndex);\r\n                buffer[bufferIndex++] = 'k';\r\n            }\r\n            else\r\n            {\r\n                bufferIndex = ItoA((int)count, buffer, bufferIndex);\r\n            }\r\n\r\n            SetText(data, buffer, bufferIndex, color, justifyLength);\r\n        }\r\n\r\n        private void MeshStatsToString(char[] buffer, int displayedDecimalDigits, TextData data, long count, Color color, int justifyLength = 0)\r\n        {\r\n            int bufferIndex = 0;\r\n\r\n            for (int i = 0; i < data.Prefix.Length; ++i)\r\n            {\r\n                buffer[bufferIndex++] = data.Prefix[i];\r\n            }\r\n\r\n            bool usingMillions = false;\r\n            float total = count / 1000.0f;\r\n\r\n            if (total > 1000.0f)\r\n            {\r\n                total /= 1000.0f;\r\n                usingMillions = true;\r\n            }\r\n\r\n            bufferIndex = FtoA(total, displayedDecimalDigits, buffer, bufferIndex);\r\n\r\n            buffer[bufferIndex++] = usingMillions ? 'm' : 'k';\r\n\r\n            SetText(data, buffer, bufferIndex, color, justifyLength);\r\n        }\r\n\r\n        private void ProfilerValueToString(char[] buffer, int displayedDecimalDigits, TextData data, float value, string unitSuffix, Color color, int justifyLength = 0)\r\n        {\r\n            int bufferIndex = 0;\r\n\r\n            for (int i = 0; i < data.Prefix.Length; ++i)\r\n            {\r\n                buffer[bufferIndex++] = data.Prefix[i];\r\n            }\r\n\r\n            if (value >= 0.0f)\r\n            {\r\n                bufferIndex = FtoA(value, displayedDecimalDigits, buffer, bufferIndex);\r\n            }\r\n            else\r\n            {\r\n                buffer[bufferIndex++] = '-';\r\n                buffer[bufferIndex++] = '.';\r\n                buffer[bufferIndex++] = '-';\r\n            }\r\n\r\n            foreach (char c in unitSuffix)\r\n            {\r\n                buffer[bufferIndex++] = c;\r\n            }\r\n\r\n            SetText(data, buffer, bufferIndex, color, justifyLength);\r\n        }\r\n\r\n        private Color QualityLevelBudgetToColor(int[] qualityLevelBudget, long value)\r\n        {\r\n            int level = QualitySettings.GetQualityLevel();\r\n\r\n            if (qualityLevelBudget.Length > level)\r\n            {\r\n                return (value > qualityLevelBudget[level]) ? missedFrameRateColor : targetFrameRateColor;\r\n            }\r\n\r\n            return Color.white;\r\n        }\r\n\r\n        private static char[] ToCharArray(StringBuilder stringBuilder)\r\n        {\r\n            char[] output = new char[stringBuilder.Length];\r\n\r\n            for (int i = 0; i < output.Length; ++i)\r\n            {\r\n                output[i] = stringBuilder[i];\r\n            }\r\n\r\n            return output;\r\n        }\r\n\r\n        private static int ItoA(int value, char[] buffer, int bufferIndex)\r\n        {\r\n            // Using a custom number to string method to avoid the overhead, and allocations, of built in string.Format/StringBuilder methods.\r\n            // We can also make some assumptions since the domain of the input number is known.\r\n\r\n            if (value == 0)\r\n            {\r\n                buffer[bufferIndex++] = '0';\r\n            }\r\n            else\r\n            {\r\n                int startIndex = bufferIndex;\r\n\r\n                for (; value != 0; value /= 10)\r\n                {\r\n                    buffer[bufferIndex++] = (char)((char)(value % 10) + '0');\r\n                }\r\n\r\n                char temp;\r\n                for (int endIndex = bufferIndex - 1; startIndex < endIndex; ++startIndex, --endIndex)\r\n                {\r\n                    temp = buffer[startIndex];\r\n                    buffer[startIndex] = buffer[endIndex];\r\n                    buffer[endIndex] = temp;\r\n                }\r\n            }\r\n\r\n            return bufferIndex;\r\n        }\r\n\r\n        private static int FtoA(float value, int displayedDecimalDigits, char[] buffer, int bufferIndex)\r\n        {\r\n            int integerDigits = (int)value;\r\n            int fractionalDigits = (int)((value - integerDigits) * Mathf.Pow(10.0f, displayedDecimalDigits));\r\n\r\n            bufferIndex = ItoA(integerDigits, buffer, bufferIndex);\r\n\r\n            if (displayedDecimalDigits != 0)\r\n            {\r\n                buffer[bufferIndex++] = '.';\r\n            }\r\n\r\n            if (fractionalDigits != 0)\r\n            {\r\n                bufferIndex = ItoA(fractionalDigits, buffer, bufferIndex);\r\n            }\r\n            else\r\n            {\r\n                for (int i = 0; i < displayedDecimalDigits; ++i)\r\n                {\r\n                    buffer[bufferIndex++] = '0';\r\n                }\r\n            }\r\n\r\n            return bufferIndex;\r\n        }\r\n\r\n        private ulong AppMemoryUsage\r\n        {\r\n            get\r\n            {\r\n#if WINDOWS_UWP\r\n                return MemoryManager.AppMemoryUsage;\r\n#else\r\n                // \"System Used Memory\" will return the \"working set\" of the process which is similar to what Task Manager displays\r\n                // in Windows. But this is not available on all platforms (like WebGL) so instead return Profiler.GetTotalReservedMemoryLong()\r\n                // which is the total memory Unity has reserved for current and future allocations.\r\n                var usedMemory = (ulong)systemUsedMemoryRecorder.LastValue;\r\n                return (usedMemory != 0) ? usedMemory : (ulong)Profiler.GetTotalReservedMemoryLong();\r\n#endif\r\n            }\r\n        }\r\n\r\n        private static ulong AppMemoryUsageLimit\r\n        {\r\n            get\r\n            {\r\n#if WINDOWS_UWP\r\n                return MemoryManager.AppMemoryUsageLimit;\r\n#else\r\n                return ConvertMegabytesToBytes(SystemInfo.systemMemorySize);\r\n#endif\r\n            }\r\n        }\r\n\r\n        private static bool WillDisplayedProfilerValueDiffer(float oldValue, float newValue, int displayedDecimalDigits)\r\n        {\r\n            float decimalPower = Mathf.Pow(10.0f, displayedDecimalDigits);\r\n\r\n            return (int)(oldValue * decimalPower) != (int)(newValue * decimalPower);\r\n        }\r\n\r\n        private static bool WillDisplayedMeshStatsCountDiffer(long oldCount, long newCount, int displayedDecimalDigits)\r\n        {\r\n            float decimalPower = Mathf.Pow(10.0f, displayedDecimalDigits) / 1000.0f;\r\n\r\n            return (int)(oldCount * decimalPower) != (int)(newCount * decimalPower);\r\n        }\r\n\r\n        private static bool WillDisplayedMemoryUsageDiffer(ulong oldUsage, ulong newUsage, int displayedDecimalDigits)\r\n        {\r\n            float oldUsageMBs = ConvertBytesToMegabytes(oldUsage);\r\n            float newUsageMBs = ConvertBytesToMegabytes(newUsage);\r\n            float decimalPower = Mathf.Pow(10.0f, displayedDecimalDigits);\r\n\r\n            return (int)(oldUsageMBs * decimalPower) != (int)(newUsageMBs * decimalPower);\r\n        }\r\n\r\n        private static ulong ConvertMegabytesToBytes(int megabytes)\r\n        {\r\n            return ((ulong)megabytes * 1024UL) * 1024UL;\r\n        }\r\n\r\n        private static float ConvertBytesToMegabytes(ulong bytes)\r\n        {\r\n            return (bytes / 1024.0f) / 1024.0f;\r\n        }\r\n\r\n        private static float ConvertMegabytesToGigabytes(float megabytes)\r\n        {\r\n            return (megabytes / 1024.0f);\r\n        }\r\n    }\r\n}\r\n"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/VisualProfiler.cs.meta",
    "content": "fileFormatVersion: 2\nguid: ee9fe1903f7351748999dead411e0a3b\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n  defaultReferences:\n  - material: {fileID: 2100000, guid: b98f8349d37aef742baaa038e99837c0, type: 2}\n  executionOrder: 0\n  icon: {instanceID: 0}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/package.json",
    "content": "{\n  \"name\": \"com.microsoft.mixedreality.visualprofiler\",\n  \"version\": \"3.8.0\",\n  \"displayName\": \"Microsoft Mixed Reality Visual Profiler\",\n  \"description\": \"Provides a drop in solution for viewing your mixed reality Unity application's frame rate, scene complexity, and memory usage.\",\n  \"documentationUrl\": \"https://github.com/microsoft/VisualProfiler-Unity/blob/main/README.md\",\n  \"unity\": \"2021.3\",\n  \"unityRelease\": \"26f1\",\n  \"author\": \"Microsoft\",\n  \"license\": \"MIT\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/microsoft/VisualProfiler-Unity\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/microsoft/VisualProfiler-Unity/issues\"\n  },\n  \"keywords\": [\n    \"microsoft\",\n    \"mixed\",\n    \"reality\",\n    \"hololens\",\n    \"ar\",\n    \"vr\",\n    \"xr\"\n  ]\n}"
  },
  {
    "path": "com.microsoft.mixedreality.visualprofiler/package.json.meta",
    "content": "fileFormatVersion: 2\nguid: 8f38e6fa9cd9ecb49a3ee99198dbaf8e\nPackageManifestImporter:\n  externalObjects: {}\n  userData: \n  assetBundleName: \n  assetBundleVariant: \n"
  }
]